Module: ComposableValidations::Comparison

Included in:
ComposableValidations
Defined in:
lib/composable_validations/comparison.rb

Instance Method Summary collapse

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