Sha256: a999b360e3f3af645718a469d15c0b3153f9af820511533721b3ae3791f0f671

Contents?: true

Size: 683 Bytes

Versions: 1

Compression:

Stored size: 683 Bytes

Contents

#
# SingleCardinalityValidator - validates that an enumerator value has size 0 or 1
#
#    validates :my_attr, single_cardinality: true
#    validates_single_cardinality_of :my_attr
#
module Hydra
  module Validations

    class SingleCardinalityValidator < ActiveModel::EachValidator
      def validate_each(record, attribute, value)
        if value.respond_to?(:each)
          record.errors.add(attribute, "can't have more than one value") if value.size > 1
        end
      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

1 entries across 1 versions & 1 rubygems

Version Path
hydra-validations-0.1.0 lib/hydra/validations/single_cardinality_validator.rb