Module: Semian::ActiveRecordTrilogyAdapter

Includes:
ActiveRecordAdapter, Adapter
Included in:
ActiveRecord::ConnectionAdapters::TrilogyAdapter
Defined in:
lib/semian/activerecord_trilogy_adapter.rb

Constant Summary

Constants included from ActiveRecordAdapter

Semian::ActiveRecordAdapter::QUERY_ALLOWLIST

Class Method Summary collapse

Instance Method Summary collapse

Methods included from ActiveRecordAdapter

#active?, #execute_intent, included, #initialize, #raw_execute

Methods included from Adapter

#clear_semian_resource, #semian_identifier, #semian_resource

Class Method Details

.prepended(base) ⇒ Object



30
31
32
# File 'lib/semian/activerecord_trilogy_adapter.rb', line 30

def prepended(base)
  base.extend(Semian::ActiveRecordAdapter::ClassMethods)
end

Instance Method Details

#with_resource_timeout(temp_timeout) ⇒ Object



35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/semian/activerecord_trilogy_adapter.rb', line 35

def with_resource_timeout(temp_timeout)
  if @raw_connection.nil?
    prev_read_timeout = @config[:read_timeout] || 0
    @config.merge!(read_timeout: temp_timeout)
  else
    prev_read_timeout = @raw_connection.read_timeout
    @raw_connection.read_timeout = temp_timeout
  end
  yield
ensure
  @config.merge!(read_timeout: prev_read_timeout)
  @raw_connection&.read_timeout = prev_read_timeout
end