ae_easy-qa 0.0.30 → 0.0.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ed84890a1e1c73d0b31bd188f1fb159083141e74cffcb8b97e8e9e2636bb3cb0
4
- data.tar.gz: 3abeb7da3deee197330ff9520267570585ce425b44987f2425cf20df623c5d9f
3
+ metadata.gz: 416c61a1278ed49302c21159cafdc417a98076530cd9645676d251f863f9e20d
4
+ data.tar.gz: f2c31c16cb3acbdbaf213c7b8b0990016b2a094b66284191ba6e205d9dc7d591
5
5
  SHA512:
6
- metadata.gz: e07fbcce3494f1f07b1848ddb86a036c20d27df581cd665da00dc3dcf56b42e569d7b19fe1da11cde300d5eddf2dd2c345dc50dbd7b346d119da4929c10c9920
7
- data.tar.gz: 53fdcb4d8883a0ff1f13b5e207adcb53c09a26a4ae9a75e5003e5006fadca3d18dfd05affdbbee25a7111837941c9c082208031565fe2ed4ee14cf45c62ed7d8
6
+ metadata.gz: f7cce174631df9b2f1b652b62512d18bf9de2b16cf2c2dfaced10f25f1743578b47cc5c48b2335274cff19e03d88b264444f1bff8b2acee13c8c258ed8bfac89
7
+ data.tar.gz: f36b9f6dad009c01f20d6865c380b4b01e790d0c7e2fdd946fcb2f9fc8b6e04be084b74c502007a9dcbd021636aac03088af239d49fcc41b807728acf819829e
@@ -8,19 +8,34 @@ module AeEasy
8
8
  end
9
9
 
10
10
  def pass_if?(if_params, data_hash)
11
- field_name = if_params.keys.first
12
- condition_hash = if_params[field_name]
11
+ case if_params.keys.first
12
+ when 'and', 'or'
13
+ operator = if_params.keys.first
14
+ evaluations = if_params[operator].collect{|child_if_params|
15
+ field_name = child_if_params.keys.first
16
+ condition_hash = child_if_params[field_name]
17
+ evaluate_condition(field_name, condition_hash, data_hash)
18
+ }
19
+ operator == 'and' ? evaluations.all? : evaluations.any?
20
+ else
21
+ field_name = if_params.keys.first
22
+ condition_hash = if_params[field_name]
23
+ evaluate_condition(field_name, condition_hash, data_hash)
24
+ end
25
+ end
26
+
27
+ def evaluate_condition(field_name, condition_hash, data_hash)
13
28
  case condition_hash.keys.first
14
29
  when 'value'
15
30
  value_hash = condition_hash['value'] #Ex: {"equal"=>"A"}
16
31
  if value_hash['equal']
17
32
  data_hash[field_name] == value_hash['equal']
18
33
  elsif value_hash['regex']
19
- data_hash[field_name].to_s =~ Regexp.new(value_hash['regex'], true)
34
+ !(data_hash[field_name].to_s =~ Regexp.new(value_hash['regex'], true)).nil?
20
35
  elsif value_hash['less_than']
21
- data_hash[field_name] < value_hash['less_than']
36
+ data_hash[field_name].to_i < value_hash['less_than'].to_i
22
37
  elsif value_hash['greater_than']
23
- data_hash[field_name] > value_hash['greater_than']
38
+ data_hash[field_name].to_i > value_hash['greater_than'].to_i
24
39
  else
25
40
  raise StandardError.new("The if condition '#{value_hash}' is unknown.")
26
41
  end
@@ -36,9 +36,9 @@ module AeEasy
36
36
  elsif params['regex']
37
37
  add_errored_item(data_hash, field_to_validate, 'value') if (data_hash[field_to_validate].to_s !~ Regexp.new(params['regex'], true))
38
38
  elsif params['less_than']
39
- add_errored_item(data_hash, field_to_validate, 'value') if !(data_hash[field_to_validate] < params['less_than'])
39
+ add_errored_item(data_hash, field_to_validate, 'value') if !(data_hash[field_to_validate].to_i < params['less_than'].to_i)
40
40
  elsif params['greater_than']
41
- add_errored_item(data_hash, field_to_validate, 'value') if !(data_hash[field_to_validate] > params['greater_than'])
41
+ add_errored_item(data_hash, field_to_validate, 'value') if !(data_hash[field_to_validate].to_i > params['greater_than'].to_i)
42
42
  else
43
43
  unknown_value_error
44
44
  end
@@ -1,5 +1,5 @@
1
1
  module AeEasy
2
2
  module Qa
3
- VERSION = "0.0.30"
3
+ VERSION = "0.0.31"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ae_easy-qa
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.30
4
+ version: 0.0.31
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Lynam
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-09-20 00:00:00.000000000 Z
11
+ date: 2019-09-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: answersengine