module OnebusawaySDK::Internal::Type::Enum
def coerce(value, state:)
-
(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