Sha256: 2033adf5d509f48aece107832c8d13640eed639435413b04c57b57c599d7db08

Contents?: true

Size: 1.27 KB

Versions: 1

Compression:

Stored size: 1.27 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?
  ensure
    disable_test_mode_subscriber klass
  end
end

# Temporarily avoid Rails 4.2.0 deprecation warning
if ActiveRecord::VERSION::STRING > '4.2'
  ActiveRecord::Base.raise_in_transactional_callbacks = true
end

ActiveRecord::Base.send(:include, Reactor::Publishable)
ActiveRecord::Base.send(:include, Reactor::Subscribable)

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
reactor-0.12.2 lib/reactor.rb