dm-mongo-adapter 0.2.0.pre3 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile +27 -0
- data/README.rdoc +16 -35
- data/Rakefile +6 -16
- data/VERSION.yml +2 -2
- data/dm-mongo-adapter.gemspec +100 -121
- data/lib/mongo_adapter.rb +19 -62
- data/lib/mongo_adapter/adapter.rb +49 -36
- data/lib/mongo_adapter/conditions.rb +0 -5
- data/lib/mongo_adapter/migrations.rb +17 -23
- data/lib/mongo_adapter/model.rb +3 -74
- data/lib/mongo_adapter/modifier.rb +1 -1
- data/lib/mongo_adapter/property/array.rb +10 -0
- data/lib/mongo_adapter/property/db_ref.rb +17 -0
- data/lib/mongo_adapter/property/hash.rb +27 -0
- data/lib/mongo_adapter/property/object_id.rb +47 -0
- data/lib/mongo_adapter/query.rb +42 -45
- data/lib/mongo_adapter/rails/storage.rb +15 -0
- data/lib/mongo_adapter/resource.rb +0 -130
- data/lib/mongo_adapter/support/class.rb +11 -0
- data/lib/mongo_adapter/support/date.rb +11 -0
- data/lib/mongo_adapter/support/date_time.rb +12 -0
- data/lib/mongo_adapter/support/object.rb +9 -0
- data/spec/legacy/adapter_spec.rb +9 -6
- data/spec/legacy/associations_spec.rb +37 -29
- data/spec/legacy/property_spec.rb +4 -3
- data/spec/legacy/sti_spec.rb +1 -2
- data/spec/lib/cleanup_models.rb +0 -1
- data/spec/public/aggregates_spec.rb +171 -0
- data/spec/public/model_spec.rb +8 -22
- data/spec/public/modifier_spec.rb +109 -0
- data/spec/public/properties/db_ref_spec.rb +17 -0
- data/spec/public/properties/object_id_spec.rb +15 -0
- data/spec/public/resource_spec.rb +2 -383
- data/spec/public/shared/object_id_shared_spec.rb +16 -39
- data/spec/spec_helper.rb +0 -4
- metadata +87 -117
- data/.gitignore +0 -9
- data/lib/mongo_adapter/embedded_model.rb +0 -187
- data/lib/mongo_adapter/embedded_resource.rb +0 -134
- data/lib/mongo_adapter/embedments/one_to_many.rb +0 -144
- data/lib/mongo_adapter/embedments/one_to_one.rb +0 -57
- data/lib/mongo_adapter/embedments/relationship.rb +0 -258
- data/lib/mongo_adapter/model/embedment.rb +0 -215
- data/lib/mongo_adapter/types/date.rb +0 -24
- data/lib/mongo_adapter/types/date_time.rb +0 -28
- data/lib/mongo_adapter/types/db_ref.rb +0 -65
- data/lib/mongo_adapter/types/discriminator.rb +0 -32
- data/lib/mongo_adapter/types/object_id.rb +0 -72
- data/lib/mongo_adapter/types/objects.rb +0 -31
- data/spec/legacy/embedded_resource_spec.rb +0 -157
- data/spec/legacy/embedments_spec.rb +0 -177
- data/spec/legacy/modifier_spec.rb +0 -81
- data/spec/public/embedded_collection_spec.rb +0 -61
- data/spec/public/embedded_resource_spec.rb +0 -220
- data/spec/public/model/embedment_spec.rb +0 -186
- data/spec/public/shared/model_embedments_spec.rb +0 -338
- data/spec/public/types/df_ref_spec.rb +0 -6
- data/spec/public/types/discriminator_spec.rb +0 -118
- data/spec/public/types/embedded_array_spec.rb +0 -55
- data/spec/public/types/embedded_hash_spec.rb +0 -83
- data/spec/public/types/object_id_spec.rb +0 -6
- data/spec/semipublic/embedded_model_spec.rb +0 -43
- data/spec/semipublic/model/embedment_spec.rb +0 -42
- data/spec/semipublic/resource_spec.rb +0 -70
data/Gemfile
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
source 'http://rubygems.org'
|
2
|
+
|
3
|
+
group :runtime do
|
4
|
+
MONGO_VERSION = '~> 1.2.4'
|
5
|
+
|
6
|
+
# MongoDB driver
|
7
|
+
gem 'mongo', MONGO_VERSION
|
8
|
+
|
9
|
+
# DataMapper libs
|
10
|
+
DM_VERSION = '~> 1.1.0'
|
11
|
+
|
12
|
+
gem 'dm-core', DM_VERSION
|
13
|
+
gem 'dm-aggregates', DM_VERSION
|
14
|
+
gem 'dm-migrations', DM_VERSION
|
15
|
+
end
|
16
|
+
|
17
|
+
group :development do
|
18
|
+
gem 'rake'
|
19
|
+
gem 'rcov'
|
20
|
+
gem 'rspec', '~> 1.3'
|
21
|
+
gem 'jeweler', '~> 1.5.1'
|
22
|
+
gem 'yard', '~> 0.5'
|
23
|
+
end
|
24
|
+
|
25
|
+
group :quality do
|
26
|
+
gem 'yardstick', '~> 0.1'
|
27
|
+
end
|
data/README.rdoc
CHANGED
@@ -1,5 +1,16 @@
|
|
1
1
|
= DataMapper MongoDB Adapter
|
2
2
|
|
3
|
+
== Status
|
4
|
+
|
5
|
+
The adapter is going through a major re-work as DataMapper will soon support EmbeddedValue (see: http://wiki.github.com/datamapper/dm-core/roadmap)
|
6
|
+
and the adapter will significantly benefit from that fact as there won't be a need to hack around DM's private API like
|
7
|
+
it used to be. Apart from embedded docs support there's plenty of work that needs to be done around MongoDB's modifier
|
8
|
+
operators (http://www.mongodb.org/display/DOCS/Updating). With these things done we can start thinking about releasing 1.0.
|
9
|
+
|
10
|
+
Contributors are most welcome! In case of any questions you can find me on #datamapper IRC channel.
|
11
|
+
|
12
|
+
solnic
|
13
|
+
|
3
14
|
Useful links:
|
4
15
|
|
5
16
|
* http://github.com/solnic/dm-mongo-adapter
|
@@ -10,13 +21,13 @@ Useful links:
|
|
10
21
|
|
11
22
|
Ruby gems
|
12
23
|
|
13
|
-
* dm-core ~>
|
14
|
-
* dm-aggregates ~>
|
15
|
-
* mongo ~>
|
24
|
+
* dm-core ~> 1.1.0
|
25
|
+
* dm-aggregates ~> 1.1.0
|
26
|
+
* mongo ~> 1.2.4
|
16
27
|
|
17
28
|
== Install
|
18
29
|
|
19
|
-
gem install dm-mongo-adapter
|
30
|
+
gem install dm-mongo-adapter
|
20
31
|
|
21
32
|
== Synopsis
|
22
33
|
|
@@ -25,35 +36,13 @@ Ruby gems
|
|
25
36
|
:database => 'my_mongo_db',
|
26
37
|
)
|
27
38
|
|
28
|
-
# Define
|
29
|
-
class Address
|
30
|
-
include DataMapper::Mongo::EmbeddedResource
|
31
|
-
|
32
|
-
property :street, String
|
33
|
-
property :city, String
|
34
|
-
property :state, String
|
35
|
-
property :postal_code, String
|
36
|
-
end
|
37
|
-
|
38
|
-
class Score
|
39
|
-
include DataMapper::Mongo::EmbeddedResource
|
40
|
-
|
41
|
-
property :grade, Float
|
42
|
-
property :course_id, DBRef
|
43
|
-
|
44
|
-
belongs_to :course
|
45
|
-
end
|
46
|
-
|
47
|
-
# Define top-level resources
|
39
|
+
# Define resources
|
48
40
|
class Student
|
49
41
|
include DataMapper::Mongo::Resource
|
50
42
|
|
51
43
|
property :id, ObjectID
|
52
44
|
property :name, String
|
53
45
|
property :age, Integer
|
54
|
-
|
55
|
-
embeds 1, :address, :model => Address
|
56
|
-
embeds n, :scores
|
57
46
|
end
|
58
47
|
|
59
48
|
class Course
|
@@ -67,17 +56,9 @@ Ruby gems
|
|
67
56
|
biology = Course.create(:name => "Biology")
|
68
57
|
english = Course.create(:name => "English")
|
69
58
|
|
70
|
-
# Nested attributes
|
71
|
-
student = Student.create(:name => "John", :age => "26",
|
72
|
-
:address => { :street => "123 Main St.", :city => "New York", :state => "NY", :postal_code => "10014" },
|
73
|
-
:scores => [ { :grade => 4.0, :course_id => biology.id }, { :grade => 3.0, :course_id => english.id } ])
|
74
|
-
|
75
59
|
# Queries
|
76
60
|
Student.all(:age.gte => 20, :name => /oh/, :limit => 20, :order => [:age.asc])
|
77
61
|
|
78
|
-
# Reaching into embedded objects
|
79
|
-
Student.all(:"address.state" => "NY")
|
80
|
-
|
81
62
|
# Array and Hash as a property
|
82
63
|
class Zoo
|
83
64
|
include DataMapper::Mongo::Resource
|
data/Rakefile
CHANGED
@@ -7,22 +7,12 @@ CLOBBER.include ['pkg', '*.gem', 'doc', 'coverage', 'measurements']
|
|
7
7
|
begin
|
8
8
|
require 'jeweler'
|
9
9
|
Jeweler::Tasks.new do |gem|
|
10
|
-
gem.name
|
11
|
-
gem.summary
|
12
|
-
gem.email
|
13
|
-
gem.homepage
|
14
|
-
gem.authors
|
15
|
-
|
16
|
-
gem.has_rdoc = false
|
17
|
-
|
18
|
-
# Dependencies
|
19
|
-
gem.add_dependency 'dm-core', '~> 0.10.2'
|
20
|
-
gem.add_dependency 'dm-aggregates', '~> 0.10.2'
|
21
|
-
gem.add_dependency 'mongo', '~> 0.18.3'
|
22
|
-
gem.add_dependency 'mongo_ext', '~> 0.18.3'
|
23
|
-
gem.add_development_dependency 'rspec', '>= 1.3.0'
|
24
|
-
gem.add_development_dependency 'yard', '>= 0.5'
|
25
|
-
gem.add_development_dependency 'yardstick', '>= 0.1'
|
10
|
+
gem.name = 'dm-mongo-adapter'
|
11
|
+
gem.summary = 'MongoDB DataMapper Adapter'
|
12
|
+
gem.email = "piotr.solnica@gmail.com"
|
13
|
+
gem.homepage = "http://github.com/solnic/dm-mongo-adapter"
|
14
|
+
gem.authors = ['Piotr Solnica']
|
15
|
+
gem.has_rdoc = false
|
26
16
|
|
27
17
|
# Exclude files
|
28
18
|
gem.files.exclude "bin/console"
|
data/VERSION.yml
CHANGED
data/dm-mongo-adapter.gemspec
CHANGED
@@ -1,152 +1,131 @@
|
|
1
1
|
# Generated by jeweler
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{dm-mongo-adapter}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.6.0"
|
9
9
|
|
10
|
-
s.required_rubygems_version = Gem::Requirement.new("
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Piotr Solnica"]
|
12
|
-
s.date = %q{
|
12
|
+
s.date = %q{2011-03-19}
|
13
13
|
s.default_executable = %q{console}
|
14
14
|
s.email = %q{piotr.solnica@gmail.com}
|
15
15
|
s.executables = ["console"]
|
16
16
|
s.extra_rdoc_files = [
|
17
17
|
"LICENSE",
|
18
|
-
|
19
|
-
|
18
|
+
"README.rdoc",
|
19
|
+
"TODO"
|
20
20
|
]
|
21
21
|
s.files = [
|
22
|
-
"
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
"spec/public/types/df_ref_spec.rb",
|
72
|
-
"spec/public/types/discriminator_spec.rb",
|
73
|
-
"spec/public/types/embedded_array_spec.rb",
|
74
|
-
"spec/public/types/embedded_hash_spec.rb",
|
75
|
-
"spec/public/types/object_id_spec.rb",
|
76
|
-
"spec/rcov.opts",
|
77
|
-
"spec/semipublic/embedded_model_spec.rb",
|
78
|
-
"spec/semipublic/model/embedment_spec.rb",
|
79
|
-
"spec/semipublic/resource_spec.rb",
|
80
|
-
"spec/spec.opts",
|
81
|
-
"spec/spec_helper.rb",
|
82
|
-
"tasks/spec.rake",
|
83
|
-
"tasks/yard.rake",
|
84
|
-
"tasks/yardstick.rake"
|
22
|
+
"Gemfile",
|
23
|
+
"LICENSE",
|
24
|
+
"README.rdoc",
|
25
|
+
"Rakefile",
|
26
|
+
"TODO",
|
27
|
+
"VERSION.yml",
|
28
|
+
"dm-mongo-adapter.gemspec",
|
29
|
+
"lib/mongo_adapter.rb",
|
30
|
+
"lib/mongo_adapter/adapter.rb",
|
31
|
+
"lib/mongo_adapter/aggregates.rb",
|
32
|
+
"lib/mongo_adapter/conditions.rb",
|
33
|
+
"lib/mongo_adapter/migrations.rb",
|
34
|
+
"lib/mongo_adapter/model.rb",
|
35
|
+
"lib/mongo_adapter/modifier.rb",
|
36
|
+
"lib/mongo_adapter/property/array.rb",
|
37
|
+
"lib/mongo_adapter/property/db_ref.rb",
|
38
|
+
"lib/mongo_adapter/property/hash.rb",
|
39
|
+
"lib/mongo_adapter/property/object_id.rb",
|
40
|
+
"lib/mongo_adapter/query.rb",
|
41
|
+
"lib/mongo_adapter/query/java_script.rb",
|
42
|
+
"lib/mongo_adapter/rails/storage.rb",
|
43
|
+
"lib/mongo_adapter/resource.rb",
|
44
|
+
"lib/mongo_adapter/support/class.rb",
|
45
|
+
"lib/mongo_adapter/support/date.rb",
|
46
|
+
"lib/mongo_adapter/support/date_time.rb",
|
47
|
+
"lib/mongo_adapter/support/object.rb",
|
48
|
+
"script/performance.rb",
|
49
|
+
"spec/legacy/README",
|
50
|
+
"spec/legacy/adapter_shared_spec.rb",
|
51
|
+
"spec/legacy/adapter_spec.rb",
|
52
|
+
"spec/legacy/associations_spec.rb",
|
53
|
+
"spec/legacy/property_spec.rb",
|
54
|
+
"spec/legacy/spec_helper.rb",
|
55
|
+
"spec/legacy/sti_spec.rb",
|
56
|
+
"spec/lib/cleanup_models.rb",
|
57
|
+
"spec/lib/raw_connections.rb",
|
58
|
+
"spec/public/aggregates_spec.rb",
|
59
|
+
"spec/public/model_spec.rb",
|
60
|
+
"spec/public/modifier_spec.rb",
|
61
|
+
"spec/public/properties/db_ref_spec.rb",
|
62
|
+
"spec/public/properties/object_id_spec.rb",
|
63
|
+
"spec/public/resource_spec.rb",
|
64
|
+
"spec/public/shared/object_id_shared_spec.rb",
|
65
|
+
"spec/rcov.opts",
|
66
|
+
"spec/spec.opts",
|
67
|
+
"spec/spec_helper.rb",
|
68
|
+
"tasks/spec.rake",
|
69
|
+
"tasks/yard.rake",
|
70
|
+
"tasks/yardstick.rake"
|
85
71
|
]
|
86
72
|
s.homepage = %q{http://github.com/solnic/dm-mongo-adapter}
|
87
|
-
s.rdoc_options = ["--charset=UTF-8"]
|
88
73
|
s.require_paths = ["lib"]
|
89
|
-
s.rubygems_version = %q{1.
|
74
|
+
s.rubygems_version = %q{1.6.2}
|
90
75
|
s.summary = %q{MongoDB DataMapper Adapter}
|
91
76
|
s.test_files = [
|
92
|
-
"spec/
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
"spec/legacy/associations_spec.rb",
|
109
|
-
"spec/legacy/modifier_spec.rb",
|
110
|
-
"spec/legacy/adapter_shared_spec.rb",
|
111
|
-
"spec/legacy/embedded_resource_spec.rb",
|
112
|
-
"spec/legacy/sti_spec.rb",
|
113
|
-
"spec/legacy/embedments_spec.rb",
|
114
|
-
"spec/legacy/adapter_spec.rb",
|
115
|
-
"spec/legacy/spec_helper.rb",
|
116
|
-
"spec/spec_helper.rb",
|
117
|
-
"spec/lib/cleanup_models.rb",
|
118
|
-
"spec/lib/raw_connections.rb"
|
77
|
+
"spec/legacy/adapter_shared_spec.rb",
|
78
|
+
"spec/legacy/adapter_spec.rb",
|
79
|
+
"spec/legacy/associations_spec.rb",
|
80
|
+
"spec/legacy/property_spec.rb",
|
81
|
+
"spec/legacy/spec_helper.rb",
|
82
|
+
"spec/legacy/sti_spec.rb",
|
83
|
+
"spec/lib/cleanup_models.rb",
|
84
|
+
"spec/lib/raw_connections.rb",
|
85
|
+
"spec/public/aggregates_spec.rb",
|
86
|
+
"spec/public/model_spec.rb",
|
87
|
+
"spec/public/modifier_spec.rb",
|
88
|
+
"spec/public/properties/db_ref_spec.rb",
|
89
|
+
"spec/public/properties/object_id_spec.rb",
|
90
|
+
"spec/public/resource_spec.rb",
|
91
|
+
"spec/public/shared/object_id_shared_spec.rb",
|
92
|
+
"spec/spec_helper.rb"
|
119
93
|
]
|
120
94
|
|
121
95
|
if s.respond_to? :specification_version then
|
122
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
123
96
|
s.specification_version = 3
|
124
97
|
|
125
|
-
if Gem::Version.new(Gem::
|
126
|
-
s.add_runtime_dependency(%q<
|
127
|
-
s.add_runtime_dependency(%q<dm-
|
128
|
-
s.add_runtime_dependency(%q<
|
129
|
-
s.add_runtime_dependency(%q<
|
130
|
-
s.add_development_dependency(%q<
|
131
|
-
s.add_development_dependency(%q<
|
132
|
-
s.add_development_dependency(%q<
|
98
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
99
|
+
s.add_runtime_dependency(%q<mongo>, ["~> 1.2.4"])
|
100
|
+
s.add_runtime_dependency(%q<dm-core>, ["~> 1.1.0"])
|
101
|
+
s.add_runtime_dependency(%q<dm-aggregates>, ["~> 1.1.0"])
|
102
|
+
s.add_runtime_dependency(%q<dm-migrations>, ["~> 1.1.0"])
|
103
|
+
s.add_development_dependency(%q<rake>, [">= 0"])
|
104
|
+
s.add_development_dependency(%q<rcov>, [">= 0"])
|
105
|
+
s.add_development_dependency(%q<rspec>, ["~> 1.3"])
|
106
|
+
s.add_development_dependency(%q<jeweler>, ["~> 1.5.1"])
|
107
|
+
s.add_development_dependency(%q<yard>, ["~> 0.5"])
|
133
108
|
else
|
134
|
-
s.add_dependency(%q<
|
135
|
-
s.add_dependency(%q<dm-
|
136
|
-
s.add_dependency(%q<
|
137
|
-
s.add_dependency(%q<
|
138
|
-
s.add_dependency(%q<
|
139
|
-
s.add_dependency(%q<
|
140
|
-
s.add_dependency(%q<
|
109
|
+
s.add_dependency(%q<mongo>, ["~> 1.2.4"])
|
110
|
+
s.add_dependency(%q<dm-core>, ["~> 1.1.0"])
|
111
|
+
s.add_dependency(%q<dm-aggregates>, ["~> 1.1.0"])
|
112
|
+
s.add_dependency(%q<dm-migrations>, ["~> 1.1.0"])
|
113
|
+
s.add_dependency(%q<rake>, [">= 0"])
|
114
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
115
|
+
s.add_dependency(%q<rspec>, ["~> 1.3"])
|
116
|
+
s.add_dependency(%q<jeweler>, ["~> 1.5.1"])
|
117
|
+
s.add_dependency(%q<yard>, ["~> 0.5"])
|
141
118
|
end
|
142
119
|
else
|
143
|
-
s.add_dependency(%q<
|
144
|
-
s.add_dependency(%q<dm-
|
145
|
-
s.add_dependency(%q<
|
146
|
-
s.add_dependency(%q<
|
147
|
-
s.add_dependency(%q<
|
148
|
-
s.add_dependency(%q<
|
149
|
-
s.add_dependency(%q<
|
120
|
+
s.add_dependency(%q<mongo>, ["~> 1.2.4"])
|
121
|
+
s.add_dependency(%q<dm-core>, ["~> 1.1.0"])
|
122
|
+
s.add_dependency(%q<dm-aggregates>, ["~> 1.1.0"])
|
123
|
+
s.add_dependency(%q<dm-migrations>, ["~> 1.1.0"])
|
124
|
+
s.add_dependency(%q<rake>, [">= 0"])
|
125
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
126
|
+
s.add_dependency(%q<rspec>, ["~> 1.3"])
|
127
|
+
s.add_dependency(%q<jeweler>, ["~> 1.5.1"])
|
128
|
+
s.add_dependency(%q<yard>, ["~> 0.5"])
|
150
129
|
end
|
151
130
|
end
|
152
131
|
|
data/lib/mongo_adapter.rb
CHANGED
@@ -1,71 +1,28 @@
|
|
1
|
-
if defined?(gem)
|
2
|
-
gem 'dm-core', '~> 0.10.2'
|
3
|
-
gem 'mongo', '~> 0.18'
|
4
|
-
end
|
5
|
-
|
6
1
|
require 'dm-core'
|
7
2
|
require 'dm-aggregates'
|
8
3
|
require 'mongo'
|
9
4
|
|
10
|
-
dir = Pathname(__FILE__).dirname.expand_path
|
11
|
-
|
12
|
-
require dir / 'query'
|
13
|
-
require dir / 'query' / 'java_script'
|
14
|
-
require dir / 'conditions'
|
15
|
-
require dir / 'types' / 'discriminator'
|
16
|
-
require dir / 'types' / 'date_time'
|
17
|
-
require dir / 'types' / 'date'
|
18
|
-
require dir / 'types' / 'object_id'
|
19
|
-
require dir / 'types' / 'db_ref'
|
20
|
-
require dir / 'types' / 'objects'
|
21
|
-
|
22
|
-
require dir / 'model' / 'embedment'
|
23
|
-
require dir / 'model'
|
24
|
-
|
25
|
-
require dir / 'resource'
|
26
|
-
require dir / 'migrations'
|
27
|
-
|
28
|
-
require dir / 'embedments' / 'relationship'
|
29
|
-
require dir / 'embedments' / 'one_to_one'
|
30
|
-
require dir / 'embedments' / 'one_to_many'
|
31
|
-
|
32
|
-
require dir / 'embedded_model'
|
33
|
-
require dir / 'embedded_resource'
|
34
|
-
require dir / 'modifier'
|
35
|
-
|
36
|
-
require dir / 'aggregates'
|
37
|
-
require dir / 'adapter'
|
38
|
-
|
39
|
-
module DataMapper
|
40
|
-
module Mongo
|
41
|
-
module QueryExtensions
|
42
|
-
def self.included(base)
|
43
|
-
# FIXME: figure out a cleaner approach than AMC
|
44
|
-
base.class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
45
|
-
alias assert_valid_conditions_without_embedment assert_valid_conditions
|
46
|
-
alias assert_valid_conditions assert_valid_conditions_with_embedment
|
47
|
-
RUBY
|
48
|
-
end
|
5
|
+
dir = Pathname(__FILE__).dirname.expand_path + 'mongo_adapter'
|
49
6
|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
key_s = key.to_s
|
7
|
+
require dir + 'query'
|
8
|
+
require dir + 'query' + 'java_script'
|
9
|
+
require dir + 'conditions'
|
54
10
|
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
end
|
11
|
+
require dir + 'property' + 'object_id'
|
12
|
+
require dir + 'property' + 'db_ref'
|
13
|
+
require dir + 'property' + 'array'
|
14
|
+
require dir + 'property' + 'hash'
|
60
15
|
|
61
|
-
|
62
|
-
|
63
|
-
|
16
|
+
require dir + 'support' + 'class'
|
17
|
+
require dir + 'support' + 'date'
|
18
|
+
require dir + 'support' + 'date_time'
|
19
|
+
require dir + 'support' + 'object'
|
64
20
|
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
21
|
+
require dir + 'migrations'
|
22
|
+
require dir + 'model'
|
23
|
+
require dir + 'resource'
|
24
|
+
require dir + 'migrations'
|
25
|
+
require dir + 'modifier'
|
70
26
|
|
71
|
-
|
27
|
+
require dir + 'aggregates'
|
28
|
+
require dir + 'adapter'
|