Class: Promiscuous::Subscriber::Observer

Inherits:
Base
  • Object
show all
Includes:
AMQP, Attributes, Class, Envelope, Polymorphic
Defined in:
lib/promiscuous/subscriber/observer.rb

Instance Attribute Summary

Attributes inherited from Base

#options

Class Method Summary collapse

Instance Method Summary collapse

Methods included from AMQP

subscriber_from

Methods included from Class

#instance

Methods inherited from Base

#initialize, #payload, #should_update_parent?, #subscribe_options

Constructor Details

This class inherits a constructor from Promiscuous::Subscriber::Base

Class Method Details

.subscribe(options) ⇒ Object



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

def self.subscribe(options)
  super
  raise "#{klass} must inherit from Promiscuous::Observer" unless klass < Promiscuous::Observer

  use_payload_attribute :id
  use_payload_attribute :operation, :symbolize => true
end

Instance Method Details

#fetchObject



8
9
10
# File 'lib/promiscuous/subscriber/observer.rb', line 8

def fetch
  klass.new.tap { |o| o.id = id if o.respond_to?(:id=) }
end

#processObject



12
13
14
15
# File 'lib/promiscuous/subscriber/observer.rb', line 12

def process
  super
  instance.run_callbacks operation
end

#process_attributes?Boolean

XXX destroy callbacks will not set attributes (they are not sent)

Returns:

  • (Boolean)


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

def process_attributes?
  operation != :destroy
end