Module: Crystalline::Enum
- Defined in:
- lib/crystalline/types.rb
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.enums(&blk) ⇒ Object
53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/crystalline/types.rb', line 53 def self.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 |
Instance Method Details
#deserialize(val) ⇒ Object
70 71 72 73 74 75 76 |
# File 'lib/crystalline/types.rb', line 70 def deserialize(val) if @mapping.include? val @mapping[val] else raise "Invalid value for enum: #{val}" end end |
#initialize(val) ⇒ Object
44 45 46 47 48 49 50 51 |
# File 'lib/crystalline/types.rb', line 44 def initialize(val) puts methods if instance_methods(false).include?(:initialize) super(val) else @val = val end end |
#serialize ⇒ Object
66 67 68 |
# File 'lib/crystalline/types.rb', line 66 def serialize @val end |