Module: Acfs::Resource::Validation

Included in:
Acfs::Resource
Defined in:
lib/acfs/resource/validation.rb

Instance Method Summary collapse

Instance Method Details

#remote_errorsObject



11
12
13
# File 'lib/acfs/resource/validation.rb', line 11

def remote_errors
  @remote_errors ||= ActiveModel::Errors.new self
end

#remote_errors=(errors) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/acfs/resource/validation.rb', line 15

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!(*_) ⇒ Object



31
32
33
34
35
36
37
# File 'lib/acfs/resource/validation.rb', line 31

def save!(*_)
  unless valid?(new? ? :create : :save)
    raise ::Acfs::InvalidResource.new resource: self, errors: errors.to_a
  end

  super
end

#valid?(*args) ⇒ Boolean

Returns:



5
6
7
8
9
# File 'lib/acfs/resource/validation.rb', line 5

def valid?(*args)
  super
  remote_errors.each {|f, e| errors.add f, e }
  errors.empty?
end