Module: LunaPark::Extensions::Validatable

Included in:
Forms::Simple, Forms::SingleItem
Defined in:
lib/luna_park/extensions/validatable.rb,
lib/luna_park/extensions/validatable/dry.rb

Overview

Examples:

class MyForm
  include LunaPark::Extensions::Validatable

  validator MyValidator # must respond_to #errors, #success?, #valid_params, .validate

  def initialize(params)
    @params = params
  end

  def data
    OpenStruct.new(valid_params) if valid?
  end

  private

  attr_reader :params # define abstract method
end

form = MyForm.new(foo: 'Foo')
form.valid?            # => false
form.validation_errors # => { bar: ['is missing'] }
form.data              # => nil

form = MyForm.new(foo: 'Foo', bar: 'Bar')
form.valid?            # => true
form.data              # => #<OpenStruct foo="Foo" bar="Bar" }

Defined Under Namespace

Modules: ClassMethods, Dry, InstanceMethods

Class Method Summary collapse

Class Method Details

.included(klass) ⇒ Object



33
34
35
36
37
# File 'lib/luna_park/extensions/validatable.rb', line 33

def self.included(klass)
  klass.include InstanceMethods
  klass.extend  ClassMethods
  super
end