class Monban::Params::Validator::Factory
Public Instance Methods
allow_empty(validator)
click to toggle source
# File lib/monban/params.rb, line 121 def allow_empty(validator) Validator.new(->(key,value){ (value.respond_to?(:empty?) && value.empty?) or validator.call(key,value) }) end
array(validator)
click to toggle source
# File lib/monban/params.rb, line 102 def array(validator) Validator.new(->(key,value){ value && value.is_a?(Array) && value.all?{|val| validator.call(key,val)} }){"must satisfy array spec"} end
array_include(values,&block)
click to toggle source
# File lib/monban/params.rb, line 108 def array_include(values,&block) Validator.new(->(key,value){ value && value.is_a?(Array) && value.all?{|val| values.include?(val)} }){"'s value must be in #{values}"} end
bool()
click to toggle source
# File lib/monban/params.rb, line 34 def bool Validator.new(->(key,value){ value == true || value == false }){"must be boolean"} end
combine(validators)
click to toggle source
# File lib/monban/params.rb, line 115 def combine(validators) Validator.new(->(key,value){ validators.all?{|validator| validator.call(key,value)} }) end
equal(val)
click to toggle source
# File lib/monban/params.rb, line 39 def equal(val) Validator.new(->(key,value){ value == val }){"must equal #{val}"} end
hash(spec)
click to toggle source
# File lib/monban/params.rb, line 82 def hash(spec) Validator.new(->(key,value){ value && spec.all?{|key,validator| value.has_key?(key) && validator.call(key, value[key]) } }){"must satisfy hash spec"} end
hash_strict(spec)
click to toggle source
# File lib/monban/params.rb, line 90 def hash_strict(spec) Validator.new(->(key,value){ validators = spec.dup value && value.all?{|key,val| validators.delete(key).tap{|validator| break validator ? validator.call(key,val) : false } } && validators.empty? }){"must satisfy hash spec"} end
in(values)
click to toggle source
# File lib/monban/params.rb, line 43 def in(values) Validator.new(->(key,value){ values.include?(value) }){"must be in [#{values}]"} end
integer()
click to toggle source
# File lib/monban/params.rb, line 26 def integer Validator.new(->(key,value){ value.is_a? Integer }){"must be integer"} end
length(length)
click to toggle source
# File lib/monban/params.rb, line 55 def length(length) Validator.new(->(key,value){ value && value.length == length }){"'s length must equal #{length}"} end
match(pattern)
click to toggle source
# File lib/monban/params.rb, line 59 def match(pattern) Validator.new(->(key,value){ value && value.match?(pattern) }){"must match #{pattern}"} end
match_bool()
click to toggle source
# File lib/monban/params.rb, line 67 def match_bool Validator.new(->(key,value){ value && ["true","false"].include?(value.to_s.downcase) }){"must match boolean pattern"} end
match_date()
click to toggle source
# File lib/monban/params.rb, line 71 def match_date Validator.new(->(key,value){ begin value && Date.parse(value) rescue ArgumentError false end }){"must match date pattern"} end
match_integer()
click to toggle source
# File lib/monban/params.rb, line 63 def match_integer Validator.new(->(key,value){ value && value.to_i.to_s == value }){"must match integer pattern"} end
not_empty()
click to toggle source
# File lib/monban/params.rb, line 47 def not_empty Validator.new(->(key,value){ !value.respond_to?(:empty?) || !value.empty? }){"must not be empty"} end
not_nil()
click to toggle source
# File lib/monban/params.rb, line 51 def not_nil Validator.new(->(key,value){ not value.nil? }){"must not be nil"} end
string()
click to toggle source
# File lib/monban/params.rb, line 30 def string Validator.new(->(key,value){ value.is_a? String }){"must be string"} end