summaryrefslogtreecommitdiff
path: root/lib/uri/generic.rb
diff options
context:
space:
mode:
authorJeremy Evans <[email protected]>2021-03-04 14:05:18 -0800
committergit <[email protected]>2022-05-12 14:54:37 +0900
commitfbebfe1697938a684f460cd28af36cf1f056513c ()
tree22771001917053627d5562d7725ead5344220fb6 /lib/uri/generic.rb
parent054ae999dc5dfcb182f407bffceec5a52ae7ff6c (diff)
[ruby/uri] Add URI::Generic#decoded_#{user,password}
URI::Generic#{user,password} return the encoded values, which are not that useful if you want to do authentication with them. Automatic decoding by default would break backwards compatibility. Optional automatic decoding via a keyword to URI.parse would require threading the option through at least 3 other methods, and would make semantics confusing (user= takes encoded or unencoded password?) or require more work. Thus, adding this as a separate method seemed the simplest approach. Unfortunately, URI lacks a method for correct decoding. Unlike in www form components, + in earlier parts of the URI such as the userinfo section is treated verbatim and not as an encoded space. Add URI.#{en,de}code_uri_component methods, which are almost the same as URI.#{en,de}code_www_form_component, but without the special SP => + handling. Implements [Feature #9045] https://.com/ruby/uri/commit/16cfc4e92f
-rw-r--r--lib/uri/generic.rb14
1 files changed, 12 insertions, 2 deletions
@@ -564,16 +564,26 @@ module URI
end
end
- # Returns the user component.
def user
@user
end
- # Returns the password component.
def password
@password
end
#
# Checks the host +v+ component for RFC2396 compliance
# and against the URI::Parser Regexp for :HOST.