Preview Ruby 4.1 is a preview. It can change before the final release. Switch to Ruby 4.0 →
class method
URI::Generic.build2
(::Array[nil | ::String | ::Integer]) -> ::URI::Generic
({ scheme: ::String?, userinfo: ::String?, host: ::String?, port: ::Integer?, registry: ::String?, path: ::String?, opaque: ::String?, query: ::String?, fragment: ::String? }) -> instance
build2(args)
lib/uri/generic.rb
View on GitHub ↗
# File tmp/rubies/ruby-4.1.0-preview1/lib/uri/generic.rb, line 78
def self.build2(args)
begin
return self.build(args)
rescue InvalidComponentError
if args.kind_of?(Array)
return self.build(args.collect{|x|
if x.is_a?(String)
URI::RFC2396_PARSER.escape(x)
else
x
end
})
elsif args.kind_of?(Hash)
tmp = {}
args.each do |key, value|
tmp[key] = if value
URI::RFC2396_PARSER.escape(value)
else
value
end
end
return self.build(tmp)
end
end
end
Synopsis
See ::new.
Description
At first, tries to create a new URI::Generic instance using URI::Generic::build. But, if exception URI::InvalidComponentError is raised, then it does URI::RFC2396_PARSER.escape all URI components and tries again.