Sha256: ece7ad0be19c59624daede640ff0a978e010cecd8683ee641dbfd3f6eb6f4c2f
Contents?: true
Size: 1 KB
Versions: 2
Compression:
Stored size: 1 KB
Contents
module Casino class Store attr_accessor :collection_name delegate :drop, :find, :indexes, :insert, to: :collection delegate :count, :distinct, :each, :first, :limit, :remove, :remove_all, :select, :skip, :sort, :update, :update_all, :upsert, to: :query delegate :where, :in, to: :criteria def initialize(collection_name) self.collection_name = collection_name end def collection @collection ||= session[collection_name.to_sym] end def query @query ||= collection.find end def merge(*documents) documents.each do |document| criteria = find _id: document['_id'] criteria.upsert document end end def criteria @criteria ||= build_criteria end private def session @session ||= Mongoid.default_session end def build_criteria klass = Class.new klass.send(:include, Mongoid::Document) klass.store_in collection: collection_name klass.scoped end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
mongoid-casino-0.0.2 | lib/casino/store.rb |
mongoid-casino-0.0.1 | lib/casino/store.rb |