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
27 28 29 30 31 32 33 |
# File 'lib/ruby-enum/enum.rb', line 27 def const_missing(key) if @_enum_hash[key] @_enum_hash[key].value else raise 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.
22 23 24 25 |
# File 'lib/ruby-enum/enum.rb', line 22 def define(key, value) @_enum_hash ||= {} @_enum_hash[key] = self.new(key, value) end |
#each(&block) ⇒ Object
Iterate over all enumerated values. Yields a key and an enumerated instance.
37 38 39 40 41 |
# File 'lib/ruby-enum/enum.rb', line 37 def each(&block) @_enum_hash.each do |key, value| yield key, value end end |
#keys ⇒ Object
Returns all enum keys.
60 61 62 |
# File 'lib/ruby-enum/enum.rb', line 60 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.
49 50 51 52 53 54 55 56 57 |
# File 'lib/ruby-enum/enum.rb', line 49 def parse(s) s = s.to_s.upcase each do |key, enum| if key.to_s.upcase == s return enum.value end end nil end |
#to_h ⇒ Object
69 70 71 72 73 |
# File 'lib/ruby-enum/enum.rb', line 69 def to_h Hash[@_enum_hash.map do |key, enum| [ key, enum.value ] end] end |
#values ⇒ Object
Returns all enum values.
65 66 67 |
# File 'lib/ruby-enum/enum.rb', line 65 def values @_enum_hash.values.map(&:value) end |