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. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20100727/cd1c076d/attachment.html>
You''re missing an ampersand (&) on the define_task call. It should be: Rake::Task.define_task(*args, *&*body) Shay. -------------------------------------------------------- Shay Friedman | Microsoft Visual C#/IronRuby MVP | Author of IronRuby Unleashed Blog: http://IronShay.com | Twitter: http://twitter.com/ironshay On Tue, Jul 27, 2010 at 9:40 PM, Goode, Troy <Troy.Goode at 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 at rubyforge.org > http://rubyforge.org/mailman/listinfo/ironruby-core > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20100727/8a310f40/attachment.html>
The sample doesn''t run in MRI, either :) You need an ampersand in front of "body" when passing to define_task: Rake::Task.define_task(*args, &body) Sean On Tue, Jul 27, 2010 at 2:40 PM, Goode, Troy <Troy.Goode at nreca.coop> wrote:> I was following Derek Bailey?s article from yesterday entitled ?How to Build > Custom Rake Tasks; The Right Way? 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 > >
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.Goode at 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 at rubyforge.org > http://rubyforge.org/mailman/listinfo/ironruby-core > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20100727/f78cbbc1/attachment.html>
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. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20100727/145894d6/attachment.html>
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 <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 > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20100727/6d545313/attachment-0001.html>
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>
"Splat! is the star (*) operator, typically used in Ruby for defining methods that take an unlimited number of arguments" http://pivotallabs.com/users/nick/blog/articles/438-ruby-pearls-vol-1-the-splat <http://pivotallabs.com/users/nick/blog/articles/438-ruby-pearls-vol-1-the-splat>It must appear as the last argument in a method signature, as it collects all values from its position on into an array. <http://www.manning.com/black2/> -- Will Green http://hotgazpacho.org/ On Tue, Jul 27, 2010 at 4:49 PM, Goode, Troy <Troy.Goode at nreca.coop> wrote:> 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. > > _______________________________________________ > Ironruby-core mailing list > Ironruby-core at rubyforge.org > http://rubyforge.org/mailman/listinfo/ironruby-core > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20100727/7ba7d2db/attachment-0001.html>