-----Messaggio originale----- Da: Bug Free [mailto:amberarrow / yahoo.com] Inviato: mercoled23 novembre 2011 04:13 A: ruby-talk ML Oggetto: block.arity when using each_with_index Hi, I have a class with a custom iterator (each) that uses block.arity to determine how many arguments to use on the yield. It works well but when the caller invokes the iterator via each_with_index, the value of block.arity is -1 which wreaks havoc. Does anyone know how to get the correct value of block.arity in this situation?\ ruby -v ruby 1.9.3p0 (2011-10-30) [x86_64-linux] Here is the sample code: ------------------------------------------- #!/usr/bin/ruby -w # test block.arity value with each_with_index class A include Enumerable def each( p, &b ) puts "arity = #{b.arity}" yield 'hello', 'world' end end a = A.new a.each( 0 ) { |x, y| puts "x = #{x}, y = #{y}" } a.each_with_index( 0 ) { |(x, y), i| puts "x = #{x}, y = #{y}" } ---------------------------------------------------------------- Here is the output: arity = 2 x = hello, y = world arity = -1 x = hello, y = world -- Posted via http://www.ruby-forum.com/. -- Caselle da 1GB, trasmetti allegati fino a 3GB e in piu' IMAP, POP3 e SMTP autenticato? GRATIS solo con Email.it http://www.email.it/f Sponsor: ING DIRECT Conto Arancio. 4,20% per 12 mesi, zero spese, aprilo in due minuti! Clicca qui: http://adv.email.it/cgi-bin/foclick.cgi?mid921&d)-12