Zach Dennis
2/10/2005 11:02:00 PM
koboi wrote:
> It moves in the right direction, yes, thanks.
> But still, it doesn't work as I would like. If I want to count, how many
> times the method is called, the Proc is evaluated only once, so the count
> is always 1.
> Example:
> @count = 0
> m = proc { @count += 1; 5 }
> #...
> #call rand several times
> p @count -> 1
>
I'm going to repost after i figure this one out, the problem with my
first post (and i apologize for posting inaccurate code), was that the
"#{m.call}" was getting evaluated in the 'module_eval( "..." )' and it
wasn't actually getting called when rand got called.
Kernel.module_eval( "def rand; #{m.call}; end" )
Will have rand return the value of m.call. It will always return the
same thing, because m.call is evaluated in the String, and not when rand
is called.
m = proc { 50 }
def rand; #{m.call}; end
is the same as:
def rand; 50; end
working on a solution,
Zach