diff options
Diffstat (limited to 'lib/mogilefs/backend.rb')
-rw-r--r-- | lib/mogilefs/backend.rb | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/lib/mogilefs/backend.rb b/lib/mogilefs/backend.rb index f4d5b1f..632d6f1 100644 --- a/lib/mogilefs/backend.rb +++ b/lib/mogilefs/backend.rb @@ -313,7 +313,7 @@ class MogileFS::Backend types.each { |type| opts[type] = 1 } sockets = @hosts.map do |host| - MogileFS::Socket.start(*(host.split(/:/))) rescue nil + MogileFS::Socket.start(*(host.split(':'.freeze))) rescue nil end sockets.compact! @@ -346,7 +346,7 @@ class MogileFS::Backend next if dead = @dead[host] and dead[0] > (MogileFS.now - @fail_timeout) begin - addr, port = host.split(/:/) + addr, port = host.split(':'.freeze) @socket = MogileFS::Socket.tcp(addr, port, @timeout) @active_host = host rescue SystemCallError, MogileFS::Timeout => err @@ -365,8 +365,8 @@ class MogileFS::Backend # Turns a url params string into a Hash. def url_decode(str) # :nodoc: rv = {} - str.split(/&/).each do |pair| - k, v = pair.split(/=/, 2).map! { |x| url_unescape(x) } + str.split('&'.freeze).each do |pair| + k, v = pair.split('='.freeze, 2).map! { |x| url_unescape(x) } rv[k.freeze] = v end rv @@ -382,13 +382,15 @@ class MogileFS::Backend def url_encode(params) # :nodoc: params.map do |k,v| "#{url_escape k.to_s}=#{url_escape v.to_s}" - end.join("&") + end.join('&'.freeze) end # Escapes naughty URL characters. if ''.respond_to?(:ord) # Ruby 1.9 def url_escape(str) # :nodoc: - str.gsub(/([^\w\,\-.\/\\\: ])/) { "%%%02x" % $1.ord }.tr(' ', '+') + str = str.gsub(/([^\w\,\-.\/\\\: ])/) { "%%%02x".freeze % $1.ord } + str.tr!(' '.freeze, '+'.freeze) + str end else # Ruby 1.8 def url_escape(str) # :nodoc: @@ -398,6 +400,8 @@ class MogileFS::Backend # Unescapes naughty URL characters. def url_unescape(str) # :nodoc: - str.tr('+', ' ').gsub(/%([a-f0-9][a-f0-9])/i) { [$1.to_i(16)].pack 'C' } + str = str.tr('+'.freeze, ' '.freeze) + str.gsub!(/%([a-f0-9][a-f0-9])/i) { [$1.to_i(16)].pack('C'.freeze) } + str end end |