Module: Sequel::ActiveRecordConnection
- Defined in:
- lib/sequel/extensions/activerecord_connection.rb,
lib/sequel/extensions/activerecord_connection/jdbc.rb,
lib/sequel/extensions/activerecord_connection/utils.rb,
lib/sequel/extensions/activerecord_connection/mysql2.rb,
lib/sequel/extensions/activerecord_connection/oracle.rb,
lib/sequel/extensions/activerecord_connection/sqlite.rb,
lib/sequel/extensions/activerecord_connection/tinytds.rb,
lib/sequel/extensions/activerecord_connection/postgres.rb
Defined Under Namespace
Modules: Jdbc, Mysql2, Oracle, Postgres, Sqlite, Tinytds, Utils
Constant Summary collapse
- Error =
Class.new(Sequel::Error)
- TRANSACTION_ISOLATION_MAP =
{ uncommitted: :read_uncommitted, committed: :read_committed, repeatable: :repeatable_read, serializable: :serializable, }
Instance Attribute Summary collapse
-
#activerecord_model ⇒ Object
Returns the value of attribute activerecord_model.
Class Method Summary collapse
Instance Method Summary collapse
-
#connect ⇒ Object
Ensure Sequel is not creating its own connection anywhere.
-
#log_connection_yield(sql, conn, args = nil) ⇒ Object
Log executed queries into Active Record logger as well.
-
#synchronize ⇒ Object
Avoid calling Sequel’s connection pool, instead use Active Record’s.
-
#timezone ⇒ Object
Match database timezone with Active Record.
Instance Attribute Details
#activerecord_model ⇒ Object
Returns the value of attribute activerecord_model.
28 29 30 |
# File 'lib/sequel/extensions/activerecord_connection.rb', line 28 def activerecord_model @activerecord_model end |
Class Method Details
.extended(db) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/sequel/extensions/activerecord_connection.rb', line 16 def self.extended(db) db.activerecord_model = ActiveRecord::Base db.opts[:test] = false unless db.opts.key?(:test) begin require "sequel/extensions/activerecord_connection/#{db.adapter_scheme}" db.extend Sequel::ActiveRecordConnection.const_get(db.adapter_scheme.capitalize) rescue LoadError # assume the Sequel adapter already works with Active Record end end |
Instance Method Details
#connect ⇒ Object
Ensure Sequel is not creating its own connection anywhere.
31 32 33 |
# File 'lib/sequel/extensions/activerecord_connection.rb', line 31 def connect(*) raise Error, "creating a Sequel connection is not allowed" end |
#log_connection_yield(sql, conn, args = nil) ⇒ Object
Log executed queries into Active Record logger as well.
49 50 51 52 53 |
# File 'lib/sequel/extensions/activerecord_connection.rb', line 49 def log_connection_yield(sql, conn, args = nil) sql += "; #{args.inspect}" if args activerecord_log(sql) { super } end |
#synchronize ⇒ Object
Avoid calling Sequel’s connection pool, instead use Active Record’s.
36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/sequel/extensions/activerecord_connection.rb', line 36 def synchronize(*) activerecord_lock do conn = activerecord_connection.raw_connection if activerecord_connection_class && !conn.is_a?(activerecord_connection_class) fail Error, "expected Active Record connection to be a #{activerecord_connection_class}, got #{conn.class}" end yield conn end end |
#timezone ⇒ Object
Match database timezone with Active Record.
56 57 58 |
# File 'lib/sequel/extensions/activerecord_connection.rb', line 56 def timezone @timezone || activerecord_timezone end |