2

現在、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を活用することを考えていましたが、私には少し過剰に設計されているようです).

4

0 に答える 0