Class: Promiscuous::Subscriber::Mongoid

Inherits:
Generic show all
Defined in:
lib/promiscuous/subscriber/mongoid.rb

Defined Under Namespace

Modules: Embedded, Root, Upsert

Instance Attribute Summary

Attributes inherited from Base

#options

Class Method Summary collapse

Methods included from AMQP

subscriber_for

Methods included from Polymorphic

#klass

Methods included from Attributes

#process, #process_attributes?

Methods included from CustomClass

#instance, #klass

Methods inherited from Base

#initialize, #payload, #process, #subscribe_options, use_option

Constructor Details

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

Class Method Details

.subscribe(options) ⇒ Object



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

def self.subscribe(options)
  return super if options[:mongoid_loaded]

  klass = options[:class]
  klass = options[:classes].values.first if klass.nil?

  if klass.embedded?
    require 'promiscuous/subscriber/mongoid/embedded'
    include Promiscuous::Subscriber::Mongoid::Embedded
  else
    require 'promiscuous/subscriber/mongoid/root'
    include Promiscuous::Subscriber::Mongoid::Root

    if options[:upsert]
      require 'promiscuous/subscriber/mongoid/upsert'
      include Promiscuous::Subscriber::Mongoid::Upsert
    end
  end

  self.subscribe(options.merge(:mongoid_loaded => true))
end