Class: Minenum::Enum::Values

Inherits:
Object
  • Object
show all
Defined in:
lib/minenum/enum/values.rb

Overview

:nodoc:

Instance Attribute Summary collapse

Instance Method Summary collapse

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

#valuesObject (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_keyObject



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

Returns:

  • (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