Sha256: 96e5be5300345154c416d153be8139162a7aeb92bb94c571d96856630671aa7d

Contents?: true

Size: 635 Bytes

Versions: 12

Compression:

Stored size: 635 Bytes

Contents

module Volt
  class InclusionValidator
    def self.validate(model, field_name, args)
      errors = {}
      value  = model.get(field_name)

      if args.is_a?(Array)
        list = args
        message = nil
      elsif args.is_a?(Hash)
        list = args[:in]
        message = args[:message]
        fail 'A list to match against must be specified' unless list.is_a?(Array)
      else
        fail 'The arguments to inclusion validator must be an array or a hash'
      end

      unless list.include?(value)
        errors[field_name] = [message || "must be one of #{list.join(', ')}"]
      end

      errors
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
volt-0.9.7.pre8 lib/volt/models/validators/inclusion_validator.rb
volt-0.9.7.pre7 lib/volt/models/validators/inclusion_validator.rb
volt-0.9.7.pre6 lib/volt/models/validators/inclusion_validator.rb
volt-0.9.7.pre5 lib/volt/models/validators/inclusion_validator.rb
volt-0.9.7.pre3 lib/volt/models/validators/inclusion_validator.rb
volt-0.9.7.pre2 lib/volt/models/validators/inclusion_validator.rb
volt-0.9.6 lib/volt/models/validators/inclusion_validator.rb
volt-0.9.6.pre3 lib/volt/models/validators/inclusion_validator.rb
volt-0.9.6.pre2 lib/volt/models/validators/inclusion_validator.rb
volt-0.9.6.pre1 lib/volt/models/validators/inclusion_validator.rb
volt-0.9.5 lib/volt/models/validators/inclusion_validator.rb
volt-0.9.5.pre12 lib/volt/models/validators/inclusion_validator.rb