Module: ComposableValidations::Comparison
- Included in:
- ComposableValidations
- Defined in:
- lib/composable_validations/comparison.rb
Instance Method Summary collapse
- #comparison(val, msg, &compfun) ⇒ Object
- #equal(val, msg = [:equal, val]) ⇒ Object
- #greater(val, msg = [:greater, val]) ⇒ Object
- #greater_or_equal(val, msg = [:greater_or_equal, val]) ⇒ Object
- #in_range(range, msg = [:in_range, range]) ⇒ Object
- #key_equal_to_key(key1, key2, msg = [:key_equal_to_key, key1, key2]) ⇒ Object
- #key_greater_or_equal_to_key(key1, key2, msg = [:key_greater_or_equal_to_key, key1, key2]) ⇒ Object
- #key_greater_than_key(key1, key2, msg = [:key_greater_than_key, key1, key2]) ⇒ Object
- #key_less_or_equal_to_key(key1, key2, msg = [:key_less_or_equal_to_key, key1, key2]) ⇒ Object
- #key_less_than_key(key1, key2, msg = [:key_less_than_key, key1, key2]) ⇒ Object
- #key_to_key_comparison(key1, key2, msg, &compfun) ⇒ Object
- #less(val, msg = [:less, val]) ⇒ Object
- #less_or_equal(val, msg = [:less_or_equal, val]) ⇒ Object
Instance Method Details
#comparison(val, msg, &compfun) ⇒ Object
14 15 16 17 18 |
# File 'lib/composable_validations/comparison.rb', line 14 def comparison(val, msg, &compfun) validate(msg) do |v| compfun.call(v, val) end end |
#equal(val, msg = [:equal, val]) ⇒ Object
56 57 58 |
# File 'lib/composable_validations/comparison.rb', line 56 def equal(val, msg = [:equal, val]) comparison(val, msg, &:==) end |
#greater(val, msg = [:greater, val]) ⇒ Object
44 45 46 |
# File 'lib/composable_validations/comparison.rb', line 44 def greater(val, msg = [:greater, val]) comparison(val, msg, &:>) end |
#greater_or_equal(val, msg = [:greater_or_equal, val]) ⇒ Object
40 41 42 |
# File 'lib/composable_validations/comparison.rb', line 40 def greater_or_equal(val, msg = [:greater_or_equal, val]) comparison(val, msg, &:>=) end |
#in_range(range, msg = [:in_range, range]) ⇒ Object
60 61 62 63 64 |
# File 'lib/composable_validations/comparison.rb', line 60 def in_range(range, msg = [:in_range, range]) validate(msg) do |val| range.include?(val) end end |
#key_equal_to_key(key1, key2, msg = [:key_equal_to_key, key1, key2]) ⇒ Object
36 37 38 |
# File 'lib/composable_validations/comparison.rb', line 36 def key_equal_to_key(key1, key2, msg = [:key_equal_to_key, key1, key2]) key_to_key_comparison(key1, key2, msg, &:==) end |
#key_greater_or_equal_to_key(key1, key2, msg = [:key_greater_or_equal_to_key, key1, key2]) ⇒ Object
20 21 22 |
# File 'lib/composable_validations/comparison.rb', line 20 def key_greater_or_equal_to_key(key1, key2, msg = [:key_greater_or_equal_to_key, key1, key2]) key_to_key_comparison(key1, key2, msg, &:>=) end |
#key_greater_than_key(key1, key2, msg = [:key_greater_than_key, key1, key2]) ⇒ Object
24 25 26 |
# File 'lib/composable_validations/comparison.rb', line 24 def key_greater_than_key(key1, key2, msg = [:key_greater_than_key, key1, key2]) key_to_key_comparison(key1, key2, msg, &:>) end |
#key_less_or_equal_to_key(key1, key2, msg = [:key_less_or_equal_to_key, key1, key2]) ⇒ Object
28 29 30 |
# File 'lib/composable_validations/comparison.rb', line 28 def key_less_or_equal_to_key(key1, key2, msg = [:key_less_or_equal_to_key, key1, key2]) key_to_key_comparison(key1, key2, msg, &:<=) end |
#key_less_than_key(key1, key2, msg = [:key_less_than_key, key1, key2]) ⇒ Object
32 33 34 |
# File 'lib/composable_validations/comparison.rb', line 32 def key_less_than_key(key1, key2, msg = [:key_less_than_key, key1, key2]) key_to_key_comparison(key1, key2, msg, &:<) end |
#key_to_key_comparison(key1, key2, msg, &compfun) ⇒ Object
2 3 4 5 6 7 8 9 10 11 12 |
# File 'lib/composable_validations/comparison.rb', line 2 def key_to_key_comparison(key1, key2, msg, &compfun) precheck( validate(msg, key1) do |h| v1 = h[key1] v2 = h[key2] compfun.call(v1, v2) end ) do |h| h[key1].nil? || h[key2].nil? end end |
#less(val, msg = [:less, val]) ⇒ Object
52 53 54 |
# File 'lib/composable_validations/comparison.rb', line 52 def less(val, msg = [:less, val]) comparison(val, msg, &:<) end |
#less_or_equal(val, msg = [:less_or_equal, val]) ⇒ Object
48 49 50 |
# File 'lib/composable_validations/comparison.rb', line 48 def less_or_equal(val, msg = [:less_or_equal, val]) comparison(val, msg, &:<=) end |