Sha256: 115ba0b886077d1c3e54808a5b64bffe4a49bb86c202168317bd61ea1d46d0e5
Contents?: true
Size: 1.12 KB
Versions: 1
Compression:
Stored size: 1.12 KB
Contents
require "dry-validation" require "reform/validation" require "dry/validation/schema/form" module Reform::Form::Dry module Validations def build_errors Reform::Contract::Errors.new(self) end module ClassMethods def validation_group_class Group end end def self.included(includer) includer.extend(ClassMethods) end class Group def initialize @validator = Class.new(ValidatorSchema) end def instance_exec(&block) @validator.class_eval(&block) end def call(fields, reform_errors, form) validator = @validator.new(form) validator.call(fields).messages.each do |dry_error| # a dry error message looks like this: # [:email, [['Please provide your email', '']]] dry_error[1].each do |attr_error| reform_errors.add(dry_error[0], attr_error[0]) end end end end class ValidatorSchema < Dry::Validation::Schema::Form def initialize(form) @form = form super() end def form @form end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
reform-2.1.0.rc1 | lib/reform/form/dry.rb |