module Pry::CodeObject::Helpers

Public Instance Methods

c_method?() click to toggle source
# File lib/pry/code_object.rb, line 28
def c_method?
  real_method_object? && source_type == :c
end
c_module?() click to toggle source

@return [Boolean] `true` if this module was defined by means of the C API,

`false` if it's a Ruby module.

@note If a module defined by C was extended with a lot of methods written

in Ruby, this method would fail.
# File lib/pry/code_object.rb, line 44
def c_module?
  if is_a?(WrappedModule)

    method_locations = wrapped.methods(false).map do |m|
      wrapped.method(m).source_location
    end

    method_locations.concat(wrapped.instance_methods(false).map do |m|
                              wrapped.instance_method(m).source_location
                            end)

    c_methods = method_locations.grep(nil).count
    ruby_methods = method_locations.count - c_methods

    c_methods > ruby_methods
  end
end
command?() click to toggle source
# File lib/pry/code_object.rb, line 36
def command?
  is_a?(Module) && self <= Pry::Command
end
module_with_yard_docs?() click to toggle source
# File lib/pry/code_object.rb, line 32
def module_with_yard_docs?
  is_a?(WrappedModule) && yard_docs?
end
real_method_object?() click to toggle source

we need this helper as some Pry::Method objects can wrap Procs @return [Boolean]

# File lib/pry/code_object.rb, line 24
def real_method_object?
  is_a?(::Method) || is_a?(::UnboundMethod)
end