Module: Ruby::Enum::ClassMethods
- Defined in:
- lib/ruby-enum/enum.rb
Instance Method Summary collapse
- #const_missing(key) ⇒ Object
-
#define(key, value) ⇒ Object
Define an enumerated value.
-
#each(&_block) ⇒ Object
Iterate over all enumerated values.
-
#keys ⇒ Object
Returns all enum keys.
-
#map(&_block) ⇒ Object
Map all enumerated values.
-
#parse(s) ⇒ Object
Attempt to parse an enumerated value.
- #to_h ⇒ Object
-
#values ⇒ Object
Returns all enum values.
Instance Method Details
#const_missing(key) ⇒ Object
25 26 27 28 29 30 31 |
# File 'lib/ruby-enum/enum.rb', line 25 def const_missing(key) if @_enum_hash[key] @_enum_hash[key].value else fail Ruby::Enum::Errors::UninitializedConstantError.new(name: name, key: key) end end |
#define(key, value) ⇒ Object
Define an enumerated value.
Parameters
- key
-
Enumerator key.
- value
-
Enumerator value.
20 21 22 23 |
# File 'lib/ruby-enum/enum.rb', line 20 def define(key, value) @_enum_hash ||= {} @_enum_hash[key] = new(key, value) end |
#each(&_block) ⇒ Object
Iterate over all enumerated values. Yields a key and an enumerated instance.
35 36 37 38 39 |
# File 'lib/ruby-enum/enum.rb', line 35 def each(&_block) @_enum_hash.each do |key, value| yield key, value end end |
#keys ⇒ Object
Returns all enum keys.
64 65 66 |
# File 'lib/ruby-enum/enum.rb', line 64 def keys @_enum_hash.values.map(&:key) end |
#map(&_block) ⇒ Object
Map all enumerated values. Yields a key and an enumerated instance.
43 44 45 46 47 |
# File 'lib/ruby-enum/enum.rb', line 43 def map(&_block) @_enum_hash.map do |key, value| yield key, value end end |
#parse(s) ⇒ Object
Attempt to parse an enumerated value.
Parameters
- s
-
The string to parse.
Returns an enumerated value or nil.
55 56 57 58 59 60 61 |
# File 'lib/ruby-enum/enum.rb', line 55 def parse(s) s = s.to_s.upcase each do |key, enum| return enum.value if key.to_s.upcase == s end nil end |
#to_h ⇒ Object
73 74 75 76 77 |
# File 'lib/ruby-enum/enum.rb', line 73 def to_h Hash[@_enum_hash.map do |key, enum| [key, enum.value] end] end |
#values ⇒ Object
Returns all enum values.
69 70 71 |
# File 'lib/ruby-enum/enum.rb', line 69 def values @_enum_hash.values.map(&:value) end |