Class Binding
In: lib/core/facets/binding/eval.rb
lib/core/facets/binding/self.rb
lib/core/facets/binding/local_variables.rb
lib/core/facets/binding/defined.rb
lib/core/facets/binding/caller.rb
lib/core/facets/kernel/callstack.rb
lib/more/facets/binding/opvars.rb
Parent: Object

Methods

[]   []=   __DIR__   __FILE__   __LINE__   __callee__   __method__   caller   callstack   defined?   eval   local_variables   self  

Public Instance methods

Returns the value of some variable.

  a = 2
  binding["a"]  #=> 2

[Source]

# File lib/more/facets/binding/opvars.rb, line 10
  def []( x )
    eval( x.to_s )
  end

Set the value of a local variable.

  binding["a"] = 4
  a  #=> 4

[Source]

# File lib/more/facets/binding/opvars.rb, line 19
  def []=( l, v )
    eval( "lambda {|v| #{l} = v}").call( v )
  end

Return the directory of the file.

[Source]

# File lib/core/facets/binding/caller.rb, line 22
  def __DIR__
    eval("File.dirname(__FILE__)")
  end

Returns file name.

[Source]

# File lib/core/facets/binding/caller.rb, line 17
  def __FILE__
    eval("__FILE__")
  end

Returns line number.

[Source]

# File lib/core/facets/binding/caller.rb, line 12
  def __LINE__
    eval("__LINE__")
  end

Retreive the current running method.

  def tester; p called; end
  tester  #=> :tester

[Source]

# File lib/core/facets/binding/caller.rb, line 31
  def __callee__
    name = /\`([^\']+)\'/.match(caller(1).first)[1]
    return name.to_sym
  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"

[Source]

# File lib/core/facets/binding/caller.rb, line 43
  def __method__
    name = /\`([^\']+)\'/.match(caller(1).first)[1]
    return name
  end

Returns the call stack, same format as Kernel#caller()

[Source]

# File lib/core/facets/binding/caller.rb, line 7
  def caller( skip=0 )
    eval("caller(#{skip})")
  end

Returns the call stack, in array format.

[Source]

# File lib/core/facets/kernel/callstack.rb, line 47
  def callstack(level=1)
    eval( "callstack( #{level} )" )
  end

Returns the nature of something within the context of the binding. Returns nil if that thing is not defined.

[Source]

# File lib/core/facets/binding/defined.rb, line 7
  def defined?(x)
    eval("defined? #{x}")
  end

Evaluate a Ruby source code string (or block) in the binding context.

[Source]

# File lib/core/facets/binding/eval.rb, line 7
    def eval(str) #='', &blk )
      #if block_given?
      #  Kernel.eval( self, &blk )
      #elsif str
        Kernel.eval(str, self)
      #end
    end

Returns the local variables defined in the binding context

  a = 2
  binding.local_variables  #=> ["a"]

[Source]

# File lib/core/facets/binding/local_variables.rb, line 10
  def local_variables()
    eval("local_variables")
  end

Returns self of the binding context.

[Source]

# File lib/core/facets/binding/self.rb, line 7
  def self()
    @_self ||= eval("self")
  end

[Validate]