From: Yossef Mendelssohn Date: 2007-04-29T01:56:08+09:00 Subject: Re: code block which allows dynamical numbers of arguments You'd want to use the excellent splat (*) operator for that. lambda { |check, *statuses| @check = check if statuses.include? (object.status) } To get an idea of what happens, see the following: irb(main):011:0> test = lambda { |c, *args| puts c.inspect; puts args.inspect } => # irb(main):012:0> test.call('test') "test" [] => nil irb(main):013:0> test.call('test', 1) "test" [1] => nil irb(main):014:0> test.call('test', 1,2,3,4) "test" [1, 2, 3, 4] => nil -- -yossef