Sha256: b5626e5dcdeebb97cb81fae790a983755300184fa8132c9f34f74187a2ed846b

Contents?: true

Size: 854 Bytes

Versions: 55

Compression:

Stored size: 854 Bytes

Contents

module ActiveModel

  module Validations

    class NestedUniquenessValidator < EachValidator
      def validate_each(record, attr_name, value)
        uniq_value, existing_objects, first_element = options[:uniq_value], [], nil

        record.send(attr_name).each do |object|
          next if object.marked_for_destruction?

          first_element = object if first_element.nil?

          if existing_objects.include?(object.send(uniq_value))
            object.errors.add(uniq_value, :taken)
            record.errors.add(attr_name, :taken)
          else
            existing_objects << object.send(uniq_value)
          end
        end

      end
    end

    module HelperMethods
      
      def validates_nested_uniqueness(*attr_names)
        validates_with NestedUniquenessValidator, _merge_attributes(attr_names)
      end

    end
  end
end

Version data entries

55 entries across 55 versions & 1 rubygems

Version Path
object_attorney-2.10.5 not_used/nested_uniqueness_validator.rb
object_attorney-2.10.3 not_used/nested_uniqueness_validator.rb
object_attorney-2.10.2 not_used/nested_uniqueness_validator.rb
object_attorney-2.10.1 not_used/nested_uniqueness_validator.rb
object_attorney-2.9.4 not_used/nested_uniqueness_validator.rb
object_attorney-2.9.3 not_used/nested_uniqueness_validator.rb
object_attorney-2.9.2 not_used/nested_uniqueness_validator.rb
object_attorney-2.9.0 not_used/nested_uniqueness_validator.rb
object_attorney-2.8.1 not_used/nested_uniqueness_validator.rb
object_attorney-2.8.0 not_used/nested_uniqueness_validator.rb
object_attorney-2.6.12 not_used/nested_uniqueness_validator.rb
object_attorney-2.6.11 not_used/nested_uniqueness_validator.rb
object_attorney-2.6.10 not_used/nested_uniqueness_validator.rb
object_attorney-2.6.9 not_used/nested_uniqueness_validator.rb
object_attorney-2.6.1 not_used/nested_uniqueness_validator.rb
object_attorney-2.6.0 not_used/nested_uniqueness_validator.rb
object_attorney-2.5.9 not_used/nested_uniqueness_validator.rb
object_attorney-2.5.7 not_used/nested_uniqueness_validator.rb
object_attorney-2.5.6 not_used/nested_uniqueness_validator.rb
object_attorney-2.5.5 not_used/nested_uniqueness_validator.rb