module ActForm::Combinable

Public Instance Methods

combine(*forms) click to toggle source
# File lib/act_form/combinable.rb, line 34
def combine(*forms)
  forms.each do |form_class|
    raise ArgumentError, "can't combine itself" if form_class == self

    next if self._forms.include?(form_class)

    self.merge_attribute_set_from(form_class)
    self._forms << form_class
  end
end
combined_forms_valid?(context) click to toggle source
# File lib/act_form/combinable.rb, line 18
def combined_forms_valid?(context)
  return if _forms.empty?
  _forms.each do |form_class|
    form = form_class.new(attributes)
    form.valid?(context)
    form.errors.details.each do |attr_name, arr|
      arr.each do |error|
        next if error[:error] == :required
        errors.add(attr_name, error[:error])
      end
    end
  end
end
valid?(context = nil) click to toggle source
Calls superclass method
# File lib/act_form/combinable.rb, line 12
def valid?(context = nil)
  super
  combined_forms_valid?(context)
  errors.empty?
end