class Patriot::Util::DBClient::SQLite3Client
NOT thread safe
Public Class Methods
new(dbconf)
click to toggle source
@param dbconf [Hash] dbclient configuration
# File lib/patriot/util/db_client/sqlite3_client.rb, line 15 def initialize(dbconf) db = dbconf[:database] db = File.join($home, db) unless db.start_with?("/") @connection = SQLite3::Database.new(dbconf[:database], :results_as_hash => true) end
Public Instance Methods
build_insert_query(tbl, value, option = {})
click to toggle source
@see Patriot::Util::DBClient::Base#build_insert_query
# File lib/patriot/util/db_client/sqlite3_client.rb, line 27 def build_insert_query(tbl, value, option = {}) option = {:ignore => false}.merge(option) cols, vals = [], [] value.each do |c,v| cols << c vals << quote(v) end if option[:ignore] return "INSERT OR IGNORE INTO #{tbl} (#{cols.join(',')}) VALUES (#{vals.join(',')})" else return "INSERT INTO #{tbl} (#{cols.join(',')}) VALUES (#{vals.join(',')})" end end
close()
click to toggle source
@see Patriot::Util::DBClient::Base#do_close
# File lib/patriot/util/db_client/sqlite3_client.rb, line 54 def close() @connection.close unless @connection.nil? end
do_insert(query)
click to toggle source
@see Patriot::Util::DBClient::Base#do_insert
# File lib/patriot/util/db_client/sqlite3_client.rb, line 42 def do_insert(query) @connection.execute(query) return @connection.last_insert_row_id end
do_select(query)
click to toggle source
@see Patriot::Util::DBClient::Base#do_select
# File lib/patriot/util/db_client/sqlite3_client.rb, line 22 def do_select(query) return @connection.execute(query).map{|r| HashRecord.new(r)} end
do_update(query)
click to toggle source
@see Patriot::Util::DBClient::Base#do_update
# File lib/patriot/util/db_client/sqlite3_client.rb, line 48 def do_update(query) @connection.execute(query) return @connection.changes end
quote(v)
click to toggle source
@see Patriot::Util::DBClient::Base#quote
# File lib/patriot/util/db_client/sqlite3_client.rb, line 59 def quote(v) return 'NULL' if v.nil? return "'#{v.to_s}'" if v.is_a?(DateTime) || v.is_a?(Time) return (v.is_a?(String) ? "'#{v.gsub(/'/,"''")}'" : v) end