class RailsSettingsUi::TypeConverter
Constants
- VALUE_TYPES_MAP
Public Class Methods
Source
# File lib/rails-settings-ui/type_converter.rb, line 33 def self.cast(settings) errors = {} settings.each do |name, value| sc = RailsSettingsUi.setting_config(name.to_s) type = setting_value_type(name, value, sc) settings[name] = type.cast if type.errors.any? errors[name.to_sym] = type.errors end end settings = set_non_presented_settings(settings) settings[:errors] = errors settings end
Source
# File lib/rails-settings-ui/type_converter.rb, line 66 def self.set_non_presented_settings(settings) RailsSettingsUi.default_settings.each do |name, value| if !settings[name.to_sym].present? if [TrueClass, FalseClass].include?(value.class) settings[name.to_sym] = false elsif [Array].include?(value.class) settings[name.to_sym] = [] end end end settings end
Source
# File lib/rails-settings-ui/type_converter.rb, line 49 def self.setting_value_type(name, value, setting_config) default_setting_value_type = if setting_config[:type].nil? || setting_config[:type] == :string setting_config[:default].class else setting_config[:type] end unless VALUE_TYPES_MAP.keys.include?(default_setting_value_type) raise RailsSettingsUi::UnknownDefaultValueType, "Unknown default value type #{default_setting_value_type} for #{name}" end # puts "--- #{name}: #{default_setting_value_type} ---" setting_value_type_class = VALUE_TYPES_MAP[default_setting_value_type] setting_value_type_class.new(value) end