Class: Ink::Sqlite3Adapter
Instance Method Summary
collapse
Methods inherited from SqlAdapter
#create_all_links, #create_link, #delete_all_links, #find, #find_reference, #find_references, #find_union, format_date, #last_inserted_pk, #remove, transform_from_sql, transform_to_sql
Constructor Details
Returns a new instance of Sqlite3Adapter.
5
6
7
8
|
# File 'lib/sqlite3_adapter.rb', line 5
def initialize(config)
@type = config[:db_type]
@db = SQLite3::Database.new(config[:db_server])
end
|
Instance Method Details
#close ⇒ Object
43
44
45
46
47
48
49
50
|
# File 'lib/sqlite3_adapter.rb', line 43
def close
return if @db.closed?
begin
@db.close
rescue SQLite3::BusyException
end
@db = nil
end
|
#primary_key_autoincrement(pk = "id") ⇒ Object
52
53
54
|
# File 'lib/sqlite3_adapter.rb', line 52
def primary_key_autoincrement(pk="id")
["`#{pk}`", "INTEGER", "PRIMARY KEY", "ASC"]
end
|
#query(query, type = Hash) ⇒ Object
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
# File 'lib/sqlite3_adapter.rb', line 24
def query(query, type=Hash)
type = Hash if not block_given?
result = Array.new
re = @db.method("query").call query
re.each do |row|
result.push type.new
re.columns.each_index do |i|
row[i] = self.class.transform_from_sql(row[i])
if block_given?
yield(result[result.length-1], re.columns[i], row[i])
else
result[result.length-1][re.columns[i]] = row[i]
end
end
end
re.close if not re.closed?
return result
end
|
#tables ⇒ Object
10
11
12
13
14
15
16
17
18
19
20
21
22
|
# File 'lib/sqlite3_adapter.rb', line 10
def tables
result = Array.new
re = @db.query <<QUERY
SELECT name FROM sqlite_master WHERE type='table' ORDER BY name;
QUERY
re.each do |row|
row.each do |t|
result.push t
end
end
re.close
return result
end
|