rast 0.8.0.pre → 0.8.1.pre

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: c19a33dffcdb0b41b2e820aa28d087b54a37a1973a4a8bac78f0c4ab69f92316
4
- data.tar.gz: f04d91004beec821be368a559e8944df6316502f71223d1314441304ce046cf4
3
+ metadata.gz: af19f20d8f6fb2930aa29d8c377861249104dd713f28cacf497fdd224003104c
4
+ data.tar.gz: b4e6f494d21b3e9695af2d933261f08370d4b1eb9e71412ce52d0a0e1fc0f987
5
5
  SHA512:
6
- metadata.gz: d9ccd1ca66e2a9f4c3c8814bac0839bb808ea608b6b55de543ed46ea436f5f4f4ba9835026c26e3ce7586222233680c4c2d0ff0d29f96bdba0fa17c5bd5b7f92
7
- data.tar.gz: e04a6581b873ed8b820bae2bf149ffab342196277af08c2328d6c89195ba8713c3ee5a91b84d084e70ed39e67edcdbb9a2c6331440eca1cc21237f7295bd545a
6
+ metadata.gz: 1926328be3da258ff3a6e1c15af9c9bbaec293b4a0de1ae229682294f97dc0123f4b86a4fcc0663c176c93185b48077b92215f257e1f03638faff7fdfd2f224c
7
+ data.tar.gz: 8c5f0153ccb0814bd55302de863eda2aca14c465f90e7a204d6383109dcf0610e5926ddf54ddb56761be99c72b98f96d3281d897a511227ab7b6ea99dee7a835
data/CHANGELOG.md CHANGED
@@ -1,5 +1,6 @@
1
1
  # Change log
2
2
 
3
+ - 0.8.1.pre - Allow spaces in rules.
3
4
  - 0.8.0.pre - Auto-detect variable type.
4
5
  - 0.7.0.pre - Display exclusion rule in the report
5
6
  - 0.6.2.pre - Bugfix for 1D array of numbers scenario.
@@ -45,7 +45,7 @@ class ParameterGenerator
45
45
  def valid_case?(scenario, spec)
46
46
  return true if spec.exclude_clause.nil?
47
47
 
48
- exclude_clause = spec.exclude_clause
48
+ exclude_clause = Rule.sanitize(clause: spec.exclude_clause)
49
49
  rule_evaluator = RuleEvaluator.new(converters: spec.converters)
50
50
  rule_evaluator.parse(expression: exclude_clause)
51
51
 
@@ -28,15 +28,19 @@ class Rule
28
28
  end
29
29
 
30
30
  duplicates << outcome
31
- clause = remove_spaces(token: clause, separator: '\(')
32
- clause = remove_spaces(token: clause, separator: '\)')
33
- clause = remove_spaces(token: clause, separator: '&')
34
- clause = remove_spaces(token: clause, separator: '\|')
35
- clause = remove_spaces(token: clause, separator: '!')
36
- @outcome_clause_hash[outcome.to_s] = clause.strip
31
+
32
+ @outcome_clause_hash[outcome.to_s] = Rule.sanitize(clause: clause)
37
33
  end
38
34
  end
39
35
 
36
+ def self.sanitize(clause: '')
37
+ cleaner = Rule.remove_spaces(token: clause, separator: '(')
38
+ cleaner = Rule.remove_spaces(token: cleaner, separator: ')')
39
+ cleaner = Rule.remove_spaces(token: cleaner, separator: '&')
40
+ cleaner = Rule.remove_spaces(token: cleaner, separator: '|')
41
+ Rule.remove_spaces(token: cleaner, separator: '!').strip
42
+ end
43
+
40
44
  def size
41
45
  @outcome_clause_hash.size
42
46
  end
@@ -47,8 +51,12 @@ class Rule
47
51
  # * @param string rule clause.
48
52
  # * @param separator rule clause token.
49
53
  # */
50
- def remove_spaces(token: nil, separator: '')
51
- token.to_s.gsub(Regexp.new("\\s*#{separator} \\s*"), separator)
54
+ def self.remove_spaces(token: nil, separator: '')
55
+ if ['(',')', '|'].include? separator
56
+ token.to_s.gsub(Regexp.new("\\s*\\#{separator}\\s*"), separator)
57
+ else
58
+ token.to_s.gsub(Regexp.new("\\s*#{separator}\\s*"), separator)
59
+ end
52
60
  end
53
61
 
54
62
  # /**
data/rast.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = 'rast'
5
- spec.version = '0.8.0.pre'
5
+ spec.version = '0.8.1.pre'
6
6
  spec.authors = ['Royce Remulla']
7
7
  spec.email = ['royce.com@gmail.com']
8
8
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rast
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0.pre
4
+ version: 0.8.1.pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - Royce Remulla
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-04-28 00:00:00.000000000 Z
11
+ date: 2020-04-29 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Extends RSpec functionality by using the catch-all-scenario testing (CAST)
14
14
  principle.