diff --git a/lib/pry/method.rb b/lib/pry/method.rb index 61bde18a..8a19a991 100644 --- a/lib/pry/method.rb +++ b/lib/pry/method.rb @@ -18,6 +18,7 @@ class Pry # to provide extra functionality useful to Pry. class Method extend Helpers::BaseHelpers + include Helpers::BaseHelpers include RbxMethod if Helpers::BaseHelpers.rbx? include Helpers::DocumentationHelpers @@ -243,6 +244,12 @@ class Pry @wrapped_owner ||= Pry::WrappedModule.new(owner) end + # Get underlying object wrapped by this Pry::Method instance + # @return [Method, UnboundMethod, Proc] + def wrapped + @method + end + # Is the method undefined? (aka `Disowned`) # @return [Boolean] false def undefined? @@ -507,7 +514,8 @@ class Pry end next_owner = ancestors[i] or return nil end - next_owner.instance_method(name) rescue nil + + safe_send(next_owner, :instance_method, name) rescue nil end # @param [String] first_ln The first line of a method definition.