module Sequel::ActiveRecord::DatabaseMethods
Public Instance Methods
connect(*)
click to toggle source
Ensure Sequel
is not creating its own connection anywhere.
# File lib/sequel/adapters/activerecord.rb, line 7 def connect(*) raise Sequel::ActiveRecord::Error, "creating a Sequel connection is not allowed" end
in_transaction?(*)
click to toggle source
# File lib/sequel/adapters/activerecord.rb, line 35 def in_transaction?(*) activerecord_connection.transaction_open? end
synchronize(*) { |activerecord_raw_connection| ... }
click to toggle source
# File lib/sequel/adapters/activerecord.rb, line 43 def synchronize(*) activerecord_connection.lock.synchronize do yield activerecord_raw_connection end end
timezone()
click to toggle source
# File lib/sequel/adapters/activerecord.rb, line 49 def timezone @timezone || activerecord_model.default_timezone || Sequel.database_timezone end
transaction(savepoint: nil, rollback: nil, auto_savepoint: nil, server: nil, **options) { || ... }
click to toggle source
# File lib/sequel/adapters/activerecord.rb, line 11 def transaction(savepoint: nil, rollback: nil, auto_savepoint: nil, server: nil, **options) activerecord_not_supported!("#{options} transaction options") if options.any? if in_transaction? requires_new = savepoint || Thread.current[:sequel_activerecord_auto_savepoint] else requires_new = true end activerecord_model.transaction(requires_new: requires_new) do begin Thread.current[:sequel_activerecord_auto_savepoint] = true if auto_savepoint yield rescue Sequel::Rollback => exception raise if rollback == :reraise raise ::ActiveRecord::Rollback, exception.message, exception.backtrace ensure Thread.current[:sequel_activerecord_auto_savepoint] = nil if auto_savepoint end raise ::ActiveRecord::Rollback if rollback == :always end end
Private Instance Methods
activerecord_connection()
click to toggle source
# File lib/sequel/adapters/activerecord.rb, line 64 def activerecord_connection activerecord_model.connection end
activerecord_model()
click to toggle source
# File lib/sequel/adapters/activerecord.rb, line 68 def activerecord_model opts[:activerecord_model] end
activerecord_not_supported!(feature)
click to toggle source
# File lib/sequel/adapters/activerecord.rb, line 72 def activerecord_not_supported!(feature) fail Sequel::ActiveRecord::Error, "#{feature} is currently not supported by ActiveRecord adapter" end
activerecord_raw_connection()
click to toggle source
# File lib/sequel/adapters/activerecord.rb, line 60 def activerecord_raw_connection activerecord_connection.raw_connection end
connection_pool_default_options()
click to toggle source
We won't be needing a real connection pool.
# File lib/sequel/adapters/activerecord.rb, line 56 def connection_pool_default_options { pool_class: Sequel::ConnectionPool } end