Class: Lolita::Adapter::Mongoid

Inherits:
Object
  • Object
show all
Includes:
AbstractAdapter
Defined in:
lib/lolita/adapter/mongoid.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(dbi) ⇒ Mongoid

Returns a new instance of Mongoid.



7
8
9
10
# File 'lib/lolita/adapter/mongoid.rb', line 7

def initialize(dbi)
  @dbi=dbi
  @klass=dbi.klass
end

Instance Attribute Details

#dbiObject (readonly)

Returns the value of attribute dbi.



6
7
8
# File 'lib/lolita/adapter/mongoid.rb', line 6

def dbi
  @dbi
end

#klassObject (readonly)

Returns the value of attribute klass.



6
7
8
# File 'lib/lolita/adapter/mongoid.rb', line 6

def klass
  @klass
end

Instance Method Details

#association_class_name(association) ⇒ Object



44
45
46
# File 'lib/lolita/adapter/mongoid.rb', line 44

def association_class_name(association)
  association.class_name
end

#association_macro(association) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/lolita/adapter/mongoid.rb', line 28

def association_macro(association)
  macro=association.macro
  case macro
  when :references_many
    :many
  when :referenced_in
    :one
  when :embeds_one
    :one
  when :embeds_many
    :many
  when :references_one
    :one
  end
end

#associationsObject



12
13
14
# File 'lib/lolita/adapter/mongoid.rb', line 12

def associations
  klass.relations
end

#associations_class_namesObject



16
17
18
19
20
21
22
# File 'lib/lolita/adapter/mongoid.rb', line 16

def associations_class_names
  names=[]
  associations.each{|name,association|
    names<<association.class_name
  }
  names
end

#collectionObject



75
76
77
# File 'lib/lolita/adapter/mongoid.rb', line 75

def collection
  self.klass.collection
end

#collection_nameObject



79
80
81
# File 'lib/lolita/adapter/mongoid.rb', line 79

def collection_name
  collection.name
end

#collection_namesObject



87
88
89
# File 'lib/lolita/adapter/mongoid.rb', line 87

def collection_names
  db.collection_names
end

#collectionsObject



83
84
85
# File 'lib/lolita/adapter/mongoid.rb', line 83

def collections
  db.collections
end

#dbObject



67
68
69
# File 'lib/lolita/adapter/mongoid.rb', line 67

def db
  self.klass.db
end

#db_nameObject



71
72
73
# File 'lib/lolita/adapter/mongoid.rb', line 71

def db_name
  self.klass.db.name
end

#fieldsObject



48
49
50
51
52
53
# File 'lib/lolita/adapter/mongoid.rb', line 48

def fields
  @fields||=self.klass.fields.collect{|name,field|
    name[0] == '_' ? nil : field_to_hash(name,field)
  }.compact
  @fields
end

#find(*args) ⇒ Object



59
60
61
# File 'lib/lolita/adapter/mongoid.rb', line 59

def find *args
  self.klass.find(*args)
end

#find_by_id(id) ⇒ Object



55
56
57
# File 'lib/lolita/adapter/mongoid.rb', line 55

def find_by_id(id)
  self.klass.where(:_id=>id).first
end

#paginate(options = {}) ⇒ Object



63
64
65
# File 'lib/lolita/adapter/mongoid.rb', line 63

def paginate(options={})
  self.klass.paginate(options)
end

#reflect_on_association(name) ⇒ Object



24
25
26
# File 'lib/lolita/adapter/mongoid.rb', line 24

def reflect_on_association(name)
  klass.reflect_on_association(name)
end