diff --git a/lib/uri/common.rb b/lib/uri/common.rb index 971a684..813099a 100644 --- a/lib/uri/common.rb +++ b/lib/uri/common.rb @@ -54,7 +54,7 @@ def self.const_missing(const) # :nodoc: elsif value = RFC2396_PARSER.regexp[const] warn "URI::#{const} is obsolete. Use URI::RFC2396_PARSER.regexp[#{const.inspect}] explicitly.", uplevel: 1 if $VERBOSE value - elsif value = RFC2396_Parser.const_get(const) + elsif RFC2396_Parser.const_defined?(const) && value = RFC2396_Parser.const_get(const) warn "URI::#{const} is obsolete. Use URI::RFC2396_Parser::#{const} explicitly.", uplevel: 1 if $VERBOSE value else diff --git a/test/uri/test_common.rb b/test/uri/test_common.rb index 5692640..21643e4 100644 --- a/test/uri/test_common.rb +++ b/test/uri/test_common.rb @@ -19,7 +19,8 @@ class Foo def test_fallback_constants EnvUtil.suppress_warning do - assert_raise(NameError) { URI::FOO } + e = assert_raise(NameError) { URI::FOO } + assert_equal(e.message, "uninitialized constant URI::FOO") assert_equal URI::ABS_URI, URI::RFC2396_PARSER.regexp[:ABS_URI] assert_equal URI::PATTERN, URI::RFC2396_Parser::PATTERN