Module: Mongoid::Silo

Extended by:
ActiveSupport::Concern
Defined in:
lib/mongoid/silo.rb

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#destroy_silo(name, callback) ⇒ Object



76
77
78
# File 'lib/mongoid/silo.rb', line 76

def destroy_silo name, callback
  MongoidSilo::UpdateSiloWorker.perform_async(self.id.to_s, self.class.to_s, name, :destroy, callback)
end

#from_silo(name = "default") ⇒ Object



80
81
82
83
84
85
86
87
88
89
90
91
92
# File 'lib/mongoid/silo.rb', line 80

def from_silo name="default"
  if @bag && @bag[name]
    @bag[name]
  else
    @bag = {}
    @bag[name] ||= begin
      silo = ::Silo.where(item_class: self.class.to_s, item_id: self.id.to_s, silo_type: name).first
      silo.bag
    rescue Mongoid::Errors::DocumentNotFound
      {}
    end
  end
end

#json_from_siloObject



94
95
96
# File 'lib/mongoid/silo.rb', line 94

def json_from_silo
  MultiJson.encode from_silo
end

#update_silo(name, generator, callback) ⇒ Object



72
73
74
# File 'lib/mongoid/silo.rb', line 72

def update_silo name, generator, callback
  MongoidSilo::UpdateSiloWorker.perform_async(self.id.to_s, self.class.to_s, name, :save, generator, callback)
end