Class: Utils::IRB::Shell::WrapperBase

Inherits:
Object
  • Object
show all
Includes:
Comparable
Defined in:
lib/utils/irb/shell/wrappers.rb

Overview

Base class for wrapping objects with descriptive metadata.

This class provides a foundation for creating wrapper objects that associate descriptive information with underlying objects. It handles name conversion and provides common methods for accessing and comparing wrapped objects.

Direct Known Subclasses

ConstantWrapper, MethodWrapper

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name) ⇒ WrapperBase

The initialize method sets up the instance name by converting the input to a string representation.

This method handles different input types by converting them to a string, prioritizing to_str over to_sym and falling back to to_s if neither is available.

Parameters:

  • name (Object)

    the input name to be converted to a string



19
20
21
22
23
24
25
26
27
28
29
# File 'lib/utils/irb/shell/wrappers.rb', line 19

def initialize(name)
  @name =
    case
    when name.respond_to?(:to_str)
      name.to_str
    when name.respond_to?(:to_sym)
      name.to_sym.to_s
    else
      name.to_s
    end
end

Instance Attribute Details

#descriptionString? (readonly) Also known as: to_str, inspect, to_s

The description reader method provides access to the description attribute.

Returns:

  • (String, nil)

    the description value or nil if not set



41
42
43
# File 'lib/utils/irb/shell/wrappers.rb', line 41

def description
  @description
end

#nameString (readonly)

The name reader method returns the value of the name instance variable.

Returns:

  • (String)

    the value stored in the name instance variable



35
36
37
# File 'lib/utils/irb/shell/wrappers.rb', line 35

def name
  @name
end

Instance Method Details

#<=>(other) ⇒ Integer

The <=> method compares the names of two objects for sorting purposes.

Parameters:

  • other (Object)

    the other object to compare against

Returns:

  • (Integer)

    -1 if this object’s name is less than the other’s, 0 if they are equal, or 1 if this object’s name is greater than the other’s



73
74
75
# File 'lib/utils/irb/shell/wrappers.rb', line 73

def <=>(other)
  @name <=> other.name
end

#==(name) ⇒ Object Also known as: eql?

The == method assigns a new name value to the instance variable.

Parameters:

  • name (Object)

    the name value to be assigned

Returns:

  • (Object)

    returns the assigned name value



54
55
56
# File 'lib/utils/irb/shell/wrappers.rb', line 54

def ==(name)
  @name = name
end

#hashInteger

The hash method returns the hash value of the name attribute.

Returns:

  • (Integer)

    the hash value used for object identification



63
64
65
# File 'lib/utils/irb/shell/wrappers.rb', line 63

def hash
  @name.hash
end