Module: Crystalline::Enum::ClassMethods
- Defined in:
- lib/crystalline/types.rb
Instance Method Summary collapse
Instance Method Details
#deserialize(val) ⇒ Object
130 131 132 133 134 135 136 137 138 |
# File 'lib/crystalline/types.rb', line 130 def deserialize(val) if @mapping.include? val @mapping[val] elsif open? new(val) else raise "Invalid value for enum: #{val}" end end |
#enums(&blk) ⇒ Object
109 110 111 112 113 114 115 116 117 118 119 120 |
# File 'lib/crystalline/types.rb', line 109 def enums(&blk) @mapping = {} yield constants(false).each do |const_name| instance = const_get(const_name, false) unless instance.is_a? self raise 'Enum constants must be instances of the Enum class (e.g. `Foo = new`)' end @mapping[instance.serialize] = instance end end |
#open! ⇒ Object
122 123 124 |
# File 'lib/crystalline/types.rb', line 122 def open! @open = true end |
#open? ⇒ Boolean
126 127 128 |
# File 'lib/crystalline/types.rb', line 126 def open? @open == true end |