Parent

Files

Anemone::Storage::SQLite3

Public Class Methods

new(file) click to toggle source
# File lib/anemone/storage/sqlite3.rb, line 12
def initialize(file)
  @db = ::SQLite3::Database.new(file)
  create_schema
end

Public Instance Methods

[](url) click to toggle source
# File lib/anemone/storage/sqlite3.rb, line 17
def [](url)
  value = @db.get_first_value('SELECT data FROM anemone_storage WHERE key = ?', url.to_s)
  if value
    Marshal.load(value)
  end
end
[]=(url, value) click to toggle source
# File lib/anemone/storage/sqlite3.rb, line 24
def []=(url, value)
  data = Marshal.dump(value)
  if has_key?(url)
    @db.execute('UPDATE anemone_storage SET data = ? WHERE key = ?', data, url.to_s)
  else
    @db.execute('INSERT INTO anemone_storage (data, key) VALUES(?, ?)', data, url.to_s)
  end
end
close() click to toggle source
# File lib/anemone/storage/sqlite3.rb, line 63
def close
  @db.close
end
delete(url) click to toggle source
# File lib/anemone/storage/sqlite3.rb, line 33
def delete(url)
  page = self[url]
  @db.execute('DELETE FROM anemone_storage WHERE key = ?', url.to_s)
  page
end
each() click to toggle source
# File lib/anemone/storage/sqlite3.rb, line 39
def each
  @db.execute("SELECT key, data FROM anemone_storage ORDER BY id") do |row|
    value = Marshal.load(row[1])
    yield row[0], value
  end
end
has_key?(url) click to toggle source
# File lib/anemone/storage/sqlite3.rb, line 59
def has_key?(url)
  !!@db.get_first_value('SELECT id FROM anemone_storage WHERE key = ?', url.to_s)
end
keys() click to toggle source
# File lib/anemone/storage/sqlite3.rb, line 55
def keys
  @db.execute("SELECT key FROM anemone_storage ORDER BY id").map{|t| t[0]}
end
merge!(hash) click to toggle source
# File lib/anemone/storage/sqlite3.rb, line 46
def merge!(hash)
  hash.each { |key, value| self[key] = value }
  self
end
size() click to toggle source
# File lib/anemone/storage/sqlite3.rb, line 51
def size
  @db.get_first_value('SELECT COUNT(id) FROM anemone_storage')
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.