From: Sharon Rosner Date: 2007-09-21T01:57:16+09:00 Subject: Ruby parser wierdness? Hi gang I've stumbled upon a weird phenomenon when trying nested Dataset#query methods with Sequel: ds = DB[:items].query do select :x, :y where :x => DB[:stuff].query do select :a where :b => DB[:misc].query do select :c where :d => true end end end #=> /usr/local/lib/ruby/gems/1.8/gems/sequel-0.2.0.2/lib/sequel/../ sequel/dataset/convenience.rb:217:in `instance_eval': block not supplied (ArgumentError) If I enclose the nested procs in parens everything works fine: ds = DB[:items].query do select :x, :y where :x => (DB[:stuff].query do select :a where :b => (DB[:misc].query do select :c where :d => true end) end) end It also works if I use the curly brackets notation: ds = DB[:items].query { select :x, :y where :x => DB[:stuff].query { select :a where :b => DB[:misc].query { select :c where :d => true } } } Is the error above the intended behavior? If it is, can someone explain what's going on? best Sharon