Class: Mfp::Enum::Value
Instance Attribute Summary collapse
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#value ⇒ Object
readonly
Returns the value of attribute value.
Instance Method Summary collapse
- #<=>(other) ⇒ Object
-
#==(other) ⇒ Object
(also: #eql?)
==, case/when, hashing, ordering.
- #===(other) ⇒ Object
-
#coerce(other) ⇒ Object
arithmetic when the Value is on the right.
- #hash ⇒ Object
-
#initialize(owner, name, value) ⇒ Value
constructor
A new instance of Value.
- #inspect ⇒ Object
-
#method_missing(name) ⇒ Object
everything else Integer can do.
- #respond_to_missing?(name, include_private = false) ⇒ Boolean
- #to_i ⇒ Object
-
#to_int ⇒ Object
implicit integer coercion.
- #to_json(*_a) ⇒ Object
- #to_s ⇒ Object
Constructor Details
#initialize(owner, name, value) ⇒ Value
Returns a new instance of Value.
10 11 12 13 14 15 |
# File 'lib/mfp/enum.rb', line 10 def initialize(owner, name, value) @owner = owner @name = name.to_sym @value = Integer(value) freeze end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name) ⇒ Object
everything else Integer can do
38 39 40 |
# File 'lib/mfp/enum.rb', line 38 def method_missing(name, *, &) @value.respond_to?(name) ? @value.public_send(name, *, &) : super end |
Instance Attribute Details
#name ⇒ Object (readonly)
Returns the value of attribute name.
8 9 10 |
# File 'lib/mfp/enum.rb', line 8 def name @name end |
#value ⇒ Object (readonly)
Returns the value of attribute value.
8 9 10 |
# File 'lib/mfp/enum.rb', line 8 def value @value end |
Instance Method Details
#<=>(other) ⇒ Object
29 30 31 32 |
# File 'lib/mfp/enum.rb', line 29 def <=>(other) c = coerced(other) c.nil? ? nil : @value <=> c end |
#==(other) ⇒ Object Also known as: eql?
==, case/when, hashing, ordering
24 |
# File 'lib/mfp/enum.rb', line 24 def ==(other) = @value == coerced(other) |
#===(other) ⇒ Object
25 |
# File 'lib/mfp/enum.rb', line 25 def ===(other) = @value == coerced(other) |
#coerce(other) ⇒ Object
arithmetic when the Value is on the right
35 |
# File 'lib/mfp/enum.rb', line 35 def coerce(other) = [other, @value] |
#hash ⇒ Object
27 |
# File 'lib/mfp/enum.rb', line 27 def hash = @value.hash |
#inspect ⇒ Object
46 |
# File 'lib/mfp/enum.rb', line 46 def inspect = @name.to_s |
#respond_to_missing?(name, include_private = false) ⇒ Boolean
42 43 44 |
# File 'lib/mfp/enum.rb', line 42 def respond_to_missing?(name, include_private = false) @value.respond_to?(name, include_private) || super end |
#to_i ⇒ Object
19 |
# File 'lib/mfp/enum.rb', line 19 def to_i = @value |
#to_int ⇒ Object
implicit integer coercion
18 |
# File 'lib/mfp/enum.rb', line 18 def to_int = @value |
#to_json(*_a) ⇒ Object
21 |
# File 'lib/mfp/enum.rb', line 21 def to_json(*_a) = @value.to_json |
#to_s ⇒ Object
20 |
# File 'lib/mfp/enum.rb', line 20 def to_s = @value.to_s |