class RailsSettingsUi::SettingsFormValidator
Constants
- VALIDATABLE_TYPES
Public Class Methods
new(default_settings, settings)
click to toggle source
# File lib/rails-settings-ui/settings_form_validator.rb, line 29 def initialize(default_settings, settings) @default_settings = default_settings @settings = settings build_validation_schema end
Public Instance Methods
errors()
click to toggle source
# File lib/rails-settings-ui/settings_form_validator.rb, line 35 def errors @schema.call(@settings.to_hash).messages end
Private Instance Methods
build_validation_schema()
click to toggle source
# File lib/rails-settings-ui/settings_form_validator.rb, line 41 def build_validation_schema registry = Dry::Validation::PredicateRegistry.new(CustomPredicates) v = Dry::Validation::Schema::Value.new(registry: registry) validatable_settings.each do |name, value| predicate = VALIDATABLE_TYPES[value.class] v.required(name.to_sym).filled(predicate) if predicate end SettingsSchema.configure do |config| config.rules = v.rules config.messages = :i18n end @schema = SettingsSchema.new end
validatable_settings()
click to toggle source
# File lib/rails-settings-ui/settings_form_validator.rb, line 58 def validatable_settings @default_settings.select { |_, value| value.class.in?(VALIDATABLE_TYPES.keys) } end