Class: Minenum::Enum::Values
- Inherits:
-
Object
- Object
- Minenum::Enum::Values
- Defined in:
- lib/minenum/enum/values.rb
Overview
:nodoc:
Instance Attribute Summary collapse
-
#values ⇒ Object
readonly
Returns the value of attribute values.
Instance Method Summary collapse
- #each_key ⇒ Object
-
#initialize(values) ⇒ Values
constructor
A new instance of Values.
- #key(key_or_value) ⇒ Object
- #match?(key_name, key_or_value) ⇒ Boolean
- #value(key_or_value) ⇒ Object
Constructor Details
#initialize(values) ⇒ Values
Returns a new instance of Values.
8 9 10 11 |
# File 'lib/minenum/enum/values.rb', line 8 def initialize(values) @values = values.transform_keys(&:to_sym).transform_values(&:freeze).tap(&:freeze) freeze end |
Instance Attribute Details
#values ⇒ Object (readonly)
Returns the value of attribute values.
6 7 8 |
# File 'lib/minenum/enum/values.rb', line 6 def values @values end |
Instance Method Details
#each_key ⇒ Object
13 14 15 |
# File 'lib/minenum/enum/values.rb', line 13 def each_key(...) @values.each_key(...) end |
#key(key_or_value) ⇒ Object
17 18 19 20 21 22 23 24 |
# File 'lib/minenum/enum/values.rb', line 17 def key(key_or_value) return key_or_value if @values.key?(key_or_value) return @values.key(key_or_value) if @values.value?(key_or_value) return key_or_value.to_sym if match_as_key?(key_or_value) find_by_key(key_or_value) end |
#match?(key_name, key_or_value) ⇒ Boolean
36 37 38 |
# File 'lib/minenum/enum/values.rb', line 36 def match?(key_name, key_or_value) key(key_or_value) == key_name.to_sym end |
#value(key_or_value) ⇒ Object
26 27 28 29 30 31 32 33 34 |
# File 'lib/minenum/enum/values.rb', line 26 def value(key_or_value) return @values.values.find { _1 == key_or_value } if @values.value?(key_or_value) return @values[key_or_value] if @values.key?(key_or_value) val = find_by_value(key_or_value) return val if val @values[key_or_value.to_sym] if match_as_key?(key_or_value) end |