New Upstream Release - ruby-cucumber-expressions
Ready changes
Summary
Merged new upstream version: 8.3.0 (was: 8.0.0).
Resulting package
Built on 2022-12-30T02:58 (took 4m9s)
The resulting binary packages can be installed (if you have the apt repository enabled) by running one of:
apt install -t fresh-releases ruby-cucumber-expressions
Lintian Result
Diff
diff --git a/cucumber-expressions.gemspec b/cucumber-expressions.gemspec
index b2dcc60..945aede 100644
--- a/cucumber-expressions.gemspec
+++ b/cucumber-expressions.gemspec
@@ -1,7 +1,7 @@
# -*- encoding: utf-8 -*-
Gem::Specification.new do |s|
s.name = 'cucumber-expressions'
- s.version = '8.0.0'
+ s.version = '8.3.0'
s.authors = ["Aslak Hellesøy"]
s.description = 'Cucumber Expressions - a simpler alternative to Regular Expressions'
s.summary = "cucumber-expressions-#{s.version}"
@@ -19,12 +19,11 @@ Gem::Specification.new do |s|
'source_code_uri' => 'https://github.com/cucumber/cucumber/blob/master/cucumber-expressions/ruby',
}
- s.add_development_dependency 'bundler'
- s.add_development_dependency 'rake', '~> 12.3'
- s.add_development_dependency 'rspec', '~> 3.7'
+ s.add_development_dependency 'rake', '~> 13.0', '>= 13.0.1'
+ s.add_development_dependency 'rspec', '~> 3.9', '>= 3.9.0'
# For coverage reports
- s.add_development_dependency 'coveralls'
+ s.add_development_dependency 'coveralls', '~> 0.8', '>= 0.8.23'
s.rubygems_version = ">= 1.6.1"
s.files = `git ls-files`.split("\n").reject {|path| path =~ /\.gitignore$/ }
diff --git a/debian/changelog b/debian/changelog
index 8621ef4..3b86483 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-ruby-cucumber-expressions (8.0.0-2) UNRELEASED; urgency=medium
+ruby-cucumber-expressions (8.3.0-1) UNRELEASED; urgency=medium
[ James Valleroy ]
* Add upstream/metadata
@@ -15,8 +15,9 @@ ruby-cucumber-expressions (8.0.0-2) UNRELEASED; urgency=medium
* Bump debhelper from old 12 to 13.
* Update standards version to 4.5.1, no changes needed.
* Update standards version to 4.6.1, no changes needed.
+ * New upstream release.
- -- James Valleroy <jvalleroy@mailbox.org> Thu, 15 Aug 2019 07:15:28 -0400
+ -- James Valleroy <jvalleroy@mailbox.org> Fri, 30 Dec 2022 02:54:59 -0000
ruby-cucumber-expressions (8.0.0-1) unstable; urgency=medium
diff --git a/default.mk b/default.mk
index 081d5a0..dd1f22e 100644
--- a/default.mk
+++ b/default.mk
@@ -20,23 +20,36 @@ update-dependencies:
./scripts/update-gemspec
.PHONY: update-dependencies
+pre-release: update-dependencies clean default
+.PHONY: pre-release
+
update-version:
ifdef NEW_VERSION
+ifneq (,$(GEMSPEC))
sed -i "s/\(s\.version *= *'\)[0-9]*\.[0-9]*\.[0-9]*\('\)/\1$(NEW_VERSION)\2/" $(GEMSPEC)
+endif
else
- @echo -e "\033[0;NEW_VERSION is not defined. Can't update version :-(\033[0m"
+ @echo -e "\033[0;31mNEW_VERSION is not defined. Can't update version :-(\033[0m"
exit 1
endif
.PHONY: update-version
publish: .deps
+ifneq (,$(GEMSPEC))
gem build $(GEMSPEC)
- gem push $$(find . -name "*.gem")
+ gem push $$(find . -name "*$(NEW_VERSION).gem")
+else
+ @echo "Not publishing because there is no gemspec"
+endif
.PHONY: publish
+post-release:
+ @echo "No post-release needed for ruby"
+.PHONY: post-release
+
clean: clean-ruby
.PHONY: clean
clean-ruby:
- rm -f .deps .linked .tested Gemfile.lock
+ rm -f .deps .linked .tested* Gemfile.lock *.gem
.PHONY: clean-ruby
diff --git a/lib/cucumber/cucumber_expressions/argument.rb b/lib/cucumber/cucumber_expressions/argument.rb
index dd6f641..4239ca1 100644
--- a/lib/cucumber/cucumber_expressions/argument.rb
+++ b/lib/cucumber/cucumber_expressions/argument.rb
@@ -4,7 +4,7 @@ require 'cucumber/cucumber_expressions/errors'
module Cucumber
module CucumberExpressions
class Argument
- attr_reader :group
+ attr_reader :group, :parameter_type
def self.build(tree_regexp, text, parameter_types)
group = tree_regexp.match(text)
diff --git a/lib/cucumber/cucumber_expressions/tree_regexp.rb b/lib/cucumber/cucumber_expressions/tree_regexp.rb
index 749a07b..c5d9c98 100644
--- a/lib/cucumber/cucumber_expressions/tree_regexp.rb
+++ b/lib/cucumber/cucumber_expressions/tree_regexp.rb
@@ -23,7 +23,7 @@ module Cucumber
char_class = false
elsif c == '(' && !escaping && !char_class
@stack.push(GroupBuilder.new)
- group_start_stack.push(n+1)
+ group_start_stack.push(n + 1)
@non_capturing_maybe = false
elsif c == ')' && !escaping && !char_class
gb = @stack.pop
@@ -40,9 +40,9 @@ module Cucumber
elsif (c == '<') && @non_capturing_maybe
@name_capturing_maybe = true
elsif (c == ':' || c == '!' || c == '=') && last == '?' && @non_capturing_maybe
- end_non_capturing_group()
+ end_non_capturing_group
elsif (c == '=' || c == '!') && last == '<' && @name_capturing_maybe
- end_non_capturing_group()
+ end_non_capturing_group
elsif @name_capturing_maybe
raise CucumberExpressionError.new("Named capture groups are not supported. See https://github.com/cucumber/cucumber/issues/329")
end
diff --git a/scripts/update-gemspec b/scripts/update-gemspec
index f415b40..4e73a0a 100755
--- a/scripts/update-gemspec
+++ b/scripts/update-gemspec
@@ -6,7 +6,10 @@ set -uf -o pipefail
IFS=$'\n'
gemspec=$(find . -type f -maxdepth 1 -name "*.gemspec")
-add_dependency_lines=$(cat ${gemspec} | grep "s.add_dependency '[^']*', '")
+if [ "${gemspec}" = "" ]; then
+ exit 0
+fi
+add_dependency_lines=$(cat ${gemspec} | grep "s.add_[a-z_]*dependency '[^']*'")
if [ $? -ne 0 ]; then
# No add_dependency_lines found - nothing to do
exit 0
@@ -16,8 +19,14 @@ set -e
gems=$(echo "${add_dependency_lines}" | tr -s ' ' | cut -d ' ' -f3 | cut -d"'" -f 2)
while read -r gem; do
- gem_line=$(gem list "${gem}" --remote --all --no-prerelease | grep "${gem}")
- latest_version=$(echo "${gem_line}" | cut -d'(' -f2 | cut -d',' -f1)
- cat "${gemspec}" | sed "s/s.add_dependency '${gem}', .*/s.add_dependency '${gem}', '~> ${latest_version}'/" > ${gemspec}.tmp
+ echo "upgrading ${gem}"
+ if [ "${gem}" = "bundler" ]; then
+ cat "${gemspec}" | sed "s/\(s.add_[a-z_]*dependency\) '${gem}'.*/\1 '${gem}', '>= 1.16.2'/" > ${gemspec}.tmp
+ else
+ gem_line=$(gem list "${gem}" --remote --all --no-prerelease | grep "^${gem}\s")
+ latest_patch_version=$(echo "${gem_line}" | cut -d'(' -f2 | cut -d',' -f1 | cut -d' ' -f1)
+ latest_minor_version=$(echo "${latest_patch_version}" | cut -d. -f1,2)
+ cat "${gemspec}" | sed "s/\(s.add_[a-z_]*dependency\) '${gem}'.*/\1 '${gem}', '~> ${latest_minor_version}', '>= ${latest_patch_version}'/" > ${gemspec}.tmp
+ fi
mv ${gemspec}.tmp ${gemspec}
done <<< "${gems}"
diff --git a/spec/cucumber/cucumber_expressions/argument_spec.rb b/spec/cucumber/cucumber_expressions/argument_spec.rb
new file mode 100644
index 0000000..136c741
--- /dev/null
+++ b/spec/cucumber/cucumber_expressions/argument_spec.rb
@@ -0,0 +1,17 @@
+require 'cucumber/cucumber_expressions/argument'
+require 'cucumber/cucumber_expressions/tree_regexp'
+require 'cucumber/cucumber_expressions/parameter_type_registry'
+
+module Cucumber
+ module CucumberExpressions
+ describe Argument do
+ it 'exposes parameter_type' do
+ tree_regexp = TreeRegexp.new(/three (.*) mice/)
+ parameter_type_registry = ParameterTypeRegistry.new
+ arguments = Argument.build(tree_regexp, "three blind mice", [parameter_type_registry.lookup_by_type_name("string")])
+ argument = arguments[0]
+ expect(argument.parameter_type.name).to eq("string")
+ end
+ end
+ end
+end
diff --git a/spec/cucumber/cucumber_expressions/cucumber_expression_spec.rb b/spec/cucumber/cucumber_expressions/cucumber_expression_spec.rb
index df84f3d..9a2723c 100644
--- a/spec/cucumber/cucumber_expressions/cucumber_expression_spec.rb
+++ b/spec/cucumber/cucumber_expressions/cucumber_expression_spec.rb
@@ -55,6 +55,22 @@ module Cucumber
expect(match('three {string} mice', "three 'bl\\'nd' mice")).to eq(["bl'nd"])
end
+ it('matches single quoted empty string as empty string') do
+ expect(match('three {string} mice', "three '' mice")).to eq([''])
+ end
+
+ it('matches double quoted empty string as empty string') do
+ expect(match('three {string} mice', 'three "" mice')).to eq([''])
+ end
+
+ it('matches single quoted empty string as empty string, along with other strings') do
+ expect(match('three {string} and {string} mice', "three '' and 'handsome' mice")).to eq(['', 'handsome'])
+ end
+
+ it('matches double quoted empty string as empty string, along with other strings') do
+ expect(match('three {string} and {string} mice', 'three "" and "handsome" mice')).to eq(['', 'handsome'])
+ end
+
it 'matches escaped parentheses' do
expect(match('three \\(exceptionally) {string} mice', 'three (exceptionally) "blind" mice')).to eq(['blind'])
end
Debdiff
[The following lists of changes regard files as different if they have different names, permissions or owners.]
Files in second set of .debs but not in first
-rw-r--r-- root/root /usr/share/rubygems-integration/all/specifications/cucumber-expressions-8.3.0.gemspec
Files in first set of .debs but not in second
-rw-r--r-- root/root /usr/share/rubygems-integration/all/specifications/cucumber-expressions-8.0.0.gemspec
No differences were encountered in the control files