motivation:
- I just like having a place to store blobs of data on my local machine
environment/requirements:
- Mac os x 10.5.8
- ruby 1.8.6 (2008-08-11 patchlevel 287) [universal-darwin9.0]
- SQLite3
- sqlite3-ruby (1.2.1) gem
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]