小编Mar*_*lly的帖子

在Ruby中如何生成一长串重复文本?

在ruby中快速生成长字符串的最佳方法是什么?这有效,但速度很慢:

str = ""
length = 100000
(1..length).each {|i| str += "0"}
Run Code Online (Sandbox Code Playgroud)

我还注意到,创建一个相当长的字符串,然后将其附加到现有字符串,达到所需的长度会更快:

str = ""
incrementor = ""
length = 100000
(1..1000).each {|i| incrementor += "0"}
(1..100).each {|i| str += incrementor}
Run Code Online (Sandbox Code Playgroud)

还有其他建议吗?

ruby string

131
推荐指数
2
解决办法
5万
查看次数

Ruby生成自签名证书

我正在尝试在ruby中生成自签名证书,但遇到了麻烦.这就是我现在所拥有的:

require 'openssl'

if ARGV.length != 3 then
    puts "USAGE: #{__FILE__} <type[der|pem]> <private-out> <public-out>"
    exit
end

type = ARGV[0].downcase
privateKeyFile = ARGV[1]
publicKeyFile = ARGV[2]

values = [{ 'C' => 'US'},
          {'ST' => 'SomeState'},
          { 'L' => 'SomeCity'},
          { 'O' => 'Organization'},
          {'OU' => 'Organizational Unit'},
          {'CN' => "somesite.com"}]

name = values.collect{ |l| l.collect { |k, v| "/#{k}=#{v}" }.join }.join

key = OpenSSL::PKey::RSA.generate(1024)
pub = key.public_key
ca = OpenSSL::X509::Name.parse(name)
cert = OpenSSL::X509::Certificate.new
cert.version = 2 
cert.serial = 1 
cert.subject = …
Run Code Online (Sandbox Code Playgroud)

ruby openssl ssl-certificate x509certificate

7
推荐指数
2
解决办法
6183
查看次数

Ruby TCPServer套接字

也许我已经把我的套接字编程方式混淆了,但不应该像这样的工作吗?

srv = TCPServer.open(3333)
client = srv.accept

data = ""
while (tmp = client.recv(10))
    data += tmp
end
Run Code Online (Sandbox Code Playgroud)

我几乎尝试了从客户端TCPSocket"获取"数据的所有其他方法,但所有这些方法都挂起并且永远不会突破循环(getc,get,read等).我觉得我忘记了什么.我错过了什么?

ruby tcpsocket tcpserver

4
推荐指数
1
解决办法
7132
查看次数