Module: Lean::Attributes::CoercionHelpers Private
- Defined in:
- lib/lean-attributes/attributes/coercion_helpers.rb
Overview
This module is part of a private API. You should avoid using this module if possible, as it may be removed or be changed in the future.
Incredibly straightforward methods that coerce some types into other common types. You may find that you need to override these methods, depending on your use case.
Constant Summary collapse
- METHOD_BODIES =
This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.
Method body strings used to precompile ‘coerce_<attribute>` methods
{ Array: 'Array(value)', BigDecimal: 'BigDecimal.new(value, 0)', Boolean: 'value ? true : false', Date: 'Date.parse(value)', DateTime: 'DateTime.parse(value)', Float: 'value.to_f', Integer: 'value.to_i', String: 'value.to_s', Symbol: 'value.to_s.to_sym', Time: 'Time.parse(value).utc' }.freeze
Class Method Summary collapse
-
.method_body_for_type(type) ⇒ String
private
Fetches or generates the method body for coercing a value to this type.
Class Method Details
.method_body_for_type(type) ⇒ String
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Fetches or generates the method body for coercing a value to this type
37 38 39 40 |
# File 'lib/lean-attributes/attributes/coercion_helpers.rb', line 37 def self.method_body_for_type(type) METHOD_BODIES[type] || "value.is_a?(#{type}) ? value : #{type}.new(value)" end |