class Pry::Command::Ls::Methods

Public Class Methods

new(interrogatee, no_user_opts, opts, pry_instance) click to toggle source
Calls superclass method Pry::Command::Ls::Formatter::new
# File lib/pry/commands/ls/methods.rb, line 10
def initialize(interrogatee, no_user_opts, opts, pry_instance)
  super(pry_instance)
  @interrogatee = interrogatee
  @no_user_opts = no_user_opts
  @default_switch = opts[:methods]
  @instance_methods_switch = opts['instance-methods']
  @ppp_switch = opts[:ppp]
  @jruby_switch = opts['all-java']
  @quiet_switch = opts[:quiet]
  @verbose_switch = opts[:verbose]
end

Public Instance Methods

output_self() click to toggle source
# File lib/pry/commands/ls/methods.rb, line 22
def output_self
  methods = all_methods.group_by(&:owner)
  # Reverse the resolution order so that the most useful information
  # appears right by the prompt.
  resolution_order.take_while(&below_ceiling).reverse.map do |klass|
    methods_here = (methods[klass] || []).select { |m| grep.regexp[m.name] }
    heading = "#{Pry::WrappedModule.new(klass).method_prefix}methods"
    output_section(heading, format(methods_here))
  end.join('')
end

Private Instance Methods

below_ceiling() click to toggle source

Get a lambda that can be used with `take_while` to prevent over-eager traversal of the Object's ancestry graph.

# File lib/pry/commands/ls/methods.rb, line 41
def below_ceiling
  ceiling = if @quiet_switch
              [Pry::Method.safe_send(interrogatee_mod, :ancestors)[1]] +
                pry_instance.config.ls.ceiling
            elsif @verbose_switch
              []
            else
              pry_instance.config.ls.ceiling.dup
            end
  ->(klass) { !ceiling.include?(klass) }
end
correct_opts?() click to toggle source
# File lib/pry/commands/ls/methods.rb, line 35
def correct_opts?
  super || @instance_methods_switch || @ppp_switch || @no_user_opts
end