Class: MongoAdaptor

Inherits:
Object
  • Object
show all
Defined in:
lib/mongo_adaptor.rb,
lib/mongo_adaptor/version.rb

Constant Summary collapse

VERSION =
"2.0.0"

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, klass) ⇒ MongoAdaptor

Returns a new instance of MongoAdaptor.



16
17
18
19
# File 'lib/mongo_adaptor.rb', line 16

def initialize name, klass
  @collection = self.class.db.collection name.to_s.downcase
  @klass = klass
end

Class Method Details

.dbObject



7
8
9
# File 'lib/mongo_adaptor.rb', line 7

def db
  @db ||= Mongo::Configure.current.load
end

.db=(db) ⇒ Object



11
12
13
# File 'lib/mongo_adaptor.rb', line 11

def db= db
  @db = db
end

Instance Method Details

#execute(query_or_model, command, options = {}) ⇒ Object



33
34
35
36
37
38
39
40
# File 'lib/mongo_adaptor.rb', line 33

def execute query_or_model, command, options = {}
  if query_or_model.is_a? Hash
    query = query_or_model
  else
    query = { "_id" => query_or_model.id }
  end
  @collection.update_one query, command, safe_mode.merge(upsert_mode false).merge(options)
end

#fetch(selector = {}, opts = {}) ⇒ Object



42
43
44
# File 'lib/mongo_adaptor.rb', line 42

def fetch selector = {}, opts = {}
  build(@collection.find(selector, { :fields => fields }.merge(opts)).first)
end

#find(selector = {}, opts = {}) ⇒ Object



50
51
52
53
54
# File 'lib/mongo_adaptor.rb', line 50

def find selector = {}, opts = {}
  @collection.find(selector, { :fields => fields }.merge(opts)).map do |model|
    build model
  end
end

#insert(model) ⇒ Object



21
22
23
# File 'lib/mongo_adaptor.rb', line 21

def insert model
  @collection.insert_one process(model), safe_mode
end

#remove(selector = {}, opts = {}) ⇒ Object



46
47
48
# File 'lib/mongo_adaptor.rb', line 46

def remove selector = {}, opts = {}
  @collection.delete_many selector, opts
end

#update(model, query = { "_id" => model.id }) ⇒ Object



29
30
31
# File 'lib/mongo_adaptor.rb', line 29

def update model, query = { "_id" => model.id }
  @collection.update_one query, set(process(model)), safe_mode.merge(upsert_mode false)
end

#upsert(model, query = { "_id" => model.id }) ⇒ Object



25
26
27
# File 'lib/mongo_adaptor.rb', line 25

def upsert model, query = { "_id" => model.id }
  @collection.update_one query, set(process(model)), safe_mode.merge(upsert_mode true)
end