module Acfs::Resource::Validation

Public Instance Methods

remote_errors() click to toggle source
# File lib/acfs/resource/validation.rb, line 5
def remote_errors
  @remote_errors ||= ActiveModel::Errors.new self
end
remote_errors=(errors) click to toggle source
# File lib/acfs/resource/validation.rb, line 9
def remote_errors=(errors)
  if errors.respond_to?(:each_pair)
    errors.each_pair do |field, errs|
      Array(errs).each do |err|
        self.errors.add field.to_sym, err
        remote_errors.add field.to_sym, err
      end
    end
  else
    Array(errors).each do |err|
      self.errors.add :base, err
      remote_errors.add :base, err
    end
  end
end
save!(**kwargs) click to toggle source
Calls superclass method
# File lib/acfs/resource/validation.rb, line 25
def save!(**kwargs)
  unless valid?(new? ? :create : :save)
    raise ::Acfs::InvalidResource.new resource: self, errors: errors.to_a
  end

  super
end
valid?(*args) click to toggle source
Calls superclass method
# File lib/acfs/resource/validation.rb, line 34
def valid?(*args)
  super

  remote_errors.each {|e| errors.add(e.attribute, e.message) }
  errors.empty?
end