Sha256: 84c1b267bb3fb5b6b13740ed7a943f86314b5320ba7f8a400738f7bef429fcc6

Contents?: true

Size: 945 Bytes

Versions: 3

Compression:

Stored size: 945 Bytes

Contents

require "active_record"
require "active_support/hash_with_indifferent_access"
require "action_mailer"

require "reactor/version"
require "reactor/errors"
require "reactor/static_subscribers"
require "reactor/workers"
require "reactor/subscription"
require "reactor/models"
require "reactor/controllers"
require "reactor/event"

# FIXME: should only be included in test environments
require "reactor/testing"

module Reactor
  SUBSCRIBERS = {}.with_indifferent_access

  module_function

  def subscribers
    SUBSCRIBERS
  end

  def add_subscriber(event_name, worker_class)
    subscribers[event_name] ||= []
    subscribers[event_name] << worker_class
  end

  def subscribers_for(event_name)
    Array(subscribers[event_name]) + Array(subscribers['*'])
  end

  def subscriber_namespace
    Reactor::StaticSubscribers
  end
end

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

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
reactor-0.15.1 lib/reactor.rb
reactor-0.15.0 lib/reactor.rb
reactor-0.14.0 lib/reactor.rb