Class: Turso::AR::Connection

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/turso/ar/connection.rb

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ Connection

Returns a new instance of Connection.



12
13
14
15
16
17
# File 'lib/turso/ar/connection.rb', line 12

def initialize(config)
  @config = config
  @db = ::Turso::DB.new(config[:database].to_s,
    busy_timeout: config[:busy_timeout] || config[:timeout],
    query_timeout: config[:query_timeout])
end

Instance Method Details

#busy_timeout=(ms) ⇒ Object



55
56
57
# File 'lib/turso/ar/connection.rb', line 55

def busy_timeout=(ms)
  @db.busy_timeout = ms.to_i
end

#disconnect!Object



31
32
33
# File 'lib/turso/ar/connection.rb', line 31

def disconnect!
  @db.close unless @db.closed?
end

#execute(sql, binds = []) ⇒ Object



35
36
37
38
# File 'lib/turso/ar/connection.rb', line 35

def execute(sql, binds = [])
  @db.execute(sql, normalize_binds(binds))
  nil
end

#execute_batch(sql) ⇒ Object



44
45
46
47
48
49
# File 'lib/turso/ar/connection.rb', line 44

def execute_batch(sql)
  sql.split(";").each do |stmt|
    s = stmt.strip
    @db.execute(s) unless s.empty?
  end
end

#interruptObject



63
64
65
# File 'lib/turso/ar/connection.rb', line 63

def interrupt
  @db.interrupt
end

#last_insert_rowidObject



19
20
21
# File 'lib/turso/ar/connection.rb', line 19

def last_insert_rowid
  query("SELECT last_insert_rowid()").first&.values&.first.to_i
end

#open?Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/turso/ar/connection.rb', line 27

def open?
  !@db.closed?
end

#prepare(sql) ⇒ Object



51
52
53
# File 'lib/turso/ar/connection.rb', line 51

def prepare(sql)
  @db.instance_variable_get(:@database).connection.prepare(sql)
end

#query(sql, params = []) ⇒ Object



40
41
42
# File 'lib/turso/ar/connection.rb', line 40

def query(sql, params = [])
  @db.query(sql, normalize_binds(params))
end

#query_timeout=(ms) ⇒ Object



59
60
61
# File 'lib/turso/ar/connection.rb', line 59

def query_timeout=(ms)
  @db.query_timeout = ms.to_i
end

#raw_connectionObject



23
24
25
# File 'lib/turso/ar/connection.rb', line 23

def raw_connection
  @db
end