Sha256: 84b3acad28044705f1d6efad7feac467b578c8c953d86cce827f0d6b02f8bc90

Contents?: true

Size: 1.01 KB

Versions: 1

Compression:

Stored size: 1.01 KB

Contents

require "run_after_commit"

begin
  require "minitest"

  class RunAfterCommit::TestCase < MiniTest::Test; end 
rescue LoadError
  require "minitest/unit"

  class RunAfterCommit::TestCase < MiniTest::Unit::TestCase; end 
end

require "minitest/autorun"
require "active_record"
require "yaml"

DATABASE = ENV["DATABASE"] || "sqlite"

ActiveRecord::Base.establish_connection YAML.load_file(File.expand_path("../database.yml", __FILE__))[DATABASE]

class TestModel < ActiveRecord::Base
  include RunAfterCommit

  def after_save(&block)
    after_save_queue << block
  end

  after_save :run_after_save_queue

  def run_after_save_queue
    after_save_queue.each do |block|
      instance_eval(&block)
    end
  ensure
    clear_after_save_queue
  end

  def after_save_queue
    @after_save_queue ||= []
  end

  def clear_after_save_queue
    @after_save_queue = []
  end
end

ActiveRecord::Base.connection.execute "DROP TABLE IF EXISTS test_models"

ActiveRecord::Base.connection.create_table :test_models do |t|
  t.string :title
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
run_after_commit-0.0.1 test/test_helper.rb