材料

本体 leveldb – A fast and lightweight key/value database library by Google. – Google Project Hosting
rubygem wmorgan/leveldb-ruby · GitHub


インストール


brew install leveldb
brew uninstall snappy
gem install leveldb-ruby
Macだと、homebrewの依存で入るsnappyがあるとエラーがでるのでアンインストールした。

dyld: lazy symbol binding failed: Symbol not found: __ZN6snappy19MaxCompressedLengthEm
Referenced from: /Users/sho/.rvm/gems/ruby-1.9.2-p320/gems/leveldb-ruby-0.15/lib/leveldb/leveldb.bundle
Expected in: flat namespace

dyld: Symbol not found: __ZN6snappy19MaxCompressedLengthEm
Referenced from: /Users/sho/.rvm/gems/ruby-1.9.2-p320/gems/leveldb-ruby-0.15/lib/leveldb/leveldb.bundle
Expected in: flat namespace


試す


memo.rb
#!/usr/bin/env ruby
require 'rubygems'
require 'leveldb'

db = LevelDB::DB.new File.expand_path 'memo.ldb', File.dirname(__FILE__)

case ARGV.size
when 0
db.each do |k,v|
puts "#{k} : #{v}"
end
puts "(#{db.keys.size} items)"
when 1
puts db[ARGV[0]]
when 2
k,v = ARGV[0..1]
db[k] = v
puts "#{k} = #{v}"
end



keyもvalueも文字列しか入らなかった。