diff options
author | normal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-01-10 00:35:43 +0000 |
---|---|---|
committer | normal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-01-10 00:35:43 +0000 |
commit | 778bbac8ac2ae50f0987c4888f7158296ee5bbdd (patch) | |
tree | 8c930da6175825647fc2640a0ae0277a723333c6 /lib/net | |
parent | 4b346b0e7159d95ed0afce0840adaf62d7c1381f (diff) | |
download | ruby-778bbac8ac2ae50f0987c4888f7158296ee5bbdd.tar.gz |
stdlib: avoid extra calls to eliminate "\n" from Base64
We may use the '0' (zero) to avoid adding the line feed.
Furthermore, the '*' (asterisk) modifier is not needed for
a single-element arrays.
* ext/psych/lib/psych/visitors/yaml_tree.rb (visit_String):
eliminate chomp
* lib/net/http.rb (connect): eliminate delete
* lib/net/http/header.rb (basic_encode): ditto
* lib/net/imap.rb (authenticate): eliminate gsub
(self.encode_utf7): shorten delete arg
* lib/net/smtp.rb (base64_encode): eliminate gsub
* lib/open-uri.rb (OpenURI.open_http): eliminate delete
* lib/rss/rss.rb: ditto
* lib/securerandom.rb (base64): ditto
(urlsafe_base64): eliminate delete!
* lib/webrick/httpauth/digestauth.rb (split_param_value):
eliminate chop
* lib/webrick/httpproxy.rb (do_CONNECT): eliminate delete
(setup_upstream_proxy_authentication): ditto
[ruby-core:72666] [Feature #11938]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53488 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/net')
-rw-r--r-- | lib/net/http.rb | 3 | ||||
-rw-r--r-- | lib/net/http/header.rb | 2 | ||||
-rw-r--r-- | lib/net/imap.rb | 6 | ||||
-rw-r--r-- | lib/net/smtp.rb | 2 |
4 files changed, 6 insertions, 7 deletions
diff --git a/lib/net/http.rb b/lib/net/http.rb index f77df5efa3..f6499f2a59 100644 --- a/lib/net/http.rb +++ b/lib/net/http.rb @@ -912,8 +912,7 @@ module Net #:nodoc: buf = "CONNECT #{@address}:#{@port} HTTP/#{HTTPVersion}\r\n" buf << "Host: #{@address}:#{@port}\r\n" if proxy_user - credential = ["#{proxy_user}:#{proxy_pass}"].pack('m') - credential.delete!("\r\n") + credential = ["#{proxy_user}:#{proxy_pass}"].pack('m0') buf << "Proxy-Authorization: Basic #{credential}\r\n" end buf << "\r\n" diff --git a/lib/net/http/header.rb b/lib/net/http/header.rb index 5d99e8f070..3a76dcfe4c 100644 --- a/lib/net/http/header.rb +++ b/lib/net/http/header.rb @@ -427,7 +427,7 @@ module Net::HTTPHeader end def basic_encode(account, password) - 'Basic ' + ["#{account}:#{password}"].pack('m').delete("\r\n") + 'Basic ' + ["#{account}:#{password}"].pack('m0') end private :basic_encode diff --git a/lib/net/imap.rb b/lib/net/imap.rb index 439ca13206..9895ed68ce 100644 --- a/lib/net/imap.rb +++ b/lib/net/imap.rb @@ -419,7 +419,7 @@ module Net send_command("AUTHENTICATE", auth_type) do |resp| if resp.instance_of?(ContinuationRequest) data = authenticator.process(resp.data.text.unpack("m")[0]) - s = [data].pack("m").gsub(/\n/, "") + s = [data].pack("m0") send_string_data(s) put_string(CRLF) end @@ -1007,8 +1007,8 @@ module Net if $1 "&-" else - base64 = [$&.encode(Encoding::UTF_16BE)].pack("m") - "&" + base64.delete("=\n").tr("/", ",") + "-" + base64 = [$&.encode(Encoding::UTF_16BE)].pack("m0") + "&" + base64.delete("=").tr("/", ",") + "-" end }.force_encoding("ASCII-8BIT") end diff --git a/lib/net/smtp.rb b/lib/net/smtp.rb index d634274c3e..250293bdbe 100644 --- a/lib/net/smtp.rb +++ b/lib/net/smtp.rb @@ -788,7 +788,7 @@ module Net def base64_encode(str) # expects "str" may not become too long - [str].pack('m').gsub(/\s+/, '') + [str].pack('m0') end IMASK = 0x36 |