motivation:

environment/requirements:

code:

[sourcecode lang=“ruby”] require ‘rubygems’ require ‘sqlite3’ class Storage def self.init db = SQLite3::Database.new( ‘sqlite’ ) db.execute( %{ CREATE TABLE foo (key varchar(100) PRIMARY KEY, value varchar(1000), modified timestamp(20)) } ) end def self.get(key) db = SQLite3::Database.new( ‘sqlite’ ) db.get_first_row( %{ SELECT * FROM foo WHERE key=’#{key}’ } ) end def self.set(key, val) db = SQLite3::Database.new( ‘sqlite’ ) result = db.execute( %{ REPLACE INTO foo (key, value, modified) VALUES (’%s’, ‘%s’, %d) } % [key, val, Time.now.to_i] ) end end [/sourcecode]

usage:

[sourcecode lang=“ruby”] require ‘rubygems’ require ‘sqlite3’ require ‘json’ … # init table once (anyone have a table detection query?) Storage.init … # put data in value = {:foo => ‘bar’} Storage.set( ‘123’, value.to_json ) … # get data out row = Storage.get( ‘123’ ) … [/sourcecode]