Class: Libsql::Connection

Inherits:
Object
  • Object
show all
Defined in:
lib/libsql.rb

Instance Method Summary collapse

Constructor Details

#initialize(url, auth_token) ⇒ Connection

Returns a new instance of Connection.



23
24
25
26
27
# File 'lib/libsql.rb', line 23

def initialize(url, auth_token)
  @url = url
  @auth_token = auth_token
  @last_changes = 0
end

Instance Method Details

#changesObject



54
55
56
# File 'lib/libsql.rb', line 54

def changes
  @last_changes
end

#execute(query, *params) ⇒ Object



29
30
31
32
# File 'lib/libsql.rb', line 29

def execute(query, *params)
  params = params.flatten if params.is_a?(Array)
  execute_stmt(query, params)
end

#execute_batch(batch_query) ⇒ Object



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

def execute_batch(batch_query)
  # Split the batch query into individual statements
  statements = batch_query.split(';').map(&:strip).reject(&:empty?)

  requests = statements.map do |stmt|
    { "type" => "execute", "stmt" => { "sql" => stmt } }
  end

  # Add close request at the end
  requests << { "type" => "close" }

  execute_pipeline(requests)
end

#query(query, *params) ⇒ Object



48
49
50
51
52
# File 'lib/libsql.rb', line 48

def query(query, *params)
  params = params.flatten if params.is_a?(Array)
  result = execute_stmt(query, params)
  QueryResult.new(result)
end