From de5a4dd00269b1d3686577d02c79e467396f08bc Mon Sep 17 00:00:00 2001 From: "Abinoam Praxedes Marques Jr." Date: Sat, 16 May 2026 01:35:54 -0300 Subject: [PATCH 1/8] chore(changelog): add missing jeffwidman entry --- Changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Changelog.md b/Changelog.md index e61950f..ec1ab9e 100644 --- a/Changelog.md +++ b/Changelog.md @@ -3,6 +3,7 @@ Below is a complete listing of changes for each revision of HighLine. ### 3.1.2 / 2025-01-05 +* Fix Ruby software license URL in LICENSE file (@jeffwidman) * PR #279 - Upgrades and adjustments for Ruby 3.4 release (@abinoam) * PR #278 - Prevent ArgumentError for #col_count_calculate when items exceed 80 chars (@davidjkling, @justintsteele) From effc3869cc1f06861bfab8c8b6d6818e880f08db Mon Sep 17 00:00:00 2001 From: "Abinoam Praxedes Marques Jr." Date: Sat, 16 May 2026 01:36:01 -0300 Subject: [PATCH 2/8] fix(test-docker): pin base image to ruby 3.4 --- test/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/Dockerfile b/test/Dockerfile index 70b9d25..4151511 100644 --- a/test/Dockerfile +++ b/test/Dockerfile @@ -1,4 +1,4 @@ -FROM ruby +FROM ruby:3.4 WORKDIR /highline From 2b49c814badc6bd52aa86a1a7bfdc74dd66bd362 Mon Sep 17 00:00:00 2001 From: "Abinoam Praxedes Marques Jr." Date: Sat, 16 May 2026 01:36:08 -0300 Subject: [PATCH 3/8] chore(gemfile): remove path_expander version lock --- Gemfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index 2c9d8e4..cdd812f 100644 --- a/Gemfile +++ b/Gemfile @@ -13,7 +13,7 @@ group :code_quality do gem "flog", require: false gem "pronto", require: false, platform: :ruby gem "pronto-flay", require: false, platform: :ruby - gem "path_expander", "1.1.1", require: false # Remove this lock when path_expander > 1.1.2 and flay > 2.13.3 is released. + gem "path_expander", require: false # gem "pronto-poper", require: false, platform: :ruby gem "pronto-reek", require: false, platform: :ruby gem "pronto-rubocop", require: false, platform: :ruby From 36d25748a344bb2190d97e6bb81e105ae12405ba Mon Sep 17 00:00:00 2001 From: "Abinoam Praxedes Marques Jr." Date: Sat, 16 May 2026 01:36:40 -0300 Subject: [PATCH 4/8] chore(cleanup): remove legacy TODO file and doc folder --- TODO | 6 ------ doc/.cvsignore | 1 - 2 files changed, 7 deletions(-) delete mode 100644 TODO delete mode 100644 doc/.cvsignore diff --git a/TODO b/TODO deleted file mode 100644 index 89c5306..0000000 --- a/TODO +++ /dev/null @@ -1,6 +0,0 @@ -= To Do List - -The following is a list of planned expansions for HighLine, in no particular -order. - -* Rent this space. diff --git a/doc/.cvsignore b/doc/.cvsignore deleted file mode 100644 index 1936cc1..0000000 --- a/doc/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -html From 0436a447888f4b2f2635a0340f601e8daa1ff289 Mon Sep 17 00:00:00 2001 From: "Abinoam Praxedes Marques Jr." Date: Sat, 16 May 2026 01:36:46 -0300 Subject: [PATCH 5/8] chore(rubocop): target ruby 4.0 --- .rubocop.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.rubocop.yml b/.rubocop.yml index 3db15b9..55fddef 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -4,7 +4,7 @@ # https://github.com/bbatsov/rubocop/tree/master/config AllCops: - TargetRubyVersion: 3.4 + TargetRubyVersion: 4.0 NewCops: enable # General From af871f90f2a08fb27cd77520bf1f5cce453592c8 Mon Sep 17 00:00:00 2001 From: "Abinoam Praxedes Marques Jr." Date: Sat, 16 May 2026 01:36:54 -0300 Subject: [PATCH 6/8] ci: add ruby 4.0 to test matrix --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 084b5f4..d06c811 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,6 +10,7 @@ jobs: os: [ubuntu-latest] ruby-version: - head + - '4.0' - '3.4' - '3.3' - '3.2' From 0d0630933a66bc770492ce906694896d74fd9f16 Mon Sep 17 00:00:00 2001 From: "Abinoam Praxedes Marques Jr." Date: Sat, 16 May 2026 01:54:52 -0300 Subject: [PATCH 7/8] fix(test-docker): include Gemfile.lock during bundle install --- test/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/Dockerfile b/test/Dockerfile index 4151511..9301eb7 100644 --- a/test/Dockerfile +++ b/test/Dockerfile @@ -1,11 +1,11 @@ -FROM ruby:3.4 +FROM ruby:latest WORKDIR /highline RUN bash -ec 'apt update; apt -y install cmake' -ADD Gemfile highline.gemspec .git* ./ +ADD Gemfile Gemfile.lock highline.gemspec .git* ./ ADD lib/highline/version.rb ./lib/highline/version.rb RUN bundle install From ccc1a7af81a7ddb4818fc95415a320d835b2b6d2 Mon Sep 17 00:00:00 2001 From: "Abinoam Praxedes Marques Jr." Date: Sat, 16 May 2026 01:54:56 -0300 Subject: [PATCH 8/8] test: avoid Class#stub usage on Ruby 4 --- test/test_string_extension.rb | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/test/test_string_extension.rb b/test/test_string_extension.rb index d9c0238..2963bc6 100644 --- a/test/test_string_extension.rb +++ b/test/test_string_extension.rb @@ -66,12 +66,19 @@ def test_highline_string_still_raises_for_non_available_messages end def test_String_includes_StringExtension_when_receives_colorize_strings - @include_received = 0 - caller = proc { @include_received += 1 } - ::String.stub :include, caller do + include_received = 0 + ::String.singleton_class.define_method(:include) do |*modules| + include_received += 1 + modules + end + + begin HighLine.colorize_strings + ensure + ::String.singleton_class.remove_method(:include) end - assert_equal 1, @include_received + + assert_equal 1, include_received end def test_respond_to_dynamic_style_methods