[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:
Hiroshi SHIBATA 2024-11-08 15:05:58 +09:00 committed by git
parent 85868388d5
commit d7c65398e0
2 changed files with 12 additions and 2 deletions

View File

@ -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

View File

@ -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