Module: Promiscuous::Subscriber::Polymorphic::ClassMethods

Defined in:
lib/promiscuous/subscriber/polymorphic.rb

Instance Method Summary collapse

Instance Method Details

#from_typeObject



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

def from_type
  super ? super : guess_class_name('Subscribers')
end

#from_type=(value) ⇒ Object



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

def from_type=(value)
  super
  setup_polymorphic_mapping
end

#inherited(subclass) ⇒ Object



26
27
28
29
# File 'lib/promiscuous/subscriber/polymorphic.rb', line 26

def inherited(subclass)
  super
  subclass.setup_polymorphic_mapping unless options.has_key?(:class)
end

#polymorphic_subscriber_from(payload) ⇒ Object



31
32
33
34
# File 'lib/promiscuous/subscriber/polymorphic.rb', line 31

def polymorphic_subscriber_from(payload)
  type = payload.is_a?(Hash) ? payload['type'] : nil
  polymorphic_map[type] || self
end

#setup_polymorphic_mappingObject



21
22
23
24
# File 'lib/promiscuous/subscriber/polymorphic.rb', line 21

def setup_polymorphic_mapping
  self.polymorphic_map ||= {}
  polymorphic_map[from_type.to_s] = self if from_type
end