diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0f74fb478..860f7da47 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,7 +15,7 @@ jobs: matrix: gemfile: - Gemfile - ruby: ["3.2", "3.3", "3.4"] + ruby: ["3.2", "3.3", "3.4", "4.0"] env: BUNDLE_GEMFILE: ${{ matrix.gemfile }} steps: diff --git a/.ruby-version b/.ruby-version index 7921bd0c8..1454f6ed4 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -3.4.8 +4.0.1 diff --git a/CHANGELOG.md b/CHANGELOG.md index 0cdb4ae21..b347a11b1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,6 +27,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ## [Unreleased] +- Add support for Ruby 4.0 [#434](https://github.com/Shopify/worldwide/pull/434) + --- ## [1.22.0] - 2026-03-09 - Add CLDR unit formatting support for 12 new measurement categories: area, duration, electric, energy, frequency, light, power, pressure, speed, temperature, digital, and graphics (~50 new unit keys with locale-aware formatting) [#436](https://github.com/Shopify/worldwide/pull/436) diff --git a/Gemfile b/Gemfile index 4d9556db3..6ec563bfa 100644 --- a/Gemfile +++ b/Gemfile @@ -20,7 +20,8 @@ group :development do gem "rubocop-shopify", require: false gem "rubocop", require: false gem "ruby-lsp", require: false - gem "pry-byebug", require: false + gem "debug", require: false + gem "benchmark", require: false end group :test do diff --git a/Gemfile.lock b/Gemfile.lock index 0dfd3b1a7..257214d32 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -16,6 +16,8 @@ PATH worldwide (1.22.0) activesupport (>= 7.0) i18n + logger + ostruct phonelib (~> 0.8) GEM @@ -34,20 +36,29 @@ GEM ansi (1.5.0) ast (2.4.2) base64 (0.1.1) + benchmark (0.5.0) bigdecimal (3.1.4) builder (3.2.4) - byebug (11.1.3) - coderay (1.1.3) - concurrent-ruby (1.2.2) + concurrent-ruby (1.3.6) connection_pool (2.4.1) + debug (1.11.1) + irb (~> 1.10) + reline (>= 0.3.8) drb (2.1.1) ruby2_keywords - i18n (1.14.1) + erb (6.0.1) + i18n (1.14.8) concurrent-ruby (~> 1.0) + io-console (0.8.2) + irb (1.17.0) + pp (>= 0.6.0) + prism (>= 1.3.0) + rdoc (>= 4.0.0) + reline (>= 0.4.2) json (2.7.1) language_server-protocol (3.17.0.3) - method_source (1.1.0) - minitest (5.17.0) + logger (1.7.0) + minitest (5.27.0) minitest-focus (1.3.1) minitest (>= 4, < 6) minitest-reporters (1.5.0) @@ -55,25 +66,24 @@ GEM builder minitest (>= 5.0) ruby-progressbar - mocha (2.0.2) + mocha (3.0.2) ruby2_keywords (>= 0.0.5) mutex_m (0.1.2) - nokogiri (1.18.9-arm64-darwin) + nokogiri (1.19.1-arm64-darwin) racc (~> 1.4) - nokogiri (1.18.9-x86_64-linux-gnu) + nokogiri (1.19.1-x86_64-linux-gnu) racc (~> 1.4) + ostruct (0.6.3) parallel (1.24.0) parser (3.3.0.5) ast (~> 2.4.1) racc phonelib (0.8.7) + pp (0.6.3) + prettyprint prettier_print (1.2.0) - pry (0.14.2) - coderay (~> 1.1) - method_source (~> 1.0) - pry-byebug (3.10.1) - byebug (~> 11.0) - pry (>= 0.13, < 0.15) + prettyprint (0.2.0) + prism (1.9.0) psych (5.1.0) stringio racc (1.8.1) @@ -81,7 +91,13 @@ GEM rake (13.0.6) rake-compiler (1.2.1) rake + rdoc (7.2.0) + erb + psych (>= 4.0.0) + tsort regexp_parser (2.9.0) + reline (0.6.3) + io-console (~> 0.5) rexml (3.2.8) strscan (>= 3.0.9) rubocop (1.62.1) @@ -114,11 +130,12 @@ GEM ruby2_keywords (0.0.5) rubyzip (2.3.2) sorbet-runtime (0.5.10648) - stringio (3.1.0) + stringio (3.2.0) strscan (3.1.0) syntax_tree (5.3.0) prettier_print (>= 1.2.0) thor (1.2.1) + tsort (0.2.0) tzinfo (2.0.6) concurrent-ruby (~> 1.0) unicode-display_width (2.5.0) @@ -130,11 +147,12 @@ PLATFORMS x86_64-linux DEPENDENCIES + benchmark + debug minitest (~> 5.0) minitest-focus minitest-reporters mocha - pry-byebug rake (~> 13.0) rake-compiler rubocop diff --git a/test/test_helper.rb b/test/test_helper.rb index 0b85f23e1..a54719187 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -8,7 +8,7 @@ require "minitest/reporters" require "minitest/focus" unless ENV["CI"] require "mocha/minitest" -require "pry-byebug" +require "debug" # All the locales used in the tests I18n.available_locales = Worldwide::Locales.known diff --git a/worldwide.gemspec b/worldwide.gemspec index 2e337985e..fa6c9d55c 100644 --- a/worldwide.gemspec +++ b/worldwide.gemspec @@ -28,5 +28,7 @@ Gem::Specification.new do |spec| spec.add_dependency("activesupport", ">= 7.0") spec.add_dependency("i18n") + spec.add_dependency("logger") + spec.add_dependency("ostruct") spec.add_dependency("phonelib", "~> 0.8") end