cucumber-expressions 7.0.0 → 8.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: 470a799c254a09b0254f1d9a66ce2334a6b35c8f09413be0e4adfc620c76927d
4
- data.tar.gz: f24056b5fa03807f22ed25df157239678c885130d97d5cbeb9ebb2702634be15
3
+ metadata.gz: edd65ea4b92b8499008e6e821a06707177e1f2c1284f34f53c278f484d16b1c3
4
+ data.tar.gz: c24fc7d2c8ad31f90c46c65fcdeddf3f8ac9b1bf9be2933c5d5965fc513fb251
5
5
  SHA512:
6
- metadata.gz: 01c634e4f69cd587268fbe531cb9224b25b0162bca3c01049dd0fb360143b32b2bbeac49eccac8724fd1c7680b7f988b84fac6122a8828c78e8e172f4cabdd5f
7
- data.tar.gz: a9b59972af603fb413bd4c64c6375b8b3d6aeba19a03a4e9437ec635235a07ea34f0c4e2be75b0b11ebee75ae3931bbdc72c877f40232f694d18c1572445a672
6
+ metadata.gz: ee2c5bd392bc5e4ae1246944c23098390259bb36563cec9d0fd3485030c2947d366f4e15508718dd83c940da91ce0fc0789f2f91328f3996d5b5e50218376e60
7
+ data.tar.gz: 1ea553353102791bef111b07a399f21ef42c7e97c98dc20e1b01c9ef16894fbea70ac0cd755a08df9416b0f03a8b99a49a34216260a17a7b3eb6b362ed66ffea
data/README.md CHANGED
@@ -2,4 +2,4 @@
2
2
 
3
3
  [![Build Status](https://travis-ci.org/cucumber/cucumber-expressions-ruby.svg?branch=master)](https://travis-ci.org/cucumber/cucumber-expressions-ruby)
4
4
 
5
- [The docs are here](https://docs.cucumber.io/cucumber/cucumber-expressions/).
5
+ [The docs are here](https://cucumber.io/docs/cucumber/cucumber-expressions/).
@@ -1,7 +1,7 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  Gem::Specification.new do |s|
3
3
  s.name = 'cucumber-expressions'
4
- s.version = '7.0.0'
4
+ s.version = '8.0.0'
5
5
  s.authors = ["Aslak Hellesøy"]
6
6
  s.description = 'Cucumber Expressions - a simpler alternative to Regular Expressions'
7
7
  s.summary = "cucumber-expressions-#{s.version}"
@@ -9,12 +9,12 @@ Gem::Specification.new do |s|
9
9
  s.homepage = "https://github.com/cucumber/cucumber-expressions-ruby#readme"
10
10
  s.platform = Gem::Platform::RUBY
11
11
  s.license = "MIT"
12
- s.required_ruby_version = ">= 1.9.3"
12
+ s.required_ruby_version = ">= 2.3"
13
13
 
14
14
  s.metadata = {
15
15
  'bug_tracker_uri' => 'https://github.com/cucumber/cucumber/issues',
16
16
  'changelog_uri' => 'https://github.com/cucumber/cucumber/blob/master/cucumber-expressions/CHANGELOG.md',
17
- 'documentation_uri' => 'https://docs.cucumber.io/cucumber/cucumber-expressions/',
17
+ 'documentation_uri' => 'https://cucumber.io/docs/cucumber/cucumber-expressions/',
18
18
  'mailing_list_uri' => 'https://groups.google.com/forum/#!forum/cukes',
19
19
  'source_code_uri' => 'https://github.com/cucumber/cucumber/blob/master/cucumber-expressions/ruby',
20
20
  }
data/default.mk CHANGED
@@ -1,23 +1,14 @@
1
1
  SHELL := /usr/bin/env bash
2
2
  RUBY_SOURCE_FILES = $(shell find . -name "*.rb")
3
- GEMSPECS = $(shell find . -name "*.gemspec")
4
-
5
- ifdef TRAVIS_BRANCH
6
- LIBRARY_VERSION=$(TRAVIS_BRANCH)
7
- endif
8
- ifdef TRAVIS_TAG
9
- LIBRARY_VERSION=$(TRAVIS_TAG)
10
- endif
11
- ifndef LIBRARY_VERSION
12
- LIBRARY_VERSION=$(shell git rev-parse --abbrev-ref HEAD)
13
- endif
3
+ GEMSPEC = $(shell find . -name "*.gemspec")
14
4
 
15
5
  default: .tested
16
6
  .PHONY: default
17
7
 
18
8
  .deps: Gemfile.lock
9
+ touch $@
19
10
 
20
- Gemfile.lock: Gemfile $(GEMSPECS)
11
+ Gemfile.lock: Gemfile $(GEMSPEC)
21
12
  bundle install
22
13
  touch $@
23
14
 
@@ -25,6 +16,24 @@ Gemfile.lock: Gemfile $(GEMSPECS)
25
16
  bundle exec rspec --color
26
17
  touch $@
27
18
 
19
+ update-dependencies:
20
+ ./scripts/update-gemspec
21
+ .PHONY: update-dependencies
22
+
23
+ update-version:
24
+ ifdef NEW_VERSION
25
+ sed -i "s/\(s\.version *= *'\)[0-9]*\.[0-9]*\.[0-9]*\('\)/\1$(NEW_VERSION)\2/" $(GEMSPEC)
26
+ else
27
+ @echo -e "\033[0;NEW_VERSION is not defined. Can't update version :-(\033[0m"
28
+ exit 1
29
+ endif
30
+ .PHONY: update-version
31
+
32
+ publish: .deps
33
+ gem build $(GEMSPEC)
34
+ gem push $$(find . -name "*.gem")
35
+ .PHONY: publish
36
+
28
37
  clean: clean-ruby
29
38
  .PHONY: clean
30
39
 
@@ -89,7 +89,7 @@ module Cucumber
89
89
  regexps = parameter_type.regexps
90
90
  regexps.each do |regexp|
91
91
  regexp = Regexp.new("(#{regexp})")
92
- result.push(ParameterTypeMatcher.new(parameter_type, regexp, text))
92
+ result.push(ParameterTypeMatcher.new(parameter_type, regexp, text, 0))
93
93
  end
94
94
  result
95
95
  end
@@ -53,7 +53,7 @@ module Cucumber
53
53
  def <=>(other)
54
54
  return -1 if prefer_for_regexp_match? && !other.prefer_for_regexp_match?
55
55
  return 1 if other.prefer_for_regexp_match? && !prefer_for_regexp_match?
56
- name <=> other.name
56
+ return name <=> other.name
57
57
  end
58
58
 
59
59
  private
@@ -11,7 +11,7 @@ module Cucumber
11
11
  def advance_to(new_match_position)
12
12
  (new_match_position...@text.length).each {|advancedPos|
13
13
  matcher = self.class.new(parameter_type, @regexp, @text, advancedPos)
14
- if matcher.find
14
+ if matcher.find && matcher.full_word?
15
15
  return matcher
16
16
  end
17
17
  }
@@ -23,6 +23,10 @@ module Cucumber
23
23
  !@match.nil? && !group.empty?
24
24
  end
25
25
 
26
+ def full_word?
27
+ space_before_match_or_sentence_start? && space_after_match_or_sentence_end?
28
+ end
29
+
26
30
  def start
27
31
  @match.begin(0)
28
32
  end
@@ -38,6 +42,18 @@ module Cucumber
38
42
  return length_comparison if length_comparison != 0
39
43
  0
40
44
  end
45
+
46
+ private
47
+
48
+ def space_before_match_or_sentence_start?
49
+ match_begin = @match.begin(0)
50
+ match_begin == 0 || @text[match_begin - 1].match(/\s|\p{P}/)
51
+ end
52
+
53
+ def space_after_match_or_sentence_end?
54
+ match_end = @match.end(0)
55
+ match_end == @text.length || @text[match_end].match(/\s|\p{P}/)
56
+ end
41
57
  end
42
58
  end
43
59
  end
@@ -6,7 +6,7 @@ module Cucumber
6
6
  module CucumberExpressions
7
7
  class ParameterTypeRegistry
8
8
  INTEGER_REGEXPS = [/-?\d+/, /\d+/]
9
- FLOAT_REGEXP = /-?\d*\.\d+/
9
+ FLOAT_REGEXP = /(?=.*\d.*)[-+]?\d*(?:\.(?=\d.*))?\d*(?:\d+[E][-+]?\d+)?/
10
10
  WORD_REGEXP = /[^\s]+/
11
11
  STRING_REGEXP = /"([^"\\]*(\\.[^"\\]*)*)"|'([^'\\]*(\\.[^'\\]*)*)'/
12
12
  ANONYMOUS_REGEXP = /.*/
@@ -8,45 +8,49 @@ module Cucumber
8
8
 
9
9
  def initialize(regexp)
10
10
  @regexp = regexp.is_a?(Regexp) ? regexp : Regexp.new(regexp)
11
- stack = [GroupBuilder.new]
11
+ @stack = [GroupBuilder.new]
12
12
  group_start_stack = []
13
13
  last = nil
14
14
  escaping = false
15
- non_capturing_maybe = false
15
+ @non_capturing_maybe = false
16
+ @name_capturing_maybe = false
16
17
  char_class = false
17
18
 
18
- @regexp.source.split('').each_with_index do |c, n|
19
+ @regexp.source.each_char.with_index do |c, n|
19
20
  if c == '[' && !escaping
20
21
  char_class = true
21
22
  elsif c == ']' && !escaping
22
23
  char_class = false
23
24
  elsif c == '(' && !escaping && !char_class
24
- stack.push(GroupBuilder.new)
25
+ @stack.push(GroupBuilder.new)
25
26
  group_start_stack.push(n+1)
26
- non_capturing_maybe = false
27
+ @non_capturing_maybe = false
27
28
  elsif c == ')' && !escaping && !char_class
28
- gb = stack.pop
29
+ gb = @stack.pop
29
30
  group_start = group_start_stack.pop
30
31
  if gb.capturing?
31
32
  gb.source = @regexp.source[group_start...n]
32
- stack.last.add(gb)
33
+ @stack.last.add(gb)
33
34
  else
34
- gb.move_children_to(stack.last)
35
+ gb.move_children_to(@stack.last)
35
36
  end
36
- non_capturing_maybe = false
37
+ end_group
37
38
  elsif c == '?' && last == '('
38
- non_capturing_maybe = true
39
- elsif c == ':' && non_capturing_maybe
40
- stack.last.set_non_capturing!
41
- non_capturing_maybe = false
42
- elsif c == '<' && non_capturing_maybe
39
+ @non_capturing_maybe = true
40
+ elsif (c == '<') && @non_capturing_maybe
41
+ @name_capturing_maybe = true
42
+ elsif (c == ':' || c == '!' || c == '=') && last == '?' && @non_capturing_maybe
43
+ end_non_capturing_group()
44
+ elsif (c == '=' || c == '!') && last == '<' && @name_capturing_maybe
45
+ end_non_capturing_group()
46
+ elsif @name_capturing_maybe
43
47
  raise CucumberExpressionError.new("Named capture groups are not supported. See https://github.com/cucumber/cucumber/issues/329")
44
48
  end
45
49
 
46
50
  escaping = c == '\\' && !escaping
47
51
  last = c
48
52
  end
49
- @group_builder = stack.pop
53
+ @group_builder = @stack.pop
50
54
  end
51
55
 
52
56
  def match(s)
@@ -56,6 +60,17 @@ module Cucumber
56
60
  @group_builder.build(match, group_indices)
57
61
  end
58
62
 
63
+ private
64
+
65
+ def end_non_capturing_group
66
+ @stack.last.set_non_capturing!
67
+ end_group
68
+ end
69
+
70
+ def end_group
71
+ @non_capturing_maybe = false
72
+ @name_capturing_maybe = false
73
+ end
59
74
  end
60
75
  end
61
76
  end
@@ -0,0 +1,23 @@
1
+ #!/usr/bin/env bash
2
+ #
3
+ # Updates the *.gemspec in the current directory to use the latest releases of gems
4
+ #
5
+ set -uf -o pipefail
6
+ IFS=$'\n'
7
+
8
+ gemspec=$(find . -type f -maxdepth 1 -name "*.gemspec")
9
+ add_dependency_lines=$(cat ${gemspec} | grep "s.add_dependency '[^']*', '")
10
+ if [ $? -ne 0 ]; then
11
+ # No add_dependency_lines found - nothing to do
12
+ exit 0
13
+ fi
14
+
15
+ set -e
16
+
17
+ gems=$(echo "${add_dependency_lines}" | tr -s ' ' | cut -d ' ' -f3 | cut -d"'" -f 2)
18
+ while read -r gem; do
19
+ gem_line=$(gem list "${gem}" --remote --all --no-prerelease | grep "${gem}")
20
+ latest_version=$(echo "${gem_line}" | cut -d'(' -f2 | cut -d',' -f1)
21
+ cat "${gemspec}" | sed "s/s.add_dependency '${gem}', .*/s.add_dependency '${gem}', '~> ${latest_version}'/" > ${gemspec}.tmp
22
+ mv ${gemspec}.tmp ${gemspec}
23
+ done <<< "${gems}"
@@ -109,32 +109,32 @@ module Cucumber
109
109
  ))
110
110
  @parameter_type_registry.define_parameter_type(ParameterType.new(
111
111
  'optional-hotel',
112
- /(1st hotel)?/,
112
+ /(1 hotel)?/,
113
113
  String,
114
114
  lambda {|s| s},
115
115
  true,
116
116
  false
117
117
  ))
118
118
 
119
- expression = @generator.generate_expressions("I reach Stage4: 1st flight-1st hotel")[0]
120
- # While you would expect this to be `I reach Stage{int}: {optional-flight}-{optional-hotel}`
119
+ expression = @generator.generate_expressions("I reach Stage 4: 1st flight -1 hotel")[0]
120
+ # While you would expect this to be `I reach Stage {int}: {optional-flight} -{optional-hotel}`
121
121
  # the `-1` causes {int} to match just before {optional-hotel}.
122
- expect(expression.source).to eq("I reach Stage{int}: {optional-flight}{int}st hotel")
122
+ expect(expression.source).to eq("I reach Stage {int}: {optional-flight} {int} hotel")
123
123
  end
124
124
 
125
125
  it "generates at most 256 expressions" do
126
126
  for i in 0..3
127
127
  @parameter_type_registry.define_parameter_type(ParameterType.new(
128
128
  "my-type-#{i}",
129
- /[a-z]/,
129
+ /([a-z] )*?[a-z]/,
130
130
  String,
131
131
  lambda {|s| s},
132
132
  true,
133
133
  false
134
134
  ))
135
135
  end
136
- # This would otherwise generate 4^11=419430 expressions and consume just shy of 1.5GB.
137
- expressions = @generator.generate_expressions("a simple step")
136
+ # This would otherwise generate 4^11=4194300 expressions and consume just shy of 1.5GB.
137
+ expressions = @generator.generate_expressions("a s i m p l e s t e p")
138
138
  expect(expressions.length).to eq(256)
139
139
  end
140
140
 
@@ -162,6 +162,58 @@ module Cucumber
162
162
  expect(expressions[1].source).to eq("{zero-or-more} {zero-or-more} {zero-or-more}")
163
163
  end
164
164
 
165
+ context "does not suggest parameter when match is" do
166
+ before do
167
+ @parameter_type_registry.define_parameter_type(ParameterType.new(
168
+ 'direction',
169
+ /(up|down)/,
170
+ String,
171
+ lambda {|s| s},
172
+ true,
173
+ false
174
+ ))
175
+ end
176
+
177
+ it "at the beginning of a word" do
178
+ expect(@generator.generate_expression("When I download a picture").source).not_to eq("When I {direction}load a picture")
179
+ expect(@generator.generate_expression("When I download a picture").source).to eq("When I download a picture")
180
+ end
181
+
182
+ it "inside a word" do
183
+ expect(@generator.generate_expression("When I watch the muppet show").source).not_to eq("When I watch the m{direction}pet show")
184
+ expect(@generator.generate_expression("When I watch the muppet show").source).to eq("When I watch the muppet show")
185
+ end
186
+
187
+ it "at the end of a word" do
188
+ expect(@generator.generate_expression("When I create a group").source).not_to eq("When I create a gro{direction}")
189
+ expect(@generator.generate_expression("When I create a group").source).to eq("When I create a group")
190
+ end
191
+ end
192
+
193
+ context "does suggest parameter when match is" do
194
+ before do
195
+ @parameter_type_registry.define_parameter_type(ParameterType.new(
196
+ 'direction',
197
+ /(up|down)/,
198
+ String,
199
+ lambda {|s| s},
200
+ true,
201
+ false
202
+ ))
203
+ end
204
+
205
+ it "a full word" do
206
+ expect(@generator.generate_expression("When I go down the road").source).to eq("When I go {direction} the road")
207
+ expect(@generator.generate_expression("When I walk up the hill").source).to eq("When I walk {direction} the hill")
208
+ expect(@generator.generate_expression("up the hill, the road goes down").source).to eq("{direction} the hill, the road goes {direction}")
209
+ end
210
+
211
+ it 'wrapped around punctuation characters' do
212
+ expect(@generator.generate_expression("When direction is:down").source).to eq("When direction is:{direction}")
213
+ expect(@generator.generate_expression("Then direction is down.").source).to eq("Then direction is {direction}.")
214
+ end
215
+ end
216
+
165
217
  def assert_expression(expected_expression, expected_argument_names, text)
166
218
  generated_expression = @generator.generate_expression(text)
167
219
  expect(generated_expression.parameter_names).to eq(expected_argument_names)
@@ -34,7 +34,7 @@ module Cucumber
34
34
  it "translates parameters" do
35
35
  assert_regexp(
36
36
  "I have {float} cukes at {int} o'clock",
37
- /^I have (-?\d*\.\d+) cukes at ((?:-?\d+)|(?:\d+)) o'clock$/
37
+ /^I have ((?=.*\d.*)[-+]?\d*(?:\.(?=\d.*))?\d*(?:\d+[E][-+]?\d+)?) cukes at ((?:-?\d+)|(?:\d+)) o'clock$/
38
38
  )
39
39
  end
40
40
 
@@ -71,9 +71,43 @@ module Cucumber
71
71
  expect(match("{int}", "1.22")).to be_nil
72
72
  end
73
73
 
74
+ it "matches int as float" do
75
+ expect(match("{float}", "0")).to eq([0.0])
76
+ end
77
+
74
78
  it "matches float" do
75
- expect(match("{float}", "0.22")).to eq([0.22])
76
- expect(match("{float}", ".22")).to eq([0.22])
79
+ expect(match("{float}", "")).to eq(nil)
80
+ expect(match("{float}", ".")).to eq(nil)
81
+ expect(match("{float}", ",")).to eq(nil)
82
+ expect(match("{float}", "-")).to eq(nil)
83
+ expect(match("{float}", "E")).to eq(nil)
84
+ expect(match("{float}", "1,")).to eq(nil)
85
+ expect(match("{float}", ",1")).to eq(nil)
86
+ expect(match("{float}", "1.")).to eq(nil)
87
+
88
+ expect(match("{float}", "1")).to eq([1])
89
+ expect(match("{float}", "-1")).to eq([-1])
90
+ expect(match("{float}", "1.1")).to eq([1.1])
91
+ expect(match("{float}", "1,000")).to eq(nil)
92
+ expect(match("{float}", "1,000,0")).to eq(nil)
93
+ expect(match("{float}", "1,000.1")).to eq(nil)
94
+ expect(match("{float}", "1,000,10")).to eq(nil)
95
+ expect(match("{float}", "1,0.1")).to eq(nil)
96
+ expect(match("{float}", "1,000,000.1")).to eq(nil)
97
+ expect(match("{float}", "-1.1")).to eq([-1.1])
98
+
99
+ expect(match("{float}", ".1")).to eq([0.1])
100
+ expect(match("{float}", "-.1")).to eq([-0.1])
101
+ expect(match("{float}", "-.1000001")).to eq([-0.1000001])
102
+ expect(match("{float}", "1E1")).to eq([10.0])
103
+ expect(match("{float}", ".1E1")).to eq([1])
104
+ expect(match("{float}", "E1")).to eq(nil)
105
+ expect(match("{float}", "-.1E-1")).to eq([-0.01])
106
+ expect(match("{float}", "-.1E-2")).to eq([-0.001])
107
+ expect(match("{float}", "-.1E+1")).to eq([-1])
108
+ expect(match("{float}", "-.1E+2")).to eq([-10])
109
+ expect(match("{float}", "-.1E1")).to eq([-1])
110
+ expect(match("{float}", "-.1E2")).to eq([-10])
77
111
  end
78
112
 
79
113
  it "matches anonymous" do
@@ -32,14 +32,6 @@ module Cucumber
32
32
  expect( match(/(\d+)/, "22") ).to eq([22])
33
33
  end
34
34
 
35
- it "transforms float without integer part" do
36
- expect( match(/(-?\d*\.\d+)/, ".22") ).to eq([0.22])
37
- end
38
-
39
- it "transforms float with sign" do
40
- expect( match(/(-?\d*\.\d+)/, "-1.22") ).to eq([-1.22])
41
- end
42
-
43
35
  it "returns nil when there is no match" do
44
36
  expect( match(/hello/, "world") ).to be_nil
45
37
  end
@@ -17,13 +17,42 @@ module Cucumber
17
17
  expect(group.children[1].value).to eq('c')
18
18
  end
19
19
 
20
- it 'ignores non-capturing groups' do
21
- tr = TreeRegexp.new(/(a(?:b)?)(c)/)
22
- group = tr.match('ac')
23
- expect(group.value).to eq('ac')
24
- expect(group.children[0].value).to eq('a')
25
- expect(group.children[0].children).to eq([])
26
- expect(group.children[1].value).to eq('c')
20
+ it 'ignores `?:` as a non-capturing group' do
21
+ tr = TreeRegexp.new(/a(?:b)(c)/)
22
+ group = tr.match('abc')
23
+ expect(group.value).to eq('abc')
24
+ expect(group.children.length).to eq 1
25
+ end
26
+
27
+ it 'ignores `?!` as a non-capturing group' do
28
+ tr = TreeRegexp.new(/a(?!b)(.+)/)
29
+ group = tr.match('aBc')
30
+ expect(group.value).to eq('aBc')
31
+ expect(group.children.length).to eq 1
32
+ end
33
+
34
+ it 'ignores `?=` as a non-capturing group' do
35
+ tr = TreeRegexp.new(/a(?=b)(.+)$/)
36
+ group = tr.match('abc')
37
+ expect(group.value).to eq('abc')
38
+ expect(group.children[0].value).to eq('bc')
39
+ expect(group.children.length).to eq 1
40
+ end
41
+
42
+ it 'ignores `?<=` as a non-capturing group' do
43
+ tr = TreeRegexp.new(/a(.+)(?<=c)$/)
44
+ group = tr.match('abc')
45
+ expect(group.value).to eq('abc')
46
+ expect(group.children[0].value).to eq('bc')
47
+ expect(group.children.length).to eq 1
48
+ end
49
+
50
+ it 'ignores `?<!` as a non-capturing group' do
51
+ tr = TreeRegexp.new(/a(.+)(?<!b)$/)
52
+ group = tr.match('abc')
53
+ expect(group.value).to eq('abc')
54
+ expect(group.children[0].value).to eq('bc')
55
+ expect(group.children.length).to eq 1
27
56
  end
28
57
 
29
58
  it 'matches optional group' do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cucumber-expressions
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.0.0
4
+ version: 8.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aslak Hellesøy
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-03-22 00:00:00.000000000 Z
11
+ date: 2019-08-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -77,7 +77,6 @@ files:
77
77
  - ".rspec"
78
78
  - ".rsync"
79
79
  - ".subrepo"
80
- - ".travis.yml"
81
80
  - Gemfile
82
81
  - LICENSE
83
82
  - Makefile
@@ -99,6 +98,7 @@ files:
99
98
  - lib/cucumber/cucumber_expressions/parameter_type_registry.rb
100
99
  - lib/cucumber/cucumber_expressions/regular_expression.rb
101
100
  - lib/cucumber/cucumber_expressions/tree_regexp.rb
101
+ - scripts/update-gemspec
102
102
  - spec/capture_warnings.rb
103
103
  - spec/coverage.rb
104
104
  - spec/cucumber/cucumber_expressions/combinatorial_generated_expression_factory_test.rb
@@ -117,7 +117,7 @@ licenses:
117
117
  metadata:
118
118
  bug_tracker_uri: https://github.com/cucumber/cucumber/issues
119
119
  changelog_uri: https://github.com/cucumber/cucumber/blob/master/cucumber-expressions/CHANGELOG.md
120
- documentation_uri: https://docs.cucumber.io/cucumber/cucumber-expressions/
120
+ documentation_uri: https://cucumber.io/docs/cucumber/cucumber-expressions/
121
121
  mailing_list_uri: https://groups.google.com/forum/#!forum/cukes
122
122
  source_code_uri: https://github.com/cucumber/cucumber/blob/master/cucumber-expressions/ruby
123
123
  post_install_message:
@@ -129,17 +129,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
129
129
  requirements:
130
130
  - - ">="
131
131
  - !ruby/object:Gem::Version
132
- version: 1.9.3
132
+ version: '2.3'
133
133
  required_rubygems_version: !ruby/object:Gem::Requirement
134
134
  requirements:
135
135
  - - ">="
136
136
  - !ruby/object:Gem::Version
137
137
  version: '0'
138
138
  requirements: []
139
- rubygems_version: 3.0.3
139
+ rubyforge_project:
140
+ rubygems_version: 2.7.6.2
140
141
  signing_key:
141
142
  specification_version: 4
142
- summary: cucumber-expressions-7.0.0
143
+ summary: cucumber-expressions-8.0.0
143
144
  test_files:
144
145
  - spec/capture_warnings.rb
145
146
  - spec/coverage.rb
data/.travis.yml DELETED
@@ -1,23 +0,0 @@
1
- sudo: false
2
- language: ruby
3
- rvm:
4
- - 2.5.3
5
- - 2.4.5
6
- - 2.3.8
7
- - jruby-9.2.0.0
8
- script: make default
9
- matrix:
10
- allow_failures:
11
- - rvm: jruby-9.2.0.0
12
- jobs:
13
- include:
14
- - stage: deploy
15
- ruby: 2.5.3
16
- deploy:
17
- skip_cleanup: true
18
- provider: rubygems
19
- gem: cucumber-expressions
20
- on:
21
- tags: true
22
- api_key:
23
- secure: qe+bx0MBxImttvjLt5TVkxWlanjPkSLzqmI6q3LlrhDcNiEy7jEJhBWEdVWWD3l6FG/1AY+XN1o18Re7eaAuun8C8QKmT6MjyMsYlf4bXMH2kfJ0IeRuNne1JRSvqVG6rAlVYHvHGJsReWGwfLAxvaEN0xAmx0cTW2MAmswUtV0LWFqMohV83Vbdcgsdvk2VMvtrtWuZTGod/o1QtcIcVimdnOjvdT79lo60IjgSa+tS7B7hEoehPa1kXZs5QYMEBhZOdIxG0rXCbIzz9wAY/4V4Z2F7SaPNBCuDZXz8Fmv9ZrAEYRsPGnNAbhLX3LFpxUEzmyHwubRRIysFCXrjgDakj4oSBiYAQResGqU0EBcbLiub1rNT72XpXbydI3N8NDdLg2CyZlAE83r7aTkEPdTvNoNwVfLQxpzP9GDKAFj5Fz4VdR0BiGhB+C5uqacpRByjiOyP2G8m2sqQhW6nTxYh61ZjCb38OLlHkdi2t7qECDD8ALlTgWPiVoeFz/cH7wVQR5dD5LoFXCq/BmOoOVGdYc8VbRyy/MPJWEepxK+v0j+LQlAwZdrtqvnE9fYKh8spQQ5+WQi5MfPWJzeXl+SzRFp5l380C3HpjYT4G/5TUaLlPzkPtpehsft9AwqgWiBvuhje2P+MesRk/tUtlWitBrpVLKCG+Dnt2fzhXIE=