module Pathway::Plugins::DryValidation::V0_11::ClassMethods

Attributes

auto_wire_options[RW]
form_class[R]
form_options[R]

Public Instance Methods

build_form(opts = {}) click to toggle source
# File lib/pathway/plugins/dry_validation/v0_11.rb, line 28
def build_form(opts = {})
  @builded_form || form_class.new(opts)
end
form(base = nil, **opts, &block) click to toggle source
# File lib/pathway/plugins/dry_validation/v0_11.rb, line 11
def form(base = nil, **opts, &block)
  if block_given?
    base ||= _base_form
    self.form_class = _block_definition(base, opts, &block)
  elsif base
    self.form_class = _form_class(base)
  else
    raise ArgumentError, 'Either a form class or a block must be provided'
  end
end
form_class=(klass) click to toggle source
# File lib/pathway/plugins/dry_validation/v0_11.rb, line 22
def form_class= klass
  @builded_form = klass.options.empty? ? klass.new : nil
  @form_class = klass
  @form_options = klass.options.keys
end
inherited(subclass) click to toggle source
Calls superclass method
# File lib/pathway/plugins/dry_validation/v0_11.rb, line 32
def inherited(subclass)
  super
  subclass.form_class = form_class
  subclass.auto_wire_options = auto_wire_options
end

Private Instance Methods

_base_form() click to toggle source
# File lib/pathway/plugins/dry_validation/v0_11.rb, line 40
def _base_form
  superclass.respond_to?(:form_class) ? superclass.form_class : Dry::Validation::Schema::Form
end
_block_definition(base, opts, &block) click to toggle source
# File lib/pathway/plugins/dry_validation/v0_11.rb, line 52
def _block_definition(base, opts, &block)
  Dry::Validation.Form(_form_class(base), _form_opts(opts), &block)
end
_form_class(form) click to toggle source
# File lib/pathway/plugins/dry_validation/v0_11.rb, line 44
def _form_class(form)
  form.is_a?(Class) ? form : form.class
end
_form_opts(opts = {}) click to toggle source
# File lib/pathway/plugins/dry_validation/v0_11.rb, line 48
def _form_opts(opts = {})
  opts.merge(build: false)
end