diff --git a/Appraisals b/Appraisals index f144c54..8dfaf31 100644 --- a/Appraisals +++ b/Appraisals @@ -7,5 +7,9 @@ ).each do |version| appraise "rails-#{version}" do gem "rails", "~> #{version}.0" + + # NOTE: concurrent-ruby gem no longer loads the logger gem since v1.3.5. + # More info: https://github.com/rails/rails/pull/54264 + gem "concurrent-ruby", "< 1.3.5" end end diff --git a/gemfiles/rails_5.2.gemfile b/gemfiles/rails_5.2.gemfile index 5a706dc..d4793f2 100644 --- a/gemfiles/rails_5.2.gemfile +++ b/gemfiles/rails_5.2.gemfile @@ -3,5 +3,6 @@ source "https://rubygems.org" gem "rails", "~> 5.2.0" +gem "concurrent-ruby", "< 1.3.5" gemspec path: "../" diff --git a/gemfiles/rails_6.0.gemfile b/gemfiles/rails_6.0.gemfile index 15b9b27..dd7fab9 100644 --- a/gemfiles/rails_6.0.gemfile +++ b/gemfiles/rails_6.0.gemfile @@ -3,5 +3,6 @@ source "https://rubygems.org" gem "rails", "~> 6.0.0" +gem "concurrent-ruby", "< 1.3.5" gemspec path: "../" diff --git a/gemfiles/rails_6.1.gemfile b/gemfiles/rails_6.1.gemfile index dd95a47..b2a8bf8 100644 --- a/gemfiles/rails_6.1.gemfile +++ b/gemfiles/rails_6.1.gemfile @@ -3,5 +3,6 @@ source "https://rubygems.org" gem "rails", "~> 6.1.0" +gem "concurrent-ruby", "< 1.3.5" gemspec path: "../" diff --git a/gemfiles/rails_7.0.gemfile b/gemfiles/rails_7.0.gemfile index 9af0ae3..2b93f9b 100644 --- a/gemfiles/rails_7.0.gemfile +++ b/gemfiles/rails_7.0.gemfile @@ -3,5 +3,6 @@ source "https://rubygems.org" gem "rails", "~> 7.0.0" +gem "concurrent-ruby", "< 1.3.5" gemspec path: "../" diff --git a/gemfiles/rails_7.1.gemfile b/gemfiles/rails_7.1.gemfile index 35a0ba3..304e881 100644 --- a/gemfiles/rails_7.1.gemfile +++ b/gemfiles/rails_7.1.gemfile @@ -3,5 +3,6 @@ source "https://rubygems.org" gem "rails", "~> 7.1.0" +gem "concurrent-ruby", "< 1.3.5" gemspec path: "../" diff --git a/lib/invisible_captcha/view_helpers.rb b/lib/invisible_captcha/view_helpers.rb index a980846..bbd7981 100644 --- a/lib/invisible_captcha/view_helpers.rb +++ b/lib/invisible_captcha/view_helpers.rb @@ -18,7 +18,7 @@ def invisible_captcha(honeypot = nil, scope = nil, options = {}) end if InvisibleCaptcha.spinner_enabled && @captcha_ocurrences == 1 - session[:invisible_captcha_spinner] = InvisibleCaptcha.encode("#{session[:invisible_captcha_timestamp]}-#{current_request.remote_ip}") + session[:invisible_captcha_spinner] = InvisibleCaptcha.encode("#{session[:invisible_captcha_timestamp]}-#{request.remote_ip}") end build_invisible_captcha(honeypot, scope, options) @@ -32,10 +32,6 @@ def invisible_captcha_styles private - def current_request - @request ||= request - end - def build_invisible_captcha(honeypot = nil, scope = nil, options = {}) if honeypot.is_a?(Hash) options = honeypot diff --git a/spec/view_helpers_spec.rb b/spec/view_helpers_spec.rb index e6a2771..278bdb3 100644 --- a/spec/view_helpers_spec.rb +++ b/spec/view_helpers_spec.rb @@ -8,6 +8,11 @@ # to test content_for and provide @view_flow = ActionView::OutputFlow.new + # mock request object for Rails < 7.0 + if Rails.version < '7.0' + allow(request).to receive(:remote_ip).and_return('0.0.0.0') + end + InvisibleCaptcha.init! end