非常に単純な解決策は、Rubyの標準ライブラリのPStoreです。ほぼすべての要件を満たす必要があります。
- PStoreはRubyオブジェクト階層をファイルに格納するため、CouchDBの場合と同じようにハッシュのような構造を簡単に使用できます。
- シンプルなAPIでPStoreのコンテンツにアクセスできます
- トランザクションはありますが、私の知る限りバージョンはありません
- はい
- Rubyのマップおよびインジェクト関数を使用できます
- 必要なのはファイルシステムへのアクセスだけです
例:
ストアにデータを挿入します。
require 'pstore'
store = PStore.new("/tmp/store")
store.transaction do
store["products"] = [{:name => "Test", :price => 100}
{:name => "Bla", :price => 120}
{:name => "Oink", :price => 300}]
end
すべての製品の価格の合計を照会します。
store.transaction do
store['products'].map {|p| p[:price]}.inject {|sum, p| sum + p}
end
このブログ投稿の詳細情報