Sha256: 46e06b730b2734e873bf4ef33fd787fd4c2b1875efec352f71a15c06b6d8642f

Contents?: true

Size: 455 Bytes

Versions: 7

Compression:

Stored size: 455 Bytes

Contents

module Validatable
  class ValidatesUniquenessOf < Validatable::ValidationBase
    option :scope

    def valid?(instance)
      conditions = { self.attribute => instance.send(attribute) }
      if scope
        conditions.merge!(scope => instance.send(scope))
      end
      doc = instance.class.first(:conditions => conditions)
      doc.nil? || instance.id == doc.id
    end

    def message(instance)
      super || "must be unique"
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
durran-validatable-2.0.1 lib/validations/validates_uniqueness_of.rb
durran-validatable-2.0.0 lib/validations/validates_uniqueness_of.rb
durran-validatable-1.8.4 lib/validations/validates_uniqueness_of.rb
durran-validatable-1.8.3 lib/validations/validates_uniqueness_of.rb
durran-validatable-1.8.2 lib/validations/validates_uniqueness_of.rb
durran-validatable-1.8.1 lib/validations/validates_uniqueness_of.rb
durran-validatable-1.8.0 lib/validations/validates_uniqueness_of.rb