def [](*args)
begin
case args.length
when 0
err = "wrong # of arguments(#{args.size} for at least 1)"
raise ArgumentError, err
when 1
case args[0]
when Array
args[0].collect { |e| self[e] }
when Regexp
self[@column_names.grep(args[0])]
else
@arr[conv_param(args[0])]
end
when 2
@arr[conv_param(args[0]), conv_param(args[1])]
else
results = []
args.flatten.each{ |arg|
case arg
when Integer
results.push(@arr[arg])
when Regexp
results.push(self[@column_names.grep(arg)])
else
results.push(self[conv_param(arg)])
end
}
results.flatten
end
rescue TypeError
nil
end
end