# File lib/dbi/row.rb, line 157
157:         def [](*args)
158:             begin
159:                 case args.length
160:                 when 0
161:                     err = "wrong # of arguments(#{args.size} for at least 1)"
162:                     raise ArgumentError, err
163:                 when 1
164:                     case args[0]
165:                     when Array
166:                         args[0].collect { |e| self[e] }
167:                     when Regexp
168:                         self[@column_names.grep(args[0])] 
169:                     else
170:                         @arr[conv_param(args[0])]
171:                     end
172:                     # We explicitly check for a length of 2 in order to properly
173:                     # simulate the second form of Array#[].
174:                 when 2
175:                     @arr[conv_param(args[0]), conv_param(args[1])]
176:                 else
177:                     results = []
178:                     args.flatten.each{ |arg|
179:                         case arg
180:                         when Integer
181:                             results.push(@arr[arg])
182:                         when Regexp
183:                             results.push(self[@column_names.grep(arg)])
184:                         else
185:                             results.push(self[conv_param(arg)])
186:                         end
187:                     }
188:                     results.flatten
189:                 end
190:             rescue TypeError
191:                 nil
192:             end
193:         end