Module: Promiscuous::Subscriber

Defined in:
lib/promiscuous/subscriber.rb

Defined Under Namespace

Modules: AMQP, Attributes, Class, Envelope, Lint, Model, Polymorphic, Upsert Classes: ActiveRecord, Base, Error, Mongoid, Observer, Worker

Class Method Summary collapse

Class Method Details

.lint(*args) ⇒ Object



17
18
19
# File 'lib/promiscuous/subscriber.rb', line 17

def self.lint(*args)
  Lint.lint(*args)
end

.process(payload, options = {}) ⇒ Object



33
34
35
36
37
# File 'lib/promiscuous/subscriber.rb', line 33

def self.process(payload, options={})
  sub = self.subscriber_for(payload, options)
  sub.process
  sub.instance
end

.subscriber_class_for(payload) ⇒ Object



21
22
23
24
25
26
27
# File 'lib/promiscuous/subscriber.rb', line 21

def self.subscriber_class_for(payload)
  sub = AMQP.subscriber_from(payload)
  if sub && defined?(Polymorphic) && sub.include?(Polymorphic)
    sub = sub.polymorphic_subscriber_from(payload)
  end
  sub || Base
end

.subscriber_for(payload, options = {}) ⇒ Object



29
30
31
# File 'lib/promiscuous/subscriber.rb', line 29

def self.subscriber_for(payload, options={})
  self.subscriber_class_for(payload).new(options.merge(:payload => payload))
end