Sha256: ef6814726d2cd41baf2d8a75abe0ffb5191f54bd29096c1c69903c4ab91139d3

Contents?: true

Size: 811 Bytes

Versions: 40

Compression:

Stored size: 811 Bytes

Contents

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

      if args.is_a?(Fixnum)
        min     = args
        max     = nil
        message = nil
      elsif args.is_a?(Hash)
        min = args[:length] || args[:minimum]
        max = args[:maximum]
        fail 'length or minimum must be specified' unless min.is_a?(Fixnum)

        message = args[:message]
      else
        fail 'The arguments to length must be a number or a hash'
      end

      if !value || value.size < min
        errors[field_name] = [message || "must be at least #{args} characters"]
      elsif max && value.size > max
        errors[field_name] = [message || "must be less than #{args} characters"]
      end

      errors
    end
  end
end

Version data entries

40 entries across 40 versions & 1 rubygems

Version Path
volt-0.9.5.pre7 lib/volt/models/validators/length_validator.rb
volt-0.9.5.pre6 lib/volt/models/validators/length_validator.rb
volt-0.9.5.pre5 lib/volt/models/validators/length_validator.rb
volt-0.9.5.pre4 lib/volt/models/validators/length_validator.rb
volt-0.9.5.pre3 lib/volt/models/validators/length_validator.rb
volt-0.9.5.pre2 lib/volt/models/validators/length_validator.rb
volt-0.9.5.pre1 lib/volt/models/validators/length_validator.rb
volt-0.9.4 lib/volt/models/validators/length_validator.rb
volt-0.9.4.pre5 lib/volt/models/validators/length_validator.rb
volt-0.9.4.pre3 lib/volt/models/validators/length_validator.rb
volt-0.9.4.pre2 lib/volt/models/validators/length_validator.rb
volt-0.9.4.pre1 lib/volt/models/validators/length_validator.rb
volt-0.9.3 lib/volt/models/validators/length_validator.rb
volt-0.9.3.pre6 lib/volt/models/validators/length_validator.rb
volt-0.9.3.pre5 lib/volt/models/validators/length_validator.rb
volt-0.9.3.pre4 lib/volt/models/validators/length_validator.rb
volt-0.9.3.pre3 lib/volt/models/validators/length_validator.rb
volt-0.9.3.pre2 lib/volt/models/validators/length_validator.rb
volt-0.9.3.pre1 lib/volt/models/validators/length_validator.rb
volt-0.9.2 lib/volt/models/validators/length_validator.rb