Sha256: 1e0ae5fda6d2df0e66abd1ba89c53d76bccc9c971e93b366909288af03a25131

Contents?: true

Size: 1.1 KB

Versions: 12

Compression:

Stored size: 1.1 KB

Contents

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)

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
reactor-0.9.6 lib/reactor.rb
reactor-0.9.5 lib/reactor.rb
reactor-0.9.4 lib/reactor.rb
reactor-0.9.2 lib/reactor.rb
reactor-0.9.1 lib/reactor.rb
reactor-0.9.0 lib/reactor.rb
reactor-0.8.3 lib/reactor.rb
reactor-0.8.2 lib/reactor.rb
reactor-0.8.1 lib/reactor.rb
reactor-0.8.0 lib/reactor.rb
reactor-0.7.1 lib/reactor.rb
reactor-0.7.0 lib/reactor.rb