On Sun, 8 Jan 2006, Henrik wrote: > This is a Rails example, but I think the problem is a general Ruby > matter. > > I am using class_eval within a class method, foobar(), to have it create > an instance method, get_foobar(). I am passing a value ("testing testing > 123") to foobar() that I want to make part of get_foobar(). However, I > can't seem to include this value in the output of get_foobar(). > > Where I want the "render" line to output "A start testing testing 123 > end O", it only outputs "A start end O". Extremely grateful for any > help. Code: > > class HelpController < ApplicationController > > def self.foobar(v) > > class_eval %q{ > def get_foobar() > "start #{v} end" > end > } > > end > > foobar "testing testing 123" > > def index > render :text => "A "+get_foobar+" O" > end > > end > > Or syntax highlighted here: http://rafb.net/paste/results/igothN18.html > > -- > Posted via http://www.ruby-forum.com/. this can be done with closures or a storage/search-path scheme. the traits lib uses the latter, see here: http://codeforpeople.com/lib/ruby/traits/ -a -- =============================================================================== | ara [dot] t [dot] howard [at] noaa [dot] gov | strong and healthy, | who thinks of sickness until it strikes like lightning? | preoccupied with the world, | who thinks of death, until it arrives like thunder? | -- milarepa ===============================================================================