lib/reactor.rb in reactor-0.6.2 vs lib/reactor.rb in reactor-0.7.0

- old
+ new

@@ -1,15 +1,50 @@ require "reactor/version" require "reactor/models/concerns/publishable" require "reactor/models/concerns/subscribable" require "reactor/models/concerns/optionally_subclassable" require "reactor/models/subscriber" +require "reactor/controllers/concerns/resource_actionable" require "reactor/event" module Reactor SUBSCRIBERS = {} + TEST_MODE_SUBSCRIBERS = Set.new + @@test_mode = false + module StaticSubscribers end + + def self.test_mode? + @@test_mode + end + + def self.test_mode! + @@test_mode = true + end + + def self.disable_test_mode! + @@test_mode = false + end + + def self.in_test_mode + test_mode! + (yield if block_given?).tap { disable_test_mode! } + end + + def self.enable_test_mode_subscriber(klass) + TEST_MODE_SUBSCRIBERS << klass + end + + def self.disable_test_mode_subscriber(klass) + TEST_MODE_SUBSCRIBERS.delete klass + end + + def self.with_subscriber_enabled(klass) + enable_test_mode_subscriber klass + yield if block_given? + disable_test_mode_subscriber klass + end end ActiveRecord::Base.send(:include, Reactor::Publishable) -ActiveRecord::Base.send(:include, Reactor::Subscribable) \ No newline at end of file +ActiveRecord::Base.send(:include, Reactor::Subscribable)