Sha256: 706773687433e5cfba47f15651f03a97dc1f257034450bfb9159e5f1284fdbae

Contents?: true

Size: 643 Bytes

Versions: 3

Compression:

Stored size: 643 Bytes

Contents

module Hydra
  module Validations
    #
    # Cardinality - a mixin adding cardinality validation methods.
    #
    module Cardinality

      def validate_cardinality(cardinality, record, attribute, value)
        return validate_single_cardinality(record, attribute, value) if cardinality == :single
        raise ArgumentError, "Cardinality validation not supported: #{cardinality.inspect}"
      end

      def validate_single_cardinality(record, attribute, value)
        # TODO i18n message
        record.errors.add(attribute, "can't have more than one value") if value.respond_to?(:each) && value.size > 1
      end

    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

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