cucumber-tag-expressions 5.0.6 → 6.0.0

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: 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