[Ironruby-core] custom rake task

Goode, Troy Troy.Goode at nreca.coop
Tue Jul 27 16:49:31 EDT 2010


Thanks for the help everyone! I had been trying multiple variations of the code I sent, removing/adding asterisks & ampersands and just never stumbled upon the correct combo. Thanks again for the help!

 

From: ironruby-core-bounces at rubyforge.org [mailto:ironruby-core-bounces at rubyforge.org] On Behalf Of Will Green
Sent: Tuesday, July 27, 2010 4:12 PM
To: ironruby-core at rubyforge.org
Subject: Re: [Ironruby-core] custom rake task

 

Specifically, if you do an explicit return (use the return keyword) from a Proc, that exits the scope in which the Proc is executed. lambdas that return do not exit the scope in which it was executed.

 

See http://samdanielson.com/2007/3/19/proc-new-vs-lambda-in-ruby


--
Will Green
http://hotgazpacho.org/



On Tue, Jul 27, 2010 at 3:35 PM, Jim Deville <jdeville at microsoft.com> wrote:

To pass the body proc into define_task, you need to turn it into a block by calling &body. I would also recommend using a lambda instead of a proc (due to return semantics). I'll also be turning my WIX rake tasks into a gem, so there will be more examples there.





________________________________

From: Goode, Troy <Troy.Goode at nreca.coop>
Sent: Tuesday, July 27, 2010 11:59 AM
To: Ironruby-core at rubyforge.org <Ironruby-core at rubyforge.org>
Subject: [Ironruby-core] custom rake task

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 at rubyforge.org
http://rubyforge.org/mailman/listinfo/ironruby-core

 



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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20100727/4e3adda6/attachment.html>


More information about the Ironruby-core mailing list