Sha256: e98041ced509a2a8afa8f7a22f65c93ea0b3a4462a773d632121fbf424a44f2a

Contents?: true

Size: 607 Bytes

Versions: 3

Compression:

Stored size: 607 Bytes

Contents

class Acfs::Resource

  #
  module Validation

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

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

    def remote_errors=(errors)
      (errors || []).each do |field, errs|
        self.errors.set field.to_sym, errs
        remote_errors.set field.to_sym, errs
      end
    end

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

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
acfs-1.0.0.dev.1.b305 lib/acfs/resource/validation.rb
acfs-1.0.0.dev.1.b298 lib/acfs/resource/validation.rb
acfs-1.0.0.dev.1.b297 lib/acfs/resource/validation.rb