Skip to content

Commit 1f535e3

Browse files
yahondaclaude
andcommitted
Restore AR 5.x/6.x compatibility in default_timezone and spec_helper
Commit 3d84e73 migrated default_timezone to the module-level ActiveRecord.default_timezone API, which only exists on AR 7.0+. Commit a37d58a then added a CI matrix covering AR 5.0-6.1, exposing two latent failures: - AR 5.0/5.1/5.2 raise NoMethodError on ActiveRecord.default_timezone= - AR 6.0/6.1 fail to load active_record with "uninitialized constant ActiveSupport::LoggerThreadSafeLevel::Logger" because logger is not required before active_support. Version-gate the default_timezone accessor in both lib/plsql/schema.rb and spec/plsql/schema_spec.rb via ActiveRecord.respond_to?, and require "logger" before "active_record" in spec/spec_helper.rb. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent acef9de commit 1f535e3

3 files changed

Lines changed: 9 additions & 3 deletions

File tree

lib/plsql/schema.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,8 @@ def default_timezone
100100
else
101101
@default_timezone ||
102102
# Use ActiveRecord default_timezone when ActiveRecord connection is used
103-
(@connection && @connection.activerecord_class && ActiveRecord.default_timezone) ||
103+
(@connection && @connection.activerecord_class &&
104+
(ActiveRecord.respond_to?(:default_timezone) ? ActiveRecord.default_timezone : ActiveRecord::Base.default_timezone)) ||
104105
# default to local timezone
105106
:local
106107
end

spec/plsql/schema_spec.rb

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -209,8 +209,12 @@ class TestModel < TestBaseModel
209209
expect(plsql.schema_name).to eq("HR")
210210
end
211211

212-
it "should use ActiveRecord.default_timezone as default" do
213-
ActiveRecord.default_timezone = :utc
212+
it "should use ActiveRecord default_timezone as default" do
213+
if ActiveRecord.respond_to?(:default_timezone=)
214+
ActiveRecord.default_timezone = :utc
215+
else
216+
ActiveRecord::Base.default_timezone = :utc
217+
end
214218
expect(plsql.default_timezone).to eq(:utc)
215219
end
216220

spec/spec_helper.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
require "rspec"
2020

2121
unless ENV["NO_ACTIVERECORD"]
22+
require "logger"
2223
require "active_record"
2324
require "active_record/connection_adapters/oracle_enhanced_adapter"
2425
if ActiveRecord::ConnectionAdapters.respond_to?(:register)

0 commit comments

Comments
 (0)