Module: Mongoid::Silo::ClassMethods

Defined in:
lib/mongoid/silo.rb

Instance Method Summary collapse

Instance Method Details

#silo(name = :default, opts = {}) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/mongoid/silo.rb', line 8

def silo name=:default, opts={}
  opts = if block_given?
    opts = ActiveSupport::OrderedOptions.new
    opts.dependents = []
    opts.callback = nil
    yield(opts)
    opts.generator ||= "MongoidSilo::GrainBelt"
    opts
  else
    opts[:generator] ||= "MongoidSilo::GrainBelt"
    opts[:dependents] = []
    opts[:callback] = nil
    opts
  end
  setup_own_silo name, opts
  if opts[:dependents].length != 0
    setup_listeners name, opts[:dependents], opts[:generator], opts[:callback]
  end
end