class Pry::Command::Ls
def error_list
def error_list any_args = args.any? # rubocop:disable Style/CaseEquality non_mod_interrogatee = !(Module === @interrogatee) # rubocop:enable Style/CaseEquality [ ['-l does not make sense with a specified Object', :locals, any_args], ['-g does not make sense with a specified Object', :globals, any_args], ['-q does not make sense with -v', :quiet, opts.present?(:verbose)], [ '-M only makes sense with a Module or a Class', 'instance-methods', non_mod_interrogatee ], [ '-c only makes sense with a Module or a Class', :constants, any_args && non_mod_interrogatee ] ] end
def no_user_opts?
Exclude -q, -v and --grep because they,
def no_user_opts? !(opts[:methods] || opts['instance-methods'] || opts[:ppp] || opts[:globals] || opts[:locals] || opts[:constants] || opts[:ivars]) end
def options(opt)
def options(opt) opt.on :m, :methods, "Show public methods defined on the Object" opt.on :M, "instance-methods", "Show public methods defined in a " \ "Module or Class" opt.on :p, :ppp, "Show public, protected (in yellow) and private " \ "(in green) methods" opt.on :q, :quiet, "Show only methods defined on object.singleton_class " \ "and object.class" opt.on :v, :verbose, "Show methods and constants on all super-classes " \ "(ignores Pry.config.ls.ceiling)" opt.on :g, :globals, "Show global variables, including those builtin to " \ "Ruby (in cyan)" opt.on :l, :locals, "Show hash of local vars, sorted by descending size" opt.on :c, :constants, "Show constants, highlighting classes (in blue), " \ "and exceptions (in purple).\n" \ "#{' ' * 32}Constants that are pending autoload? " \ "are also shown (in yellow)" opt.on :i, :ivars, "Show instance variables (in blue) and class " \ "variables (in bright blue)" opt.on :G, :grep, "Filter output by regular expression", argument: true if Object.respond_to?(:deprecate_constant) opt.on :d, :dconstants, "Show deprecated constants" end return unless Helpers::Platform.jruby? opt.on :J, "all-java", "Show all the aliases for methods from java " \ "(default is to show only prettiest)" end
def process
def process @interrogatee = args.empty? ? target_self : target.eval(args.join(' ')) raise_errors_if_arguments_are_weird ls_entity = LsEntity.new( interrogatee: @interrogatee, no_user_opts: no_user_opts?, opts: opts, args: args, pry_instance: pry_instance ) pry_instance.pager.page ls_entity.entities_table end
def raise_errors_if_arguments_are_weird
def raise_errors_if_arguments_are_weird error_list.each do |message, option, invalid_expr| raise Pry::CommandError, message if opts.present?(option) && invalid_expr end end