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