Sha256: d8697a6819e81dac963ad5d4ad2899ca0deb6b7f33974bc7cb1d88b648bc854d

Contents?: true

Size: 920 Bytes

Versions: 3

Compression:

Stored size: 920 Bytes

Contents

# -*- encoding: utf-8 -*-

require 'data_mapper/validation/rule/within'

module DataMapper
  module Validation
    class Rule
      module Within

        class Set < Rule

          EQUALIZE_ON = superclass::EQUALIZE_ON.dup << :set

          equalize *EQUALIZE_ON

          include Within

          attr_reader :set

          def initialize(attribute_name, options={})
            super

            @set = options.fetch(:set, [])
          end

          def valid?(resource)
            value = resource.validation_property_value(attribute_name)

            optional?(value) || set.include?(value)
          end

          def violation_type(resource)
            :inclusion
          end

          def violation_data(resource)
            [ [ :set, set.to_a.join(', ') ] ]
          end

        end # class Set

      end # module Within
    end # class Rule
  end # module Validation
end # module DataMapper

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
sbf-dm-validations-1.4.0 lib/data_mapper/validation/rule/within/set.rb
sbf-dm-validations-1.3.0 lib/data_mapper/validation/rule/within/set.rb
sbf-dm-validations-1.3.0.beta lib/data_mapper/validation/rule/within/set.rb