[ruby/uri] Also support URI::PATTERN with switch-back
https://github.com/ruby/uri/commit/823697edb4
This commit is contained in:
parent
082335494b
commit
8db2325a11
@ -27,8 +27,10 @@ module URI
|
|||||||
const_set("Parser", parser.class)
|
const_set("Parser", parser.class)
|
||||||
|
|
||||||
remove_const(:REGEXP) if defined?(REGEXP)
|
remove_const(:REGEXP) if defined?(REGEXP)
|
||||||
|
remove_const(:PATTERN) if defined?(PATTERN)
|
||||||
if Parser == RFC2396_Parser
|
if Parser == RFC2396_Parser
|
||||||
const_set("REGEXP", URI::RFC2396_REGEXP)
|
const_set("REGEXP", URI::RFC2396_REGEXP)
|
||||||
|
const_set("PATTERN", URI::RFC2396_REGEXP::PATTERN)
|
||||||
Parser.new.pattern.each_pair do |sym, str|
|
Parser.new.pattern.each_pair do |sym, str|
|
||||||
unless REGEXP::PATTERN.const_defined?(sym)
|
unless REGEXP::PATTERN.const_defined?(sym)
|
||||||
REGEXP::PATTERN.const_set(sym, str)
|
REGEXP::PATTERN.const_set(sym, str)
|
||||||
|
@ -12,17 +12,21 @@ class URI::TestCommon < Test::Unit::TestCase
|
|||||||
|
|
||||||
def test_parser_switch
|
def test_parser_switch
|
||||||
assert_equal(URI::Parser, URI::RFC3986_Parser)
|
assert_equal(URI::Parser, URI::RFC3986_Parser)
|
||||||
refute defined?(::URI::REGEXP)
|
refute defined?(URI::REGEXP)
|
||||||
|
refute defined?(URI::PATTERN)
|
||||||
|
|
||||||
URI.parser = URI::RFC2396_PARSER
|
URI.parser = URI::RFC2396_PARSER
|
||||||
|
|
||||||
assert_equal(URI::Parser, URI::RFC2396_Parser)
|
assert_equal(URI::Parser, URI::RFC2396_Parser)
|
||||||
assert defined?(URI::REGEXP)
|
assert defined?(URI::REGEXP)
|
||||||
|
assert defined?(URI::PATTERN)
|
||||||
|
assert defined?(URI::PATTERN::ESCAPED)
|
||||||
|
|
||||||
URI.parser = URI::RFC3986_PARSER
|
URI.parser = URI::RFC3986_PARSER
|
||||||
|
|
||||||
assert_equal(URI::Parser, URI::RFC3986_Parser)
|
assert_equal(URI::Parser, URI::RFC3986_Parser)
|
||||||
refute defined?(URI::REGEXP)
|
refute defined?(URI::REGEXP)
|
||||||
|
refute defined?(URI::PATTERN)
|
||||||
ensure
|
ensure
|
||||||
URI.parser = URI::RFC3986_PARSER
|
URI.parser = URI::RFC3986_PARSER
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user