Class: BasicObject

Defined in:
lib/pry/core_extensions.rb

Direct Known Subclasses

Object, Pry::BasicObject

Instance Method Summary collapse

Instance Method Details

#__binding__Binding

Return a binding object for the receiver.

The self of the binding is set to the current object, and it contains no local variables.

The default definee (http://yugui.jp/articles/846) is set such that new methods defined will be added to the singleton class of the BasicObject.



122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
# File 'lib/pry/core_extensions.rb', line 122

def __binding__
  # BasicObjects don't have respond_to?, so we just define the method
  # every time. As they also don't have `.freeze`, this call won't
  # fail as it can for normal Objects.
  (class << self; self; end).class_eval <<-EOF, __FILE__, __LINE__ + 1
    # Get a binding with 'self' set to self, and no locals.
    #
    # The default definee is determined by the context in which the
    # definition is eval'd.
    #
    # Please don't call this method directly, see {__binding__}.
    #
    # @return [Binding]
    def __pry__
      ::Kernel.binding
    end
  EOF
  self.__pry__
end