module OnebusawaySDK::Internal::Type::Enum

def coerce(value, state:)

Returns:
  • (Symbol, Object) -

Options Hash: (**state)
  • :branched (Integer) --
  • :error (Class) --
  • :exactness (Hash{Symbol=>Object}) --
  • :strictness (Boolean) --
  • :translate_names (Boolean) --

Parameters:
  • state (Hash{Symbol=>Object}) -- .
  • value (String, Symbol, Object) --

Other tags:
    Api: - private
def coerce(value, state:)
  exactness = state.fetch(:exactness)
  val = value.is_a?(String) ? value.to_sym : value
  if values.include?(val)
    exactness[:yes] += 1
    val
  elsif values.first&.class == val.class
    exactness[:maybe] += 1
    value
  else
    exactness[:no] += 1
    state[:error] = TypeError.new("#{value.class} can't be coerced into #{self}")
    value
  end
end