From 461e43aadd5d7f8f8f85d64e950c81eb5e4ba4cf Mon Sep 17 00:00:00 2001 From: Jevon Wright Date: Thu, 25 Jun 2026 11:08:18 +1200 Subject: [PATCH 1/3] Update to Bundler 4.0 --- Gemfile | 1 + Gemfile.lock | 91 ++++++++++++++++++++++++--------------- helpers/seconds_helper.rb | 2 +- lib/preload.rb | 19 +++++--- 4 files changed, 73 insertions(+), 40 deletions(-) diff --git a/Gemfile b/Gemfile index f354fe4..6949088 100644 --- a/Gemfile +++ b/Gemfile @@ -11,6 +11,7 @@ gem 'deep_merge', :require => 'deep_merge/rails_compat' gem 'spreadsheet' gem 'icalendar' +gem 'csv' group :development, :test do gem 'rspec' diff --git a/Gemfile.lock b/Gemfile.lock index 3038ba3..6fe5f4e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,65 +1,88 @@ GEM remote: https://rubygems.org/ specs: - activesupport (6.1.4.1) - concurrent-ruby (~> 1.0, >= 1.0.2) + activesupport (8.1.3) + base64 + bigdecimal + concurrent-ruby (~> 1.0, >= 1.3.1) + connection_pool (>= 2.2.5) + drb i18n (>= 1.6, < 2) + json + logger (>= 1.4.2) minitest (>= 5.1) - tzinfo (~> 2.0) - zeitwerk (~> 2.3) + securerandom (>= 0.3) + tzinfo (~> 2.0, >= 2.0.5) + uri (>= 0.13.1) base64 (0.3.0) - byebug (11.1.3) + bigdecimal (4.1.2) + byebug (13.0.0) + reline (>= 0.6.0) chronic_duration (0.10.6) numerizer (~> 0.1.1) - concurrent-ruby (1.1.9) + concurrent-ruby (1.3.7) + connection_pool (3.0.2) + csv (3.3.5) deep_merge (1.2.2) - diff-lcs (1.4.4) - i18n (1.8.11) + diff-lcs (1.6.2) + drb (2.2.3) + i18n (1.15.2) concurrent-ruby (~> 1.0) - icalendar (2.11.2) + icalendar (2.12.3) base64 ice_cube (~> 0.16) logger ostruct ice_cube (0.17.0) - logger (1.4.4) - logger-colors (1.0.0) - minitest (5.14.4) + io-console (0.8.2) + json (2.20.0) + logger (1.7.0) + logger-colors (1.1.0) + logger + minitest (6.0.6) + drb (~> 2.0) + prism (~> 1.5) numerizer (0.1.1) - ostruct (0.6.2) - rake (13.0.6) - rspec (3.10.0) - rspec-core (~> 3.10.0) - rspec-expectations (~> 3.10.0) - rspec-mocks (~> 3.10.0) - rspec-collection_matchers (1.2.0) + ostruct (0.6.3) + prism (1.9.0) + rake (13.4.2) + reline (0.6.3) + io-console (~> 0.5) + rspec (3.13.2) + rspec-core (~> 3.13.0) + rspec-expectations (~> 3.13.0) + rspec-mocks (~> 3.13.0) + rspec-collection_matchers (1.2.1) rspec-expectations (>= 2.99.0.beta1) - rspec-core (3.10.1) - rspec-support (~> 3.10.0) - rspec-expectations (3.10.1) + rspec-core (3.13.6) + rspec-support (~> 3.13.0) + rspec-expectations (3.13.5) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.10.0) - rspec-mocks (3.10.2) + rspec-support (~> 3.13.0) + rspec-mocks (3.13.8) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.10.0) - rspec-support (3.10.3) - ruby-ole (1.2.12.2) - spreadsheet (1.3.0) + rspec-support (~> 3.13.0) + rspec-support (3.13.7) + ruby-ole (1.2.13.1) + securerandom (0.4.1) + spreadsheet (1.3.5) + bigdecimal + logger ruby-ole - tzinfo (2.0.4) + tzinfo (2.0.6) concurrent-ruby (~> 1.0) - tzinfo-data (1.2021.5) + tzinfo-data (1.2026.2) tzinfo (>= 1.0.0) - zeitwerk (2.5.1) + uri (1.1.1) PLATFORMS - x64-mingw32 - x86_64-linux + x64-mingw-ucrt DEPENDENCIES activesupport byebug chronic_duration + csv deep_merge icalendar logger @@ -71,4 +94,4 @@ DEPENDENCIES tzinfo-data BUNDLED WITH - 2.2.30 + 4.0.15 diff --git a/helpers/seconds_helper.rb b/helpers/seconds_helper.rb index f58214e..68d458f 100644 --- a/helpers/seconds_helper.rb +++ b/helpers/seconds_helper.rb @@ -2,7 +2,7 @@ module SecondsHelper def seconds_in(string) - return nil if string.blank? + return nil if string.nil? || string.blank? ChronicDuration::parse(string) end diff --git a/lib/preload.rb b/lib/preload.rb index 0a39653..8c9b371 100644 --- a/lib/preload.rb +++ b/lib/preload.rb @@ -1,15 +1,24 @@ $LOAD_PATH << ENV['GEM_HOME'] if ENV['GEM_HOME'] require "active_support" +require "active_support/core_ext" -ActiveSupport::Dependencies.autoload_paths = [ +require_relative "monkey_patches" +require_relative "options" +require_relative "logging" +require_relative "deep_merge" + +# alternative to ActiveSupport::Dependencies.autoload_paths, +# which no longer seems to work? +load_everything_in = [ File.join(File.dirname(__FILE__), '..', 'lib'), File.join(File.dirname(__FILE__), '..', 'helpers'), File.join(File.dirname(__FILE__), '..', 'model'), File.join(File.dirname(__FILE__), '..', 'services'), ] -require_relative "monkey_patches" -require_relative "options" -require_relative "logging" -require_relative "deep_merge" +load_everything_in.each do |path| + Dir[File.join(path, "*.rb")].each do |file| + require file + end +end From a813073c2551a9cb30bfa4897a64eaf54ebfff87 Mon Sep 17 00:00:00 2001 From: Jevon Wright Date: Thu, 25 Jun 2026 11:11:03 +1200 Subject: [PATCH 2/3] Remove Ruby 2.x, 3.x support; only 3.4 now --- .github/workflows/ruby.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ruby.yml b/.github/workflows/ruby.yml index 1749789..62c4f51 100644 --- a/.github/workflows/ruby.yml +++ b/.github/workflows/ruby.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - ruby-version: ['2.6', '3.0'] + ruby-version: ['3.4'] steps: - uses: actions/checkout@v2 From a958f38ea1e051fe7c2e3e8a258b96a73e0d3837 Mon Sep 17 00:00:00 2001 From: Jevon Wright Date: Thu, 25 Jun 2026 11:12:07 +1200 Subject: [PATCH 3/3] Add required platform for GitHub actions --- Gemfile.lock | 1 + 1 file changed, 1 insertion(+) diff --git a/Gemfile.lock b/Gemfile.lock index 6fe5f4e..58ef13a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -77,6 +77,7 @@ GEM PLATFORMS x64-mingw-ucrt + x86_64-linux DEPENDENCIES activesupport