Module: ActiveRecord::ConnectionAdapters::TursoAdapter::ConnectionManagement
- Included in:
- ActiveRecord::ConnectionAdapters::TursoAdapter
- Defined in:
- lib/active_record/connection_adapters/turso_adapter/connection_management.rb
Defined Under Namespace
Modules: ClassMethods
Class Method Summary collapse
Instance Method Summary collapse
- #active? ⇒ Boolean
- #configure_connection ⇒ Object
- #disconnect! ⇒ Object
- #jdbc? ⇒ Boolean
- #raw_connection ⇒ Object
- #reconnect! ⇒ Object
Class Method Details
.included(base) ⇒ Object
7 8 9 |
# File 'lib/active_record/connection_adapters/turso_adapter/connection_management.rb', line 7 def self.included(base) base.extend(ClassMethods) end |
Instance Method Details
#active? ⇒ Boolean
18 19 20 21 22 |
# File 'lib/active_record/connection_adapters/turso_adapter/connection_management.rb', line 18 def active? @raw_connection && !@raw_connection.closed? rescue ::Turso::Error false end |
#configure_connection ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/active_record/connection_adapters/turso_adapter/connection_management.rb', line 47 def configure_connection @mvcc_enabled = false if @config[:journal_mode] mode = @config[:journal_mode].to_s execute("PRAGMA journal_mode = #{mode}") if @config[:journal_mode].to_s.downcase == "mvcc" @mvcc_enabled = true end end execute("PRAGMA foreign_keys = ON") if @config[:timeout] || @config[:busy_timeout] timeout = @config[:busy_timeout] || @config[:timeout] @raw_connection.busy_timeout = timeout end if @config[:query_timeout] @raw_connection.query_timeout = @config[:query_timeout] end end |
#disconnect! ⇒ Object
32 33 34 35 36 37 |
# File 'lib/active_record/connection_adapters/turso_adapter/connection_management.rb', line 32 def disconnect! @lock.synchronize do @raw_connection&.close @raw_connection = nil end end |
#jdbc? ⇒ Boolean
43 44 45 |
# File 'lib/active_record/connection_adapters/turso_adapter/connection_management.rb', line 43 def jdbc? false end |
#raw_connection ⇒ Object
39 40 41 |
# File 'lib/active_record/connection_adapters/turso_adapter/connection_management.rb', line 39 def raw_connection @lock.synchronize { @raw_connection } end |
#reconnect! ⇒ Object
24 25 26 27 28 29 30 |
# File 'lib/active_record/connection_adapters/turso_adapter/connection_management.rb', line 24 def reconnect!(**) @lock.synchronize do disconnect! @raw_connection = self.class.new_client(@config) configure_connection end end |