From: Aristarkh A Zagorodnikov Date: 2001-01-18T22:25:33+09:00 Subject: [ruby-talk:9506] Re: Subprocess > -----Original Message----- > From: ts [mailto:decoux@moulon.inra.fr] > Sent: Thursday, January 18, 2001 1:27 PM > To: ruby-talk ML > Cc: ruby-talk@netlab.co.jp > Subject: [ruby-talk:9501] Re: Subprocess > > >>>>> "A" == Aristarkh A Zagorodnikov writes: > > A> var = [] > A> or > A> var = Array.new > > pigeon% cat b.rb > #!/usr/bin/ruby > class Array > def initialize(*args) > puts "#{args.join ' '}" > end > end > > var = [1, 2] > var = Array.new 3, 4 > pigeon% > > pigeon% b.rb > 3 4 This is because initialize waits for array of args ... and [1, 2] makes Array object. The correct version of this function will involve testing for number of args (args.size == 1), and checking type if first element (args[0].typeof == Array). It may even involve expansion of all passed arrays and merging them, though it may produce undesired results in some cases. Aristarkh A Zagorodnikov, W3D Group http://www.w3d.ru /// xm@w3d.ru /// ICQ UIN 36987938