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