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
===============================================================================