diff --git a/.github/workflows/release-ruby.yml b/.github/workflows/release-ruby.yml
index 435b3604..0fac0cca 100644
--- a/.github/workflows/release-ruby.yml
+++ b/.github/workflows/release-ruby.yml
@@ -22,7 +22,7 @@ jobs:
- uses: ./.github/actions/prepare
- uses: ruby/setup-ruby@v1
with:
- ruby-version: '3.3'
+ ruby-version: '3.4'
bundler-cache: true
working-directory: ruby
- name: Publish ruby gem
diff --git a/.github/workflows/test-ruby.yml b/.github/workflows/test-ruby.yml
index ee538ea5..502727d0 100644
--- a/.github/workflows/test-ruby.yml
+++ b/.github/workflows/test-ruby.yml
@@ -26,10 +26,10 @@ jobs:
matrix:
os:
- ubuntu-latest
- ruby: ['2.7', '3.0', '3.1', '3.2', '3.3']
+ ruby: ['3.1', '3.2', '3.3', '3.4', '3.5']
include:
- os: macos-latest
- ruby: '3.3'
+ ruby: '3.4'
steps:
- uses: actions/checkout@v5
- uses: ./.github/actions/prepare
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9114be6a..16ab9864 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,9 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/)
and this project adheres to [Semantic Versioning](http://semver.org/).
## [Unreleased]
+### Changed
+- [Ruby] Minimum ruby version is now 3.1+ (Bumped CI workflows also) ([#441](https://github.com/cucumber/html-formatter/pull/441))
+- Upgrade `cucumber-messages` to [30.0.0](https://github.com/cucumber/messages/releases/tag/v30.0.0)
## [21.15.1] - 2025-09-11
### Fixed
diff --git a/java/pom.xml b/java/pom.xml
index 1cd14134..de572eec 100644
--- a/java/pom.xml
+++ b/java/pom.xml
@@ -51,7 +51,7 @@
io.cucumber
messages
- [18.0.0,30.0.0)
+ [18.0.0,31.0.0)
diff --git a/ruby/cucumber-html-formatter.gemspec b/ruby/cucumber-html-formatter.gemspec
index abf89452..ec70b8ad 100644
--- a/ruby/cucumber-html-formatter.gemspec
+++ b/ruby/cucumber-html-formatter.gemspec
@@ -12,8 +12,8 @@ Gem::Specification.new do |s|
s.homepage = 'https://github.com/cucumber/html-formatter'
s.platform = Gem::Platform::RUBY
s.license = 'MIT'
- s.required_ruby_version = '>= 2.6'
- s.required_rubygems_version = '>= 3.0.3'
+ s.required_ruby_version = '>= 3.1'
+ s.required_rubygems_version = '>= 3.2.8'
s.metadata = {
'bug_tracker_uri' => 'https://github.com/cucumber/html-formatter/issues',
@@ -24,13 +24,13 @@ Gem::Specification.new do |s|
'source_code_uri' => 'https://github.com/cucumber/html-formatter'
}
- s.add_runtime_dependency 'cucumber-messages', '> 19', '< 28'
+ s.add_runtime_dependency 'cucumber-messages', '> 19', '< 31'
- s.add_development_dependency 'rake', '~> 13.2'
+ s.add_development_dependency 'rake', '~> 13.3'
s.add_development_dependency 'rspec', '~> 3.13'
- s.add_development_dependency 'rubocop', '~> 1.71.0'
+ s.add_development_dependency 'rubocop', '~> 1.81.0'
s.add_development_dependency 'rubocop-rake', '~> 0.6.0'
- s.add_development_dependency 'rubocop-rspec', '~> 2.31.0'
+ s.add_development_dependency 'rubocop-rspec', '~> 3.7.0'
s.executables = ['cucumber-html-formatter']
s.files = Dir['README.md', 'LICENSE', 'lib/**/*', 'assets/*']
diff --git a/ruby/lib/cucumber/html_formatter/formatter.rb b/ruby/lib/cucumber/html_formatter/formatter.rb
index 3d7243aa..77a77073 100644
--- a/ruby/lib/cucumber/html_formatter/formatter.rb
+++ b/ruby/lib/cucumber/html_formatter/formatter.rb
@@ -25,7 +25,7 @@ def write_message(message)
out.puts(',') unless @first_message
# Replace < with \x3C
# https://html.spec.whatwg.org/multipage/scripting.html#restrictions-for-contents-of-script-elements
- out.print(message.to_json.gsub('<', "\\x3C"))
+ out.print(message.to_json.gsub('<', '\\x3C'))
@first_message = false
end
@@ -53,7 +53,7 @@ def pre_message
AssetsLoader.css,
template_writer.write_between('{{css}}', '{{custom_css}}'),
template_writer.write_between('{{custom_css}}', '{{messages}}')
- ].join("")
+ ].join('')
end
def post_message
@@ -62,7 +62,7 @@ def post_message
AssetsLoader.script,
template_writer.write_between('{{script}}', '{{custom_script}}'),
template_writer.write_between('{{custom_script}}', nil)
- ].join("")
+ ].join('')
end
def template_writer
diff --git a/ruby/spec/cucumber/html_formatter/formatter_spec.rb b/ruby/spec/cucumber/html_formatter/formatter_spec.rb
index 8919ec5d..458e2b7f 100644
--- a/ruby/spec/cucumber/html_formatter/formatter_spec.rb
+++ b/ruby/spec/cucumber/html_formatter/formatter_spec.rb
@@ -103,7 +103,7 @@
expect(out.string).to match(/\A\s?\Z/)
-
+
end
it 'writes an empty report' do
@@ -115,6 +115,6 @@
expect(out.string).to match(/\A\s?\Z/)
-
+
end
end