[ruby/uri] Added more fallback constants like URI::PARTTERN and URI::REGEXP
Fixed https://github.com/ruby/uri/issues/125 https://github.com/ruby/uri/commit/1f3d3df02a
This commit is contained in:
parent
85868388d5
commit
d7c65398e0
@ -46,9 +46,15 @@ module URI
|
||||
self.parser = RFC3986_PARSER
|
||||
|
||||
def self.const_missing(const)
|
||||
if value = RFC2396_PARSER.regexp[const]
|
||||
if const == :REGEXP
|
||||
warn "URI::REGEXP is obsolete. Use URI::RFC2396_REGEXP explicitly.", uplevel: 1 if $VERBOSE
|
||||
URI::RFC2396_REGEXP
|
||||
elsif value = RFC2396_PARSER.regexp[const]
|
||||
warn "URI::#{const} is obsolete. Use RFC2396_PARSER.regexp[#{const.inspect}] explicitly.", uplevel: 1 if $VERBOSE
|
||||
value
|
||||
elsif value = RFC2396_Parser.const_get(const)
|
||||
warn "URI::#{const} is obsolete. Use RFC2396_Parser::#{const} explicitly.", uplevel: 1 if $VERBOSE
|
||||
value
|
||||
else
|
||||
super
|
||||
end
|
||||
|
@ -13,8 +13,12 @@ class URI::TestCommon < Test::Unit::TestCase
|
||||
def test_fallback_constants
|
||||
orig_verbose = $VERBOSE
|
||||
$VERBOSE = nil
|
||||
assert URI::ABS_URI
|
||||
|
||||
assert_raise(NameError) { URI::FOO }
|
||||
|
||||
assert_equal URI::ABS_URI, URI::RFC2396_PARSER.regexp[:ABS_URI]
|
||||
assert_equal URI::PATTERN, URI::RFC2396_Parser::PATTERN
|
||||
assert_equal URI::REGEXP, URI::RFC2396_REGEXP
|
||||
ensure
|
||||
$VERBOSE = orig_verbose
|
||||
end
|
||||
|
Loading…
x
Reference in New Issue
Block a user