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

Reply via email to