Hi,
class CGI
class Param < String
def initialize(array)
self.replace(array[0].dup)
@val = array.dup
end
def each(*arg, &block)
@val.each(*arg, &block)
end
def [](x)
@val[x]
end
end
def initialize(arg)
@params = {}
arg.each() do |key, val|
@params[key] = CGI::Param.new(val)
end
end
def [](key)
@params[key]
end
end
test_arg = {"key1" => ["val1", "val2"], "key2"=>["val1", "val2"]}
cgi = CGI.new(test_arg)
p cgi["key1"] # "val1"
p cgi["key1"] == "val1" # true
p cgi["key1"].to_s # "val1"
p cgi["key1"].to_a # ["val1", "val2"]
p cgi["key1"].type # CGI::Param
p cgi["key1"][0] # "val1" backward compatibility ;->
p cgi["key1"][1] # "val2"
How about this?
--
Wakou Aoyama <wakou / fsinet.or.jp>