Returns the value of some variable.
a = 2 binding["a"] #=> 2
# File lib/core/facets/binding/opvars.rb, line 10
10: def []( x )
11: eval( x.to_s )
12: end
Set the value of a local variable.
binding["a"] = 4 a #=> 4
# File lib/core/facets/binding/opvars.rb, line 19
19: def []=( l, v )
20: eval( "lambda {|v| #{l} = v}").call( v )
21: end
Return the directory of the file.
# File lib/core/facets/binding/caller.rb, line 22
22: def __DIR__
23: eval("File.dirname(__FILE__)")
24: end
Returns file name.
# File lib/core/facets/binding/caller.rb, line 17
17: def __FILE__
18: eval("__FILE__")
19: end
Returns line number.
# File lib/core/facets/binding/caller.rb, line 12
12: def __LINE__
13: eval("__LINE__")
14: end
Retreive the current running method.
def tester; p called; end tester #=> :tester
# File lib/core/facets/binding/caller.rb, line 31
31: def __callee__
32: name = /\`([^\']+)\'/.match(caller(1).first)[1]
33: return name.to_sym
34: end
There is a lot of debate on what to call this. method_name differs from called only by the fact that it returns a string, rather then a symbol.
def tester; p methodname; end tester #=> "tester"
# File lib/core/facets/binding/caller.rb, line 43
43: def __method__
44: name = /\`([^\']+)\'/.match(caller(1).first)[1]
45: return name
46: end
Returns the call stack, same format as Kernel#caller()
# File lib/core/facets/binding/caller.rb, line 7 7: def caller( skip=0 ) 8: eval("caller(#{skip})") 9: end
Returns the call stack, in array format.
# File lib/core/facets/kernel/callstack.rb, line 47
47: def callstack(level=1)
48: eval( "callstack( #{level} )" )
49: end
Returns the nature of something within the context of the binding. Returns nil if that thing is not defined.
# File lib/core/facets/binding/defined.rb, line 7 7: def defined?(x) 8: eval("defined? #{x}") 9: end
Evaluate a Ruby source code string (or block) in the binding context.
# File lib/core/facets/binding/eval.rb, line 7
7: def eval(str) #='', &blk )
8: #if block_given?
9: # Kernel.eval( self, &blk )
10: #elsif str
11: Kernel.eval(str, self)
12: #end
13: end