Class: Getto::Params::Validator::Factory
- Inherits:
-
Object
- Object
- Getto::Params::Validator::Factory
- Defined in:
- lib/getto/params.rb
Instance Method Summary collapse
- #allow_empty(validator, &block) ⇒ Object
- #array(validator, &block) ⇒ Object
- #array_include(values, &block) ⇒ Object
- #bool(&block) ⇒ Object
- #combine(validators, &block) ⇒ Object
- #equal(val, &block) ⇒ Object
- #hash(spec, &block) ⇒ Object
- #hash_strict(spec, &block) ⇒ Object
- #in(values, &block) ⇒ Object
- #integer(&block) ⇒ Object
- #length(length, &block) ⇒ Object
- #match(pattern, &block) ⇒ Object
- #match_bool(&block) ⇒ Object
- #match_date(&block) ⇒ Object
- #match_integer(&block) ⇒ Object
- #not_empty(&block) ⇒ Object
- #not_nil(&block) ⇒ Object
- #string(&block) ⇒ Object
Instance Method Details
#allow_empty(validator, &block) ⇒ Object
124 125 126 127 128 |
# File 'lib/getto/params.rb', line 124 def allow_empty(validator,&block) Validator.new(->(value){ value.empty? or validator.call(value) }, &block) end |
#array(validator, &block) ⇒ Object
104 105 106 107 108 |
# File 'lib/getto/params.rb', line 104 def array(validator,&block) Validator.new(->(value){ value && value.is_a?(Array) && value.all?{|val| validator.call(val)} }, &block) end |
#array_include(values, &block) ⇒ Object
110 111 112 113 114 |
# File 'lib/getto/params.rb', line 110 def array_include(values,&block) Validator.new(->(value){ value && value.is_a?(Array) && value.all?{|val| values.include?(val)} }, &block) end |
#bool(&block) ⇒ Object
36 37 38 |
# File 'lib/getto/params.rb', line 36 def bool(&block) Validator.new(->(value){ value == true || value == false }, &block) end |
#combine(validators, &block) ⇒ Object
117 118 119 120 121 |
# File 'lib/getto/params.rb', line 117 def combine(validators,&block) Validator.new(->(value){ validators.all?{|validator| validator.call(value)} }, &block) end |
#equal(val, &block) ⇒ Object
41 42 43 |
# File 'lib/getto/params.rb', line 41 def equal(val,&block) Validator.new(->(value){ value == val }, &block) end |
#hash(spec, &block) ⇒ Object
84 85 86 87 88 89 90 |
# File 'lib/getto/params.rb', line 84 def hash(spec,&block) Validator.new(->(value){ value && spec.all?{|key,validator| value.has_key?(key) && validator.call(value[key]) } }, &block) end |
#hash_strict(spec, &block) ⇒ Object
92 93 94 95 96 97 98 99 100 101 |
# File 'lib/getto/params.rb', line 92 def hash_strict(spec,&block) Validator.new(->(value){ validators = spec.dup value && value.all?{|key,val| validators.delete(key).tap{|validator| break validator ? validator.call(val) : false } } && validators.empty? }, &block) end |
#in(values, &block) ⇒ Object
45 46 47 |
# File 'lib/getto/params.rb', line 45 def in(values,&block) Validator.new(->(value){ values.include?(value) }, &block) end |
#integer(&block) ⇒ Object
28 29 30 |
# File 'lib/getto/params.rb', line 28 def integer(&block) Validator.new(->(value){ value.is_a? Integer }, &block) end |
#length(length, &block) ⇒ Object
57 58 59 |
# File 'lib/getto/params.rb', line 57 def length(length,&block) Validator.new(->(value){ value && value.length == length }, &block) end |
#match(pattern, &block) ⇒ Object
61 62 63 |
# File 'lib/getto/params.rb', line 61 def match(pattern,&block) Validator.new(->(value){ value && value.match?(pattern) }, &block) end |
#match_bool(&block) ⇒ Object
69 70 71 |
# File 'lib/getto/params.rb', line 69 def match_bool(&block) Validator.new(->(value){ value && ["true","false"].include?(value.to_s.downcase) }, &block) end |
#match_date(&block) ⇒ Object
73 74 75 76 77 78 79 80 81 |
# File 'lib/getto/params.rb', line 73 def match_date(&block) Validator.new(->(value){ begin value && Date.parse(value) rescue ArgumentError false end }, &block) end |
#match_integer(&block) ⇒ Object
65 66 67 |
# File 'lib/getto/params.rb', line 65 def match_integer(&block) Validator.new(->(value){ value && value.to_i.to_s == value }, &block) end |
#not_empty(&block) ⇒ Object
49 50 51 |
# File 'lib/getto/params.rb', line 49 def not_empty(&block) Validator.new(->(value){ not value.empty? }, &block) end |