rast 0.8.0.pre → 0.8.1.pre

Sign up to get free protection for your applications and to get access to all the features.
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.