Module: Promiscuous::Subscriber::Attributes

Extended by:
ActiveSupport::Concern
Included in:
ActiveRecord, Mongoid, Observer
Defined in:
lib/promiscuous/subscriber/attributes.rb

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#processObject



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/promiscuous/subscriber/attributes.rb', line 4

def process
  super
  return unless process_attributes?

  self.class.attributes.each do |attr|
    attr = attr.to_s
    unless payload.has_key?(attr)
      raise "Attribute '#{attr}' is missing from the payload"
    end

    options = {}
    options[:parent]    = instance
    options[:old_value] = instance.__send__(attr) if instance.respond_to?(attr)
    sub = Promiscuous::Subscriber.subscriber_for(payload[attr], options)

    sub.process
    instance.__send__("#{attr}=", sub.instance) if sub.should_update_parent?
  end
end

#process_attributes?Boolean

Returns:

  • (Boolean)


24
25
26
# File 'lib/promiscuous/subscriber/attributes.rb', line 24

def process_attributes?
  true
end