Class: ActiveRecordProxyAdapters::ActiveRecordContext

Inherits:
Object
  • Object
show all
Defined in:
lib/active_record_proxy_adapters/active_record_context.rb

Overview

Collection of helpers to handle common active record methods that are defined in different places in different versions of rails.

Instance Method Summary collapse

Instance Method Details

#active_record_v7?Boolean

Returns:

  • (Boolean)


24
25
26
# File 'lib/active_record_proxy_adapters/active_record_context.rb', line 24

def active_record_v7?
  active_record_version >= Gem::Version.new("7.1") && active_record_version < Gem::Version.new("8.0")
end

#active_record_v7_2_or_greater?Boolean

Returns:

  • (Boolean)


28
29
30
# File 'lib/active_record_proxy_adapters/active_record_context.rb', line 28

def active_record_v7_2_or_greater?
  active_record_version >= Gem::Version.new("7.2")
end

#active_record_v8_0_2_or_greater?Boolean

Returns:

  • (Boolean)


36
37
38
# File 'lib/active_record_proxy_adapters/active_record_context.rb', line 36

def active_record_v8_0_2_or_greater?
  active_record_version >= Gem::Version.new("8.0.2")
end

#active_record_v8_0_or_greater?Boolean

Returns:

  • (Boolean)


32
33
34
# File 'lib/active_record_proxy_adapters/active_record_context.rb', line 32

def active_record_v8_0_or_greater?
  active_record_version >= Gem::Version.new("8.0")
end

#connection_class_for(connection) ⇒ Object



14
15
16
17
18
# File 'lib/active_record_proxy_adapters/active_record_context.rb', line 14

def connection_class_for(connection)
  return connection.connection_descriptor.name.constantize if active_record_v8_0_2_or_greater?

  connection.connection_class || ActiveRecord::Base
end

#hijackable_methodsObject



20
21
22
# File 'lib/active_record_proxy_adapters/active_record_context.rb', line 20

def hijackable_methods
  %i[execute exec_query internal_exec_query]
end