Module: ActivePubsub

Defined in:
lib/active_pubsub.rb,
lib/active_pubsub/event.rb,
lib/active_pubsub/config.rb,
lib/active_pubsub/logging.rb,
lib/active_pubsub/railtie.rb,
lib/active_pubsub/version.rb,
lib/active_pubsub/settings.rb,
lib/active_pubsub/publisher.rb,
lib/active_pubsub/connection.rb,
lib/active_pubsub/subscriber.rb,
lib/active_pubsub/publishable.rb,
lib/active_pubsub/subscribe_to_changes.rb,
lib/active_pubsub/publish_with_serializer.rb

Defined Under Namespace

Modules: Logging, PublishWithSerializer, Publishable, Settings, SubscribeToChanges Classes: Config, Connection, Event, Publisher, Railtie, Subscriber

Constant Summary collapse

VERSION =
"0.0.9"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.configurationObject Also known as: config

Returns the value of attribute configuration.



16
17
18
# File 'lib/active_pubsub.rb', line 16

def configuration
  @configuration
end

Class Method Details

.configure {|configuration| ... } ⇒ Object

Yields:



24
25
26
27
28
# File 'lib/active_pubsub.rb', line 24

def self.configure
  yield(configuration)

  ::ActiveSupport.run_load_hooks(:active_pubsub, self)
end

.disable_publisher!Object



30
31
32
# File 'lib/active_pubsub.rb', line 30

def self.disable_publisher!
  configuration.disable_publisher = true
end

.load_subscribersObject



34
35
36
# File 'lib/active_pubsub.rb', line 34

def self.load_subscribers
  ::Dir.glob(::Rails.root.join('app', 'subscribers', "*.rb")).each{ |file| load file }
end

.loggerObject



38
39
40
# File 'lib/active_pubsub.rb', line 38

def self.logger
  configuration.logger
end

.logger?Boolean

Returns:

  • (Boolean)


42
43
44
# File 'lib/active_pubsub.rb', line 42

def self.logger?
  configuration.logger.present?
end

.publisherObject



46
47
48
# File 'lib/active_pubsub.rb', line 46

def self.publisher
  ::Celluloid::Actor[:rabbit_publisher]
end

.publisher_disabled?Boolean

Returns:

  • (Boolean)


50
51
52
# File 'lib/active_pubsub.rb', line 50

def self.publisher_disabled?
  configuration.publisher_disabled
end

.start_publisherObject



54
55
56
# File 'lib/active_pubsub.rb', line 54

def self.start_publisher
  ::ActivePubsub::Publisher.start unless ::ActivePubsub::Publisher.started?
end

.start_subscribersObject



58
59
60
61
62
63
64
65
66
67
# File 'lib/active_pubsub.rb', line 58

def self.start_subscribers
  ::ActivePubsub::Subscriber.subclasses.each do |subscriber|
    next if subscriber.started?

    ::ActivePubsub.logger.info("Starting #{subscriber.name}")

    subscriber.bind_subscriptions!
    subscriber.print_subscriptions!
  end
end

.symbolize_routing_key(routing_key) ⇒ Object



69
70
71
# File 'lib/active_pubsub.rb', line 69

def self.symbolize_routing_key(routing_key)
  :"#{routing_key.split('.').join('_')}"
end