現在、Redmine 1.4 課題トラッカー (Rails 2.3.14 と Ruby 1.8.7 を使用) からいくつかの機能を拡張しています。
現在のユース ケースであまり気に入らない点の 1 つは、ビジネス ロジック (ロール、ワークフロー) をカプセル化する一部のクラスが、コード ベースではなくデータベース ベースであることです。必要なロールとワークフローを使用して、事前に作成された db データのセットをプリロードすることもできますが、それでも保守性のために最善ではないソリューションになると思います。
私がやりたいことは次のようなものです:
class Person < SomeInMemoryActiveRecordBaseClass
end
p = Person.new(:name => "Somebody)
p.save
次に、背後に実際のデータベースがなくても、任意の Person オブジェクトおよび Person クラスから ActiveRecord メソッドを呼び出せるようにしたいと考えています。
これはばかげたことのように思えるかもしれません (プロジェクトをゼロから作成する場合、AR ベースのオブジェクトは使用しないでしょうが、既に存在するものの上に構築しているので、これはオプションではありません)。インメモリで作業する必要があり、多くの場所で使用されており、AR ベースであると想定されています。どこでも使用法を変更すると、本当に時間がかかります。
nulldbのようなプロジェクトをいくつか見てきましたが、これらはテスト指向であり、プロダクション指向ではなく、すべてのメソッドを実装しているわけではありません。それに加えて、AR インターフェースはかなり SQL 指向のようで、SQL エミュレーション レイヤーを「正しく」取得することが本当に実現可能かどうかはわかりません。
完全に機能するアクティブレコードのメモリ内データベースを作成する私のユースケースに適したライブラリはありますか?
(私はすでに別の接続を使用してインメモリsqlite dbを活用することを考えていましたが、私には少し過剰に設計されているようです).