diff --git a/lib/uri/common.rb b/lib/uri/common.rb index cf93fb1..fe8475f 100644 --- a/lib/uri/common.rb +++ b/lib/uri/common.rb @@ -46,9 +46,15 @@ def self.parser=(parser = RFC3986_PARSER) 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 diff --git a/test/uri/test_common.rb b/test/uri/test_common.rb index bccdeaf..176efb8 100644 --- a/test/uri/test_common.rb +++ b/test/uri/test_common.rb @@ -13,8 +13,12 @@ def teardown 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