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.
-
#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
26 27 28 29 30 31 32 |
# File 'lib/ruby-enum/enum.rb', line 26 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.
21 22 23 24 |
# File 'lib/ruby-enum/enum.rb', line 21 def define(key, value) @_enum_hash ||= {} @_enum_hash[key] = new(key, value) end |
#each(&block) ⇒ Object
Iterate over all enumerated values. Required for Enumerable mixin
36 37 38 |
# File 'lib/ruby-enum/enum.rb', line 36 def each(&block) @_enum_hash.each(&block) end |
#keys ⇒ Object
Returns all enum keys.
55 56 57 |
# File 'lib/ruby-enum/enum.rb', line 55 def keys @_enum_hash.values.map(&:key) end |
#parse(s) ⇒ Object
Attempt to parse an enumerated value.
Parameters
- s
-
The string to parse.
Returns an enumerated value or nil.
46 47 48 49 50 51 52 |
# File 'lib/ruby-enum/enum.rb', line 46 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
64 65 66 67 68 |
# File 'lib/ruby-enum/enum.rb', line 64 def to_h Hash[@_enum_hash.map do |key, enum| [key, enum.value] end] end |
#values ⇒ Object
Returns all enum values.
60 61 62 |
# File 'lib/ruby-enum/enum.rb', line 60 def values @_enum_hash.values.map(&:value) end |