Module: Happn
- Defined in:
- lib/happn.rb,
lib/happn/event.rb,
lib/happn/query.rb,
lib/happn/version.rb,
lib/happn/projector.rb,
lib/happn/subscription.rb,
lib/happn/configuration.rb,
lib/happn/event_consumer.rb,
lib/happn/subscription_repository.rb
Defined Under Namespace
Classes: Configuration, Event, EventConsumer, Projector, Query, Subscription, SubscriptionRepository
Constant Summary
collapse
- VERSION =
"1.1.0"
Class Method Summary
collapse
Class Method Details
.config ⇒ Object
16
17
18
|
# File 'lib/happn.rb', line 16
def self.config
@configuration
end
|
12
13
14
|
# File 'lib/happn.rb', line 12
def self.configure
yield @configuration ||= Happn::Configuration.new
end
|
.create_queue_only ⇒ Object
35
36
37
38
|
# File 'lib/happn.rb', line 35
def self.create_queue_only
Happn.init
@event_consumer.wait_until_connected
end
|
.init ⇒ Object
24
25
26
27
28
29
|
# File 'lib/happn.rb', line 24
def self.init
@logger = @configuration.logger || Logger.new(STDOUT)
subscription_repository = SubscriptionRepository.new(@logger)
Happn::register(@configuration.projector_classes, subscription_repository)
@event_consumer = EventConsumer.new(@logger, @configuration, subscription_repository)
end
|
.logger ⇒ Object
20
21
22
|
# File 'lib/happn.rb', line 20
def self.logger
@logger
end
|
.register(projector_classes, subscription_repository) ⇒ Object
62
63
64
65
66
67
68
69
|
# File 'lib/happn.rb', line 62
def self.register(projector_classes, subscription_repository)
@logger.info("#{projector_classes.size} projector are going to be registered...")
projector_classes.each do | projector_class |
projector = projector_class.new(@logger, subscription_repository)
projector.define_handlers
@logger.info("Projector '#{projector_class}' registered")
end
end
|
.start ⇒ Object
31
32
33
|
# File 'lib/happn.rb', line 31
def self.start
@event_consumer.start
end
|