How to store a block in a var?

Mil perdones, but my brain seems to have gone awol. I have multiple
places in a spec where I need to run the same block of code. I would
be much happier storing this block in a var as a Proc as opposed to
wrapping it up in a method. Is there a way I can do this? My spec
looks like this:

do_stuff do
stuff
end

where “stuff” is the part I want to wrap up into some tidy thing. I
tried it with lambda but my brain was too tired.


Giles B.

Podcast: http://hollywoodgrit.blogspot.com
Blog: http://gilesbowkett.blogspot.com
Portfolio: http://www.gilesgoatboy.org
Tumblelog: http://giles.tumblr.com

Giles B. wrote:

where “stuff” is the part I want to wrap up into some tidy thing. I
tried it with lambda but my brain was too tired.

var = Proc.new { stuff }

var = Proc.new { stuff }

yah, but can I just pass it as a block of code?

do_stuff do
var.call
end

??

the thing is that do_stuff is the only thing that makes the code in
var meaningful, so when I do that now, I’m getting NoMethodError: no
method “call” for nil


Giles B.

Podcast: http://hollywoodgrit.blogspot.com
Blog: http://gilesbowkett.blogspot.com
Portfolio: http://www.gilesgoatboy.org
Tumblelog: http://giles.tumblr.com

On Dec 31, 2007, at 10:06 PM, Giles B. wrote:

var = Proc.new { stuff }

yah, but can I just pass it as a block of code?

do_stuff do
var.call
end

do_stuff(&var)

Gary W.