Class: SQLite3::Database

Inherits:
Object show all
Defined in:
lib/sqlite3/database_extension.rb

Instance Method Summary collapse

Instance Method Details

#ask(sql, *args) ⇒ Object



52
53
54
# File 'lib/sqlite3/database_extension.rb', line 52

def ask(sql, *args)
  query(sql).ask *prepare_arguments(args)
end

#exec(sql, *args) ⇒ Object

execute multiple SQL statements at once.



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/sqlite3/database_extension.rb', line 3

def exec(sql, *args)
  args = prepare_arguments(args)

  while sql =~ /\S/ do
    statement = prepare(sql)

    sql = statement.remainder
    if statement.active?
      statement.execute!(*args)
    end
  end

rescue
  STDERR.puts "#{sql}: #{$!}"
  raise
end


61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/sqlite3/database_extension.rb', line 61

def print(sql, *args)
  require "pp"

  results = select sql, *args
  log_sql = sql.gsub(/\n/, " ").gsub(/\s+/, " ")
  puts "=" * log_sql.length
  puts log_sql
  puts "-" * log_sql.length

  results.each do |result|
    pp result.to_a
  end
  puts "=" * log_sql.length
end

#register(name, query) ⇒ Object



82
83
84
# File 'lib/sqlite3/database_extension.rb', line 82

def register(name, query)
  registry[name] = query
end

#registryObject

– query registry



78
79
80
# File 'lib/sqlite3/database_extension.rb', line 78

def registry
  @registry ||= {}
end

#run(sql, *args) ⇒ Object



48
49
50
# File 'lib/sqlite3/database_extension.rb', line 48

def run(sql, *args)
  query(sql).run *prepare_arguments(args)
end

#select(sql, *args) ⇒ Object

run a select like query. Returns an array of records.



57
58
59
# File 'lib/sqlite3/database_extension.rb', line 57

def select(sql, *args)
  query(sql).select *prepare_arguments(args)
end