lib/byebug/commands/method.rb in byebug-5.0.0 vs lib/byebug/commands/method.rb in byebug-6.0.0

- old
+ new

@@ -1,20 +1,42 @@ require 'byebug/command' +require 'byebug/helpers/eval' module Byebug # # Show methods of specific classes/modules/objects. # class MethodCommand < Command - include Columnize + include Helpers::EvalHelper - def regexp + self.allow_in_post_mortem = true + + def self.regexp /^\s* m(?:ethod)? \s+ (i(:?nstance)?\s+)?/x end + def self.description + <<-EOD + m[ethod] (i[nstance][ <obj>]|<class|module>) + + #{short_description} + + When invoked with "instance", shows instance methods of the object + specified as argument or of self no object was specified. + + When invoked only with a class or module, shows class methods of the + class or module specified as argument. + EOD + end + + def self.short_description + 'Shows methods of an object, class or module' + end + def execute - obj = bb_eval(@match.post_match) + obj = single_thread_eval(@match.post_match) + result = if @match[1] prc('method.methods', obj.methods.sort) { |item, _| { name: item } } elsif !obj.is_a?(Module) pr('variable.errors.not_module', object: @match.post_match) @@ -22,20 +44,8 @@ prc('method.methods', obj.instance_methods(false).sort) do |item, _| { name: item } end end puts result - end - - def description - <<-EOD - m[ethod] (i[nstance][ <obj>]|<class|module>) - - When invoked with "instance", shows instance methods of the object - specified as argument or of self no object was specified. - - When invoked only with a class or module, shows class methods of the - class or module specified as argument. - EOD end end end