Class: Utils::IRB::Shell::MethodWrapper
- Inherits:
-
WrapperBase
- Object
- WrapperBase
- Utils::IRB::Shell::MethodWrapper
- Defined in:
- lib/utils/irb/shell/wrappers.rb
Overview
A wrapper class for Ruby method objects that provides enhanced introspection and display capabilities.
This class extends WrapperBase to create specialized wrappers for Ruby method objects, offering detailed information about methods including their source location, arity, and owner. It facilitates interactive exploration of Ruby methods in environments like IRB by providing structured access to method metadata and enabling sorting and comparison operations based on method descriptions.
Instance Attribute Summary collapse
-
#wrapped_method ⇒ Object
readonly
The method reader returns the method object associated with the instance.
Attributes inherited from WrapperBase
Instance Method Summary collapse
-
#<=>(other) ⇒ Integer
The <=> method compares the descriptions of two objects for ordering purposes.
-
#arity ⇒ Integer
The arity method returns the number of parameters expected by the method.
-
#initialize(obj, name, modul) ⇒ MethodWrapper
constructor
The initialize method sets up a new instance with the specified object, method name, and module flag.
-
#owner ⇒ Object?
The owner method retrieves the owner of the method object.
-
#source_location ⇒ Array<String, Integer>
The source_location method retrieves the file path and line number where the method is defined.
Methods inherited from WrapperBase
Constructor Details
#initialize(obj, name, modul) ⇒ MethodWrapper
The initialize method sets up a new instance with the specified object, method name, and module flag.
This method creates and configures a new instance by storing the method object and its description, handling both instance methods and regular methods based on the module flag parameter.
132 133 134 135 136 |
# File 'lib/utils/irb/shell/wrappers.rb', line 132 def initialize(obj, name, modul) super(name) @wrapped_method = modul ? obj.instance_method(name) : obj.method(name) @description = @wrapped_method.description(style: :namespace) end |
Instance Attribute Details
#wrapped_method ⇒ Object (readonly)
The method reader returns the method object associated with the instance.
140 141 142 |
# File 'lib/utils/irb/shell/wrappers.rb', line 140 def wrapped_method @wrapped_method end |
Instance Method Details
#<=>(other) ⇒ Integer
The <=> method compares the descriptions of two objects for ordering purposes.
179 180 181 |
# File 'lib/utils/irb/shell/wrappers.rb', line 179 def <=>(other) @description <=> other.description end |
#arity ⇒ Integer
The arity method returns the number of parameters expected by the method.
155 156 157 |
# File 'lib/utils/irb/shell/wrappers.rb', line 155 def arity @wrapped_method.arity end |
#owner ⇒ Object?
The owner method retrieves the owner of the method object.
This method checks if the wrapped method object responds to the owner message and returns the owner if available, otherwise it returns nil.
148 149 150 |
# File 'lib/utils/irb/shell/wrappers.rb', line 148 def owner @wrapped_method.respond_to?(:owner) ? @wrapped_method.owner : nil end |
#source_location ⇒ Array<String, Integer>
The source_location method retrieves the file path and line number where the method is defined.
This method accesses the underlying source location information for the method object, returning an array that contains the filename and line number of the method’s definition.
168 169 170 |
# File 'lib/utils/irb/shell/wrappers.rb', line 168 def source_location @wrapped_method.source_location end |