class RailsSettingsUi::SettingsFormCoercible
Constants
- COERCIONS_MAP
Attributes
Public Class Methods
Source
# File lib/rails-settings-ui/settings_form_coercible.rb, line 58 def initialize(default_settings, settings) @default_settings = default_settings @settings = settings @coerced_settings = {} end
Public Instance Methods
Source
# File lib/rails-settings-ui/settings_form_coercible.rb, line 64 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
Private Instance Methods
Source
# File lib/rails-settings-ui/settings_form_coercible.rb, line 77 def set_default_boolean_value!(settings) default_settings.each do |name, value| setting_value = settings[name.to_sym] next if setting_value.present? settings[name.to_sym] = case value.class.name when 'TrueClass', 'FalseClass' false when 'Array' [] end end end