From 4213edf7ae659e4a6737ad30dfaa73ce81f4ddac Mon Sep 17 00:00:00 2001 From: Ed Martins Date: Thu, 21 Aug 2025 18:38:40 -0300 Subject: [PATCH] Make it compatible with rails 7.2.x --- CHANGELOG.md | 6 +++++- lib/pgpool_no_load_balance.rb | 2 +- .../active_record/connection_adapters/postgresql_adapter.rb | 6 +++--- .../active_record/relation/query_methods.rb | 1 - lib/pgpool_no_load_balance/version.rb | 2 +- pgpool_no_load_balance.gemspec | 2 +- spec/spec_helper.rb | 1 + 7 files changed, 12 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 904a7c9..829222a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,7 +21,11 @@ straightforward as possible. ### Fixed ### Security - + +## [1.2.0] - 2025-08-28 + +Rails 7.2 support + ## [1.1.0] - 2020-06-14 Executes any SQL statement with comments. diff --git a/lib/pgpool_no_load_balance.rb b/lib/pgpool_no_load_balance.rb index a6a6694..d5db35a 100644 --- a/lib/pgpool_no_load_balance.rb +++ b/lib/pgpool_no_load_balance.rb @@ -12,7 +12,7 @@ module PgpoolNoLoadBalance class PostgreSQLAdapterMissing < StandardError; end def self.setup! - unless ::ActiveRecord::Base.respond_to?(:postgresql_connection) + unless defined?(::ActiveRecord::ConnectionAdapters::PostgreSQLAdapter) raise PostgreSQLAdapterMissing, "No postgresql adapter specified by 'config/database.yml', or 'ActiveRecord::Base.establish_connection' method is not called." end ::ActiveRecord::Base.extend PgpoolNoLoadBalance::ActiveRecord::Querying diff --git a/lib/pgpool_no_load_balance/active_record/connection_adapters/postgresql_adapter.rb b/lib/pgpool_no_load_balance/active_record/connection_adapters/postgresql_adapter.rb index 6478184..9b0ecb8 100644 --- a/lib/pgpool_no_load_balance/active_record/connection_adapters/postgresql_adapter.rb +++ b/lib/pgpool_no_load_balance/active_record/connection_adapters/postgresql_adapter.rb @@ -9,12 +9,12 @@ def execute(sql, name = nil, pgpool_nlb: false) private - def to_sql_and_binds(arel_or_sql_string, binds = [], preparable = nil) # :nodoc: - sql, binds, preparable = super + def to_sql_and_binds(arel_or_sql_string, binds = [], preparable = nil, allow_retry = false) # :nodoc: + sql, binds, preparable, allow_retry = super if arel_or_sql_string.respond_to?(:pgpool_nlb?) && arel_or_sql_string.pgpool_nlb? sql = "#{NLB_COMMENT} #{sql}" end - [sql.freeze, binds, preparable] + [sql.freeze, binds, preparable, allow_retry] end end end diff --git a/lib/pgpool_no_load_balance/active_record/relation/query_methods.rb b/lib/pgpool_no_load_balance/active_record/relation/query_methods.rb index 6331155..7f91357 100644 --- a/lib/pgpool_no_load_balance/active_record/relation/query_methods.rb +++ b/lib/pgpool_no_load_balance/active_record/relation/query_methods.rb @@ -15,7 +15,6 @@ def pgpool_nlb_value end def pgpool_nlb_value=(value) - assert_mutability! @values[:pgpool_nlb] = value end diff --git a/lib/pgpool_no_load_balance/version.rb b/lib/pgpool_no_load_balance/version.rb index 001d2c9..a2513e3 100644 --- a/lib/pgpool_no_load_balance/version.rb +++ b/lib/pgpool_no_load_balance/version.rb @@ -1,3 +1,3 @@ module PgpoolNoLoadBalance - VERSION = "1.1.0" + VERSION = "1.2.0" end diff --git a/pgpool_no_load_balance.gemspec b/pgpool_no_load_balance.gemspec index ac9af7f..3ea789f 100644 --- a/pgpool_no_load_balance.gemspec +++ b/pgpool_no_load_balance.gemspec @@ -24,5 +24,5 @@ Gem::Specification.new do |spec| spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) } spec.require_paths = ["lib"] - spec.add_dependency "activerecord", ">= 5.2.0" + spec.add_dependency "activerecord", ">= 7.2.0" end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 495d640..e23ed33 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,4 +1,5 @@ require "bundler/setup" +require "active_record" require "pgpool_no_load_balance" RSpec.configure do |config|