Class: HttpVanilli::Util
Class Method Summary collapse
- .decode_userinfo_from_header(header) ⇒ Object
- .encode_unsafe_chars_in_userinfo(userinfo) ⇒ Object
- .strip_default_port_from_uri(uri) ⇒ Object
-
.uri_escape(*args) ⇒ Object
Wrapper for URI escaping that switches between URI::Parser#escape and URI.escape for 1.9-compatibility.
Class Method Details
.decode_userinfo_from_header(header) ⇒ Object
5 6 7 |
# File 'lib/http_vanilli/util.rb', line 5 def self.decode_userinfo_from_header(header) header.sub(/^Basic /, "").unpack("m").first end |
.encode_unsafe_chars_in_userinfo(userinfo) ⇒ Object
9 10 11 12 |
# File 'lib/http_vanilli/util.rb', line 9 def self.encode_unsafe_chars_in_userinfo(userinfo) unsafe_in_userinfo = /[^#{URI::REGEXP::PATTERN::UNRESERVED};&=+$,]|^(#{URI::REGEXP::PATTERN::ESCAPED})/ userinfo.split(":").map { |part| uri_escape(part, unsafe_in_userinfo) }.join(":") end |
.strip_default_port_from_uri(uri) ⇒ Object
14 15 16 17 18 19 20 |
# File 'lib/http_vanilli/util.rb', line 14 def self.strip_default_port_from_uri(uri) case uri when %r{^http://} then uri.sub(%r{:80(/|$)}, '\1') when %r{^https://} then uri.sub(%r{:443(/|$)}, '\1') else uri end end |
.uri_escape(*args) ⇒ Object
Wrapper for URI escaping that switches between URI::Parser#escape and URI.escape for 1.9-compatibility
24 25 26 27 28 29 30 |
# File 'lib/http_vanilli/util.rb', line 24 def self.uri_escape(*args) if URI.const_defined?(:Parser) URI::Parser.new.escape(*args) else URI.escape(*args) end end |