When you give a method a block in Ruby (which is really what you're doing here), and you've defined it as a Proc, you need to pass the variable holding the Proc with an ampersand in front of it. This is because while code blocks and Procs conceptually do the same thing, they are not. The ampersand tells Ruby "hey, convert this to a code block for me".
-- Will Green http://hotgazpacho.org/ On Tue, Jul 27, 2010 at 2:40 PM, Goode, Troy <troy.go...@nreca.coop> wrote: > I was following Derek Bailey’s article from yesterday entitled “How to > Build Custom Rake Tasks; The Right > Way”<http://www.lostechies.com/blogs/derickbailey/archive/2010/07/26/how-to-build-custom-rake-tasks-the-right-way.aspx>and > tried to replicate some of his code in IronRuby. Now I’ve run into a > snag that I’m hoping somebody can help with. > > > > My .rb file looks like so: > > > > *require 'rake'* > > * * > > *def foo(*args)* > > * body = proc {* > > * puts 'hello world'* > > * }* > > * Rake::Task.define_task(*args, body)* > > *end* > > * * > > *foo :bar* > > * * > > *task :default => [:bar]* > > > > Pretty simple, right? Well, when I run it using rake, I get the following > error: > > > > *C:\Users\txg0\Desktop>rake -f test1.rb --trace* > > *(in C:/Users/txg0/Desktop)* > > *rake aborted!* > > *syntax error, unexpected IDENTIFIER, expecting AMPERSAND* > > *C:/Program Files (x86)/IronRuby > 1.0v4/lib/ironruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2383:in `load'* > > *C:/Program Files (x86)/IronRuby > 1.0v4/lib/ironruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2383:in > `raw_load_rakefile'* > > *C:/Program Files (x86)/IronRuby > 1.0v4/lib/ironruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2017:in > `load_rakefile'* > > *C:/Program Files (x86)/IronRuby > 1.0v4/lib/ironruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in > `standard_exception_handling'* > > *C:/Program Files (x86)/IronRuby > 1.0v4/lib/ironruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2016:in > `load_rakefile'* > > *C:/Program Files (x86)/IronRuby > 1.0v4/lib/ironruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2000:in `run'* > > *C:/Program Files (x86)/IronRuby > 1.0v4/lib/ironruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in > `standard_exception_handling'* > > *C:/Program Files (x86)/IronRuby > 1.0v4/lib/ironruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:1998:in `run'* > > *C:/Program Files (x86)/IronRuby > 1.0v4/lib/ironruby/gems/1.8/gems/rake-0.8.7/bin/rake:31* > > *C:/Program Files (x86)/IronRuby 1.0v4/bin/rake:19:in `load'* > > *C:/Program Files (x86)/IronRuby 1.0v4/bin/rake:19* > > > > Anyone have any clues? > > Confidentiality Notice: This e-mail message, including any attachments, is > for the sole use of the intended recipient(s) and may contain confidential > and privileged information. Any unauthorized review, copy, use, disclosure, > or distribution is prohibited. If you are not the intended recipient, please > contact the sender by reply e-mail and destroy all copies of the original > message. > _______________________________________________ > Ironruby-core mailing list > Ironruby-core@rubyforge.org > http://rubyforge.org/mailman/listinfo/ironruby-core > >
_______________________________________________ Ironruby-core mailing list Ironruby-core@rubyforge.org http://rubyforge.org/mailman/listinfo/ironruby-core