Sha256: d20cafafe59e7646eac42fd4abd5e2381da53741576a93fd40c0cda4413e2b50
Contents?: true
Size: 1.22 KB
Versions: 4
Compression:
Stored size: 1.22 KB
Contents
require 'helper' module CallbackHelper extend ActiveSupport::Concern included do [ :before_create, :after_create, :before_update, :after_update, :before_save, :after_save, :before_destroy, :after_destroy].each do |callback| callback_method = "#{callback}_callback" send(callback, callback_method) define_method(callback_method) { history << callback.to_sym } end end def history @history ||= [] end def clear_history @history = nil end end describe Toy::Callbacks do uses_constants('Game') context "regular" do before do Game.send(:include, CallbackHelper) end it "runs callbacks in correct order for create" do doc = Game.create doc.history.should == [:before_save, :before_create, :after_create, :after_save] end it "runs callbacks in correct order for update" do doc = Game.create doc.clear_history doc.save doc.history.should == [:before_save, :before_update, :after_update, :after_save] end it "runs callbacks in correct order for destroy" do doc = Game.create doc.clear_history doc.destroy doc.history.should == [:before_destroy, :after_destroy] end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
toystore-0.10.2 | spec/toy/callbacks_spec.rb |
toystore-0.10.1 | spec/toy/callbacks_spec.rb |
toystore-0.10.0 | spec/toy/callbacks_spec.rb |
toystore-0.9.0 | spec/toy/callbacks_spec.rb |