Module: Ribbon::EventBus::Publishers
- Defined in:
- lib/ribbon/event_bus/publishers.rb,
lib/ribbon/event_bus/publishers/publisher.rb,
lib/ribbon/event_bus/publishers/proc_publisher.rb,
lib/ribbon/event_bus/publishers/resque_publisher.rb,
lib/ribbon/event_bus/publishers/remote_resque_publisher.rb,
lib/ribbon/event_bus/publishers/subscriptions_publisher.rb
Defined Under Namespace
Classes: ProcPublisher, Publisher, RemoteResquePublisher, ResquePublisher, SubscriptionsPublisher
Class Method Summary
collapse
Class Method Details
._load_for_instance(instance, publishers) ⇒ Object
20
21
22
|
# File 'lib/ribbon/event_bus/publishers.rb', line 20
def _load_for_instance(instance, publishers)
publishers.map { |publisher| _load_with_args(publisher, instance) }
end
|
._load_from_proc(publisher_proc) ⇒ Object
48
49
50
|
# File 'lib/ribbon/event_bus/publishers.rb', line 48
def _load_from_proc(publisher_proc)
ProcPublisher.new(&publisher_proc)
end
|
._load_from_string(publisher_name) ⇒ Object
42
43
44
45
46
|
# File 'lib/ribbon/event_bus/publishers.rb', line 42
def _load_from_string(publisher_name)
const_get((publisher_name.split('_').map(&:capitalize) + ['Publisher']).join)
rescue NameError
raise Errors::InvalidPublisherNameError, publisher_name
end
|
._load_with_args(publisher, *args) ⇒ Object
24
25
26
27
28
29
30
31
|
# File 'lib/ribbon/event_bus/publishers.rb', line 24
def _load_with_args(publisher, *args)
case publisher
when Array
_load_with_args(publisher[0], *(args + publisher[1..-1]))
else
load(publisher).new(*args)
end
end
|
.load(publisher) ⇒ Object
33
34
35
36
37
38
39
40
|
# File 'lib/ribbon/event_bus/publishers.rb', line 33
def load(publisher)
case publisher
when String, Symbol then _load_from_string(publisher.to_s)
when Proc then _load_from_proc(publisher)
when Publisher then publisher
else raise Errors::InvalidPublisherError, publisher.inspect
end
end
|
.load_for_instance(instance) ⇒ Object
15
16
17
18
|
# File 'lib/ribbon/event_bus/publishers.rb', line 15
def load_for_instance(instance)
config = instance.config
config.publish_to? ? _load_for_instance(instance, config.publish_to) : []
end
|