From: Leslie Viljoen Date: 2005-08-12T21:25:40+09:00 Subject: Re: Array redefinition problem Robert Klemme wrote: >Leslie Viljoen wrote: > > >>Hello! >> >>I have a large program which needs to be able to use Postgres OR >>MySQL. Since the MySQL module's query result has a num_rows method >>and Postgres returns an array, I thought I'd just redefine Array like >>this: >> >>class Array >> def num_rows >> return length >> end >>end >> >>But in another line (@entries = Array.new) I get: >> >>/var/www/ruby/core.rb:443:in `initialize': wrong number of arguments >>(0 for 2) (ArgumentError) >> >>Now if I do the same thing in a small test program, I get no errors. >>This works: >> >>class Array >> def num_rows >> return length >> end >>end >> >>res = Array.new >>puts res.num_rows >> >>In the large program I am not redefining Array anywhere else - what >>else can >>cause this error? >> >> > >My guess is that it's unrelated to your change of the Array class. Did >you check line 443 of core.rb? > > robert > > line 443: @entries = Array.new When I take Array redefinition change out, the whole program runs fine, except that it cannot call Array.num_rows, which is what I want. -- ruby -e "puts 'Just another fickle programmer'" Leslie Viljoen [leslie@camary.co.za] Camary Consulting [http://www.camary.co.za] Cellphone [083-6186100] Personal web [http://mobeus.homelinux.org]