def initialize(*args)
if (component = args.first).kind_of?(Hash)
@scheme = component[:scheme]
@subscheme = component[:subscheme]
@user = component[:user]
@password = component[:password]
@host = component[:host]
@port = component[:port]
@path = component[:path]
@query = component[:query]
@fragment = component[:fragment]
@relative = component[:relative]
elsif args.size > 1
warn "DataObjects::URI.new with arguments is deprecated, use a Hash of URI components (#{caller.first})"
@scheme, @user, @password, @host, @port, @path, @query, @fragment = *args
else
raise ArgumentError, "argument should be a Hash of URI components, was: #{args.inspect}"
end
end