class Apia::Enum

Public Class Methods

cast(value = nil, &block) click to toggle source

Cast a value or define a new block for casting (for DSL purposes)

@param value [Object?] @return [Object?]

# File lib/apia/enum.rb, line 26
def cast(value = nil, &block)
  if block_given? && value.nil?
    return definition.dsl.cast(&block)
  end

  value = definition.cast.call(value) if definition.cast

  if definition.values[value].nil?
    raise InvalidEnumOptionError.new(self, value)
  end

  value
end
definition() click to toggle source

Return the definition object for the enum

@return [Apia::Definitions::Enum]

# File lib/apia/enum.rb, line 18
def definition
  @definition ||= Definitions::Enum.new(Helpers.class_name_to_id(name))
end