cucumber-tag-expressions 5.0.6 → 6.0.0

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: 2921f3e5eb8490c6711546d8b6d1e236074ce2036c6c464a5f082bd1dc3bab09
4
- data.tar.gz: 67b3f6cc7ba3563ab32f8e204dd1f87effde63f1be34a41270052645f774b7a2
3
+ metadata.gz: b23aa7415febd02e3545c001145ef554af7de2594b176b16ab95bfffca5abe8c
4
+ data.tar.gz: 8b9041d1da6912c98c7d59cbaf28fed24d60e6b6e85777a82b6edebeab616cfd
5
5
  SHA512:
6
- metadata.gz: 2e4770f3da555bf14a5ebde668ca7b6b77d90f822e345fa4b9ed8ed4dae69ac05733765685496f91bee62a1eb71961cdd85eb35c0776f19c64dc671763df0f68
7
- data.tar.gz: 9fa1bf6e37809314361dee320b4fe96fa81b0eee2755fa84901e39f5b59989a39979c6ff8ebce2f257a79f7d9a5d7688f058f09bec43c74e1be7dee3d0cbfaa6
6
+ metadata.gz: 2e582b9664b6195738dd38973b6bd45f99cad884a51774b02f78bfea17cb992ac441790f1d471589dc1a746307652f0bcd318245487ebe0c080df0fbc4f9963b
7
+ data.tar.gz: 15c98ae66cc3395bb8a252517988c336ed73cb5606ee043dbd4c4db60b3e99cb5afc06b1fe255c283b6e05ff0079a1823c89ec2d2f275e982efeeded5ba4f014
@@ -2,7 +2,6 @@ require 'cucumber/tag_expressions/expressions.rb'
2
2
 
3
3
  module Cucumber
4
4
  module TagExpressions
5
- # Ruby tag expression parser
6
5
  class Parser
7
6
  def initialize
8
7
  @expressions = []
@@ -33,6 +32,7 @@ module Cucumber
33
32
 
34
33
  while @operators.any?
35
34
  raise %Q{Tag expression "#{infix_expression}" could not be parsed because of syntax error: Unmatched (.} if @operators.last == '('
35
+
36
36
  push_expression(pop(@operators))
37
37
  end
38
38
  expression = pop(@expressions)
@@ -41,9 +41,6 @@ module Cucumber
41
41
 
42
42
  private
43
43
 
44
- ############################################################################
45
- # Helpers
46
- #
47
44
  def assoc_of(token, value)
48
45
  @operator_types[token][:assoc] == value
49
46
  end
@@ -109,9 +106,6 @@ module Cucumber
109
106
  end
110
107
  end
111
108
 
112
- ############################################################################
113
- # Handlers
114
- #
115
109
  def handle_unary_operator(infix_expression, token, expected_token_type)
116
110
  check(infix_expression, expected_token_type, :operand)
117
111
  @operators.push(token)
@@ -140,6 +134,7 @@ module Cucumber
140
134
  push_expression(pop(@operators))
141
135
  end
142
136
  raise %Q{Tag expression "#{infix_expression}" could not be parsed because of syntax error: Unmatched ).} if @operators.empty?
137
+
143
138
  pop(@operators) if @operators.last == '('
144
139
  :operator
145
140
  end
@@ -159,6 +154,7 @@ module Cucumber
159
154
  def pop(array, n = 1)
160
155
  result = array.pop(n)
161
156
  raise('Empty stack') if result.size != n
157
+
162
158
  n == 1 ? result.first : result
163
159
  end
164
160
  end
data/spec/errors_spec.rb CHANGED
@@ -5,8 +5,9 @@ tests = YAML.load_file('../testdata/errors.yml')
5
5
 
6
6
  describe 'Errors' do
7
7
  tests.each do |test|
8
+ let(:parser) { Cucumber::TagExpressions::Parser.new }
9
+
8
10
  it %Q{fails to parse "#{test['expression']}" with "#{test['error']}"} do
9
- parser = Cucumber::TagExpressions::Parser.new
10
11
  expect { parser.parse(test['expression']) }.to raise_error(test['error'])
11
12
  end
12
13
  end
@@ -6,9 +6,10 @@ evaluations = YAML.load_file('../testdata/evaluations.yml')
6
6
  describe 'Evaluations' do
7
7
  evaluations.each do |evaluation|
8
8
  context evaluation['expression'] do
9
+ let(:parser) { Cucumber::TagExpressions::Parser.new }
10
+
9
11
  evaluation['tests'].each do |test|
10
12
  it "evaluates [#{test['variables'].join(', ')}] to #{test['result']}" do
11
- parser = Cucumber::TagExpressions::Parser.new
12
13
  expect(parser.parse(evaluation['expression']).evaluate(test['variables'])).to eq(test['result'])
13
14
  end
14
15
  end
data/spec/parsing_spec.rb CHANGED
@@ -4,11 +4,11 @@ require 'yaml'
4
4
  tests = YAML.load_file('../testdata/parsing.yml')
5
5
 
6
6
  describe 'Parsing' do
7
+ let(:parser) { Cucumber::TagExpressions::Parser.new }
8
+
7
9
  tests.each do |test|
8
10
  it %Q{parses "#{test['expression']}" into "#{test['formatted']}"} do
9
- parser = Cucumber::TagExpressions::Parser.new
10
- expression = parser.parse(test['expression'])
11
- expect(expression.to_s).to eq(test['formatted'])
11
+ expect(parser.parse(test['expression']).to_s).to eq(test['formatted'])
12
12
  end
13
13
  end
14
14
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cucumber-tag-expressions
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.6
4
+ version: 6.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrea Nodari
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2023-08-13 00:00:00.000000000 Z
12
+ date: 2023-10-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -37,20 +37,28 @@ dependencies:
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '3.10'
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- version: 3.10.0
40
+ version: '3.11'
44
41
  type: :development
45
42
  prerelease: false
46
43
  version_requirements: !ruby/object:Gem::Requirement
47
44
  requirements:
48
45
  - - "~>"
49
46
  - !ruby/object:Gem::Version
50
- version: '3.10'
51
- - - ">="
47
+ version: '3.11'
48
+ - !ruby/object:Gem::Dependency
49
+ name: rubocop
50
+ requirement: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 0.79.0
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
52
60
  - !ruby/object:Gem::Version
53
- version: 3.10.0
61
+ version: 0.79.0
54
62
  description: Cucumber tag expressions for ruby
55
63
  email: cukes@googlegroups.com
56
64
  executables: []
@@ -82,17 +90,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
82
90
  requirements:
83
91
  - - ">="
84
92
  - !ruby/object:Gem::Version
85
- version: 1.9.3
93
+ version: '2.3'
86
94
  required_rubygems_version: !ruby/object:Gem::Requirement
87
95
  requirements:
88
96
  - - ">="
89
97
  - !ruby/object:Gem::Version
90
- version: '0'
98
+ version: 3.0.8
91
99
  requirements: []
92
- rubygems_version: 3.2.22
100
+ rubygems_version: 3.4.10
93
101
  signing_key:
94
102
  specification_version: 4
95
- summary: cucumber-tag-expressions-5.0.6
103
+ summary: cucumber-tag-expressions-6.0.0
96
104
  test_files:
97
105
  - spec/errors_spec.rb
98
106
  - spec/evaluations_spec.rb