Sha256: 97e6d447c8c4c6a99f87402cb6bae2fe2134099408a556d02ae5b0b8bdba9899

Contents?: true

Size: 826 Bytes

Versions: 3

Compression:

Stored size: 826 Bytes

Contents

require 'hydra/validations/cardinality'

module Hydra
  module Validations
    #
    # SingleCardinalityValidator - validates that an enumerator value has size 0 or 1
    #
    #    validates :myattr, single_cardinality: true
    #    validates_single_cardinality_of :myattr
    #
    # Blank and nil values are considered valid (even without :allow_blank or :allow_nil
    # validator options).
    #
    class SingleCardinalityValidator < ActiveModel::EachValidator
      
      include Cardinality

      def validate_each(record, attribute, value)
        validate_cardinality(:single, record, attribute, value)
      end

    end

    module HelperMethods
      def validates_single_cardinality_of *attr_names
        validates_with SingleCardinalityValidator, _merge_attributes(attr_names)
      end
    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
hydra-validations-0.3.2 lib/hydra/validations/single_cardinality.rb
hydra-validations-0.3.1 lib/hydra/validations/single_cardinality.rb
hydra-validations-0.3.0 lib/hydra/validations/single_cardinality.rb