class Decay::ActiveEnumAttribute

Public Class Methods

new(enum:) click to toggle source
# File lib/decay/active_enum_attribute.rb, line 3
def initialize(enum:)
  @enum = enum
end

Public Instance Methods

cast(value) click to toggle source

User input

# File lib/decay/active_enum_attribute.rb, line 8
def cast(value)
  if value.is_a?(Decay::EnumeratedType)
    value
  elsif value.respond_to?(:to_sym)
    @enum[value.to_sym]
  else
    @enum[value]
  end
end
deserialize(value) click to toggle source

Database => Ruby

# File lib/decay/active_enum_attribute.rb, line 28
def deserialize(value)
  @enum[@enum.key_for(value)]
end
serialize(value) click to toggle source

Ruby => Database

# File lib/decay/active_enum_attribute.rb, line 19
def serialize(value)
  if value.respond_to?(:value)
    value.value
  else
    value
  end
end