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
- #string(&block) ⇒ Object
Instance Method Details
#allow_empty(validator, &block) ⇒ Object
120 121 122 123 124 |
# File 'lib/getto/params.rb', line 120 def allow_empty(validator,&block) Validator.new(->(value){ value.empty? or validator.call(value) }, &block) end |
#array(validator, &block) ⇒ Object
100 101 102 103 104 |
# File 'lib/getto/params.rb', line 100 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
106 107 108 109 110 |
# File 'lib/getto/params.rb', line 106 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
113 114 115 116 117 |
# File 'lib/getto/params.rb', line 113 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
80 81 82 83 84 85 86 |
# File 'lib/getto/params.rb', line 80 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
88 89 90 91 92 93 94 95 96 97 |
# File 'lib/getto/params.rb', line 88 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
53 54 55 |
# File 'lib/getto/params.rb', line 53 def length(length,&block) Validator.new(->(value){ value && value.length == length }, &block) end |
#match(pattern, &block) ⇒ Object
57 58 59 |
# File 'lib/getto/params.rb', line 57 def match(pattern,&block) Validator.new(->(value){ value && value.match?(pattern) }, &block) end |
#match_bool(&block) ⇒ Object
65 66 67 |
# File 'lib/getto/params.rb', line 65 def match_bool(&block) Validator.new(->(value){ value && ["true","false"].include?(value.to_s.downcase) }, &block) end |
#match_date(&block) ⇒ Object
69 70 71 72 73 74 75 76 77 |
# File 'lib/getto/params.rb', line 69 def match_date(&block) Validator.new(->(value){ begin value && Date.parse(value) rescue ArgumentError false end }, &block) end |
#match_integer(&block) ⇒ Object
61 62 63 |
# File 'lib/getto/params.rb', line 61 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 |
#string(&block) ⇒ Object
32 33 34 |
# File 'lib/getto/params.rb', line 32 def string(&block) Validator.new(->(value){ value.is_a? String }, &block) end |