From 4d940004d4e4e90db529e1e0a88a9ff2d59edd61 Mon Sep 17 00:00:00 2001 From: Jean Boussier Date: Fri, 20 Mar 2026 15:22:59 +0100 Subject: [PATCH 1/2] Test against Ruby 4.0 --- .github/workflows/build.yml | 1 + rack-attack.gemspec | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6e4eee24..aec4d979 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -18,6 +18,7 @@ jobs: fail-fast: false matrix: ruby: + - '4.0' - '3.4' - '3.3' - '3.2' diff --git a/rack-attack.gemspec b/rack-attack.gemspec index 4d03a71b..b925f464 100644 --- a/rack-attack.gemspec +++ b/rack-attack.gemspec @@ -29,9 +29,9 @@ Gem::Specification.new do |s| s.add_runtime_dependency 'rack', ">= 1.0", "< 4" s.add_development_dependency 'appraisal', '~> 2.2' - s.add_development_dependency "bundler", ">= 1.17", "< 3.0" s.add_development_dependency 'minitest', "~> 5.11" s.add_development_dependency "minitest-stub-const", "~> 0.6" + s.add_development_dependency 'ostruct' s.add_development_dependency 'rack-test', "~> 2.0" s.add_development_dependency 'rake', "~> 13.0" s.add_development_dependency "rubocop", "1.82" From f7e80f8bd6a7bb148f7ea3c93a3a341f00b10e33 Mon Sep 17 00:00:00 2001 From: Jean Boussier Date: Fri, 20 Mar 2026 15:24:58 +0100 Subject: [PATCH 2/2] Get rid of OpenStruct --- rack-attack.gemspec | 1 - spec/acceptance/cache_store_config_with_rails_spec.rb | 7 ++++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/rack-attack.gemspec b/rack-attack.gemspec index b925f464..f9d2750a 100644 --- a/rack-attack.gemspec +++ b/rack-attack.gemspec @@ -31,7 +31,6 @@ Gem::Specification.new do |s| s.add_development_dependency 'appraisal', '~> 2.2' s.add_development_dependency 'minitest', "~> 5.11" s.add_development_dependency "minitest-stub-const", "~> 0.6" - s.add_development_dependency 'ostruct' s.add_development_dependency 'rack-test', "~> 2.0" s.add_development_dependency 'rake', "~> 13.0" s.add_development_dependency "rubocop", "1.82" diff --git a/spec/acceptance/cache_store_config_with_rails_spec.rb b/spec/acceptance/cache_store_config_with_rails_spec.rb index 66bb76a8..25b68975 100644 --- a/spec/acceptance/cache_store_config_with_rails_spec.rb +++ b/spec/acceptance/cache_store_config_with_rails_spec.rb @@ -2,7 +2,6 @@ require_relative "../spec_helper" require "minitest/stub_const" -require "ostruct" describe "Cache store config with Rails" do before do @@ -13,7 +12,8 @@ unless defined?(Rails) it "fails when Rails.cache is not set" do - Object.stub_const(:Rails, OpenStruct.new(cache: nil)) do + rails = Struct.new(:cache).new(nil) + Object.stub_const(:Rails, rails) do assert_raises(Rack::Attack::MissingStoreError) do get "/", {}, "REMOTE_ADDR" => "1.2.3.4" end @@ -22,7 +22,8 @@ end it "works when Rails.cache is set" do - Object.stub_const(:Rails, OpenStruct.new(cache: ActiveSupport::Cache::MemoryStore.new)) do + rails = Struct.new(:cache).new(ActiveSupport::Cache::MemoryStore.new) + Object.stub_const(:Rails, rails) do get "/", {}, "REMOTE_ADDR" => "1.2.3.4" assert_equal 200, last_response.status