ActiveRecordのプラグインテスト用クラスの作り方

こちらを見て触発されて書く。プラグイン用にARのクラスを定義する場合の話です。
http://blog.s21g.com/articles/418

アプローチが違うのはそもそも解決したい問題が違うからなので、ケースごとに両方使うといいと思います。私の場合はまるっとARクラスを定義したくなった、かつ元のRails環境は使いたくなかった(プラグインだしね)というのが理由です。

ここでのポイントはSQLite3の:memory:データベースを使っていることです。これを使うと一時ファイルも出なくてすっきり。これをvendor/plugins/my_plugin/spec/spec_helper.rbに置いて、それぞれのspecから読み込んでいます。

require 'rubygems'

# これはいらないかも。なんで書いてあるんだっけ?
RAILS_ROOT = File.expand_path("../../../../", File.dirname(__FILE__))

gem 'activerecord'
require 'active_record'

ActiveRecord::Base.establish_connection(:adapter => "sqlite3",
                                        :database => ":memory:")

ActiveRecord::Schema.define(:version => 1) do
  create_table "todos" do |t|
    t.string   "title"
    t.text     "body"
    t.timestamps
  end
end

Todo = Class.new(ActiveRecord::Base)