Class: RailsSettingsUi::SettingsFormCoercible
- Inherits:
-
Object
- Object
- RailsSettingsUi::SettingsFormCoercible
- Defined in:
- lib/rails-settings-ui/settings_form_coercible.rb
Constant Summary collapse
- COERCIONS_MAP =
{ String => Types::Coercible::String, Symbol => Types::CustomCoercions::Symbol, (1.class == Integer ? Integer : Fixnum) => Types::Params::Integer, ActiveSupport::HashWithIndifferentAccess => Types::CustomCoercions::Hash, ActiveSupport::Duration => Types::Params::Integer, Float => Types::Params::Float, Array => Types::CustomCoercions::Array, FalseClass => Types::Params::Bool, TrueClass => Types::Params::Bool }.freeze
Instance Attribute Summary collapse
-
#coerced_settings ⇒ Object
Returns the value of attribute coerced_settings.
-
#default_settings ⇒ Object
readonly
Returns the value of attribute default_settings.
-
#settings ⇒ Object
readonly
Returns the value of attribute settings.
Instance Method Summary collapse
- #coerce! ⇒ Object
-
#initialize(default_settings, settings) ⇒ SettingsFormCoercible
constructor
A new instance of SettingsFormCoercible.
Constructor Details
#initialize(default_settings, settings) ⇒ SettingsFormCoercible
Returns a new instance of SettingsFormCoercible.
57 58 59 60 61 |
# File 'lib/rails-settings-ui/settings_form_coercible.rb', line 57 def initialize(default_settings, settings) @default_settings = default_settings @settings = settings @coerced_settings = {} end |
Instance Attribute Details
#coerced_settings ⇒ Object
Returns the value of attribute coerced_settings.
43 44 45 |
# File 'lib/rails-settings-ui/settings_form_coercible.rb', line 43 def coerced_settings @coerced_settings end |
#default_settings ⇒ Object (readonly)
Returns the value of attribute default_settings.
42 43 44 |
# File 'lib/rails-settings-ui/settings_form_coercible.rb', line 42 def default_settings @default_settings end |
#settings ⇒ Object (readonly)
Returns the value of attribute settings.
42 43 44 |
# File 'lib/rails-settings-ui/settings_form_coercible.rb', line 42 def settings @settings end |
Instance Method Details
#coerce! ⇒ Object
63 64 65 66 67 68 69 70 71 72 |
# File 'lib/rails-settings-ui/settings_form_coercible.rb', line 63 def coerce! settings.to_hash.symbolize_keys.each do |name, value| default_value_class = default_settings[name].class coercible_type = COERCIONS_MAP[default_value_class] raise NotCoercibleError, "can't coerce #{default_value_class}" unless coercible_type coerced_settings[name] = coercible_type[value] end set_default_boolean_value!(coerced_settings) coerced_settings end |