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.
Files changed (64) hide show
  1. data/Gemfile +27 -0
  2. data/README.rdoc +16 -35
  3. data/Rakefile +6 -16
  4. data/VERSION.yml +2 -2
  5. data/dm-mongo-adapter.gemspec +100 -121
  6. data/lib/mongo_adapter.rb +19 -62
  7. data/lib/mongo_adapter/adapter.rb +49 -36
  8. data/lib/mongo_adapter/conditions.rb +0 -5
  9. data/lib/mongo_adapter/migrations.rb +17 -23
  10. data/lib/mongo_adapter/model.rb +3 -74
  11. data/lib/mongo_adapter/modifier.rb +1 -1
  12. data/lib/mongo_adapter/property/array.rb +10 -0
  13. data/lib/mongo_adapter/property/db_ref.rb +17 -0
  14. data/lib/mongo_adapter/property/hash.rb +27 -0
  15. data/lib/mongo_adapter/property/object_id.rb +47 -0
  16. data/lib/mongo_adapter/query.rb +42 -45
  17. data/lib/mongo_adapter/rails/storage.rb +15 -0
  18. data/lib/mongo_adapter/resource.rb +0 -130
  19. data/lib/mongo_adapter/support/class.rb +11 -0
  20. data/lib/mongo_adapter/support/date.rb +11 -0
  21. data/lib/mongo_adapter/support/date_time.rb +12 -0
  22. data/lib/mongo_adapter/support/object.rb +9 -0
  23. data/spec/legacy/adapter_spec.rb +9 -6
  24. data/spec/legacy/associations_spec.rb +37 -29
  25. data/spec/legacy/property_spec.rb +4 -3
  26. data/spec/legacy/sti_spec.rb +1 -2
  27. data/spec/lib/cleanup_models.rb +0 -1
  28. data/spec/public/aggregates_spec.rb +171 -0
  29. data/spec/public/model_spec.rb +8 -22
  30. data/spec/public/modifier_spec.rb +109 -0
  31. data/spec/public/properties/db_ref_spec.rb +17 -0
  32. data/spec/public/properties/object_id_spec.rb +15 -0
  33. data/spec/public/resource_spec.rb +2 -383
  34. data/spec/public/shared/object_id_shared_spec.rb +16 -39
  35. data/spec/spec_helper.rb +0 -4
  36. metadata +87 -117
  37. data/.gitignore +0 -9
  38. data/lib/mongo_adapter/embedded_model.rb +0 -187
  39. data/lib/mongo_adapter/embedded_resource.rb +0 -134
  40. data/lib/mongo_adapter/embedments/one_to_many.rb +0 -144
  41. data/lib/mongo_adapter/embedments/one_to_one.rb +0 -57
  42. data/lib/mongo_adapter/embedments/relationship.rb +0 -258
  43. data/lib/mongo_adapter/model/embedment.rb +0 -215
  44. data/lib/mongo_adapter/types/date.rb +0 -24
  45. data/lib/mongo_adapter/types/date_time.rb +0 -28
  46. data/lib/mongo_adapter/types/db_ref.rb +0 -65
  47. data/lib/mongo_adapter/types/discriminator.rb +0 -32
  48. data/lib/mongo_adapter/types/object_id.rb +0 -72
  49. data/lib/mongo_adapter/types/objects.rb +0 -31
  50. data/spec/legacy/embedded_resource_spec.rb +0 -157
  51. data/spec/legacy/embedments_spec.rb +0 -177
  52. data/spec/legacy/modifier_spec.rb +0 -81
  53. data/spec/public/embedded_collection_spec.rb +0 -61
  54. data/spec/public/embedded_resource_spec.rb +0 -220
  55. data/spec/public/model/embedment_spec.rb +0 -186
  56. data/spec/public/shared/model_embedments_spec.rb +0 -338
  57. data/spec/public/types/df_ref_spec.rb +0 -6
  58. data/spec/public/types/discriminator_spec.rb +0 -118
  59. data/spec/public/types/embedded_array_spec.rb +0 -55
  60. data/spec/public/types/embedded_hash_spec.rb +0 -83
  61. data/spec/public/types/object_id_spec.rb +0 -6
  62. data/spec/semipublic/embedded_model_spec.rb +0 -43
  63. data/spec/semipublic/model/embedment_spec.rb +0 -42
  64. 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
@@ -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 ~> 0.10.2
14
- * dm-aggregates ~> 0.10.2
15
- * mongo ~> 0.18.3
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 --pre
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 embedded resources
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 = '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
-
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"
@@ -1,5 +1,5 @@
1
1
  ---
2
2
  :major: 0
3
- :minor: 2
3
+ :minor: 6
4
4
  :patch: 0
5
- :build: pre3
5
+ :build:
@@ -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 the gemspec command
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.2.0.pre3"
8
+ s.version = "0.6.0"
9
9
 
10
- s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
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{2010-02-22}
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
- "README.rdoc",
19
- "TODO"
18
+ "README.rdoc",
19
+ "TODO"
20
20
  ]
21
21
  s.files = [
22
- ".gitignore",
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/embedded_model.rb",
34
- "lib/mongo_adapter/embedded_resource.rb",
35
- "lib/mongo_adapter/embedments/one_to_many.rb",
36
- "lib/mongo_adapter/embedments/one_to_one.rb",
37
- "lib/mongo_adapter/embedments/relationship.rb",
38
- "lib/mongo_adapter/migrations.rb",
39
- "lib/mongo_adapter/model.rb",
40
- "lib/mongo_adapter/model/embedment.rb",
41
- "lib/mongo_adapter/modifier.rb",
42
- "lib/mongo_adapter/query.rb",
43
- "lib/mongo_adapter/query/java_script.rb",
44
- "lib/mongo_adapter/resource.rb",
45
- "lib/mongo_adapter/types/date.rb",
46
- "lib/mongo_adapter/types/date_time.rb",
47
- "lib/mongo_adapter/types/db_ref.rb",
48
- "lib/mongo_adapter/types/discriminator.rb",
49
- "lib/mongo_adapter/types/object_id.rb",
50
- "lib/mongo_adapter/types/objects.rb",
51
- "script/performance.rb",
52
- "spec/legacy/README",
53
- "spec/legacy/adapter_shared_spec.rb",
54
- "spec/legacy/adapter_spec.rb",
55
- "spec/legacy/associations_spec.rb",
56
- "spec/legacy/embedded_resource_spec.rb",
57
- "spec/legacy/embedments_spec.rb",
58
- "spec/legacy/modifier_spec.rb",
59
- "spec/legacy/property_spec.rb",
60
- "spec/legacy/spec_helper.rb",
61
- "spec/legacy/sti_spec.rb",
62
- "spec/lib/cleanup_models.rb",
63
- "spec/lib/raw_connections.rb",
64
- "spec/public/embedded_collection_spec.rb",
65
- "spec/public/embedded_resource_spec.rb",
66
- "spec/public/model/embedment_spec.rb",
67
- "spec/public/model_spec.rb",
68
- "spec/public/resource_spec.rb",
69
- "spec/public/shared/model_embedments_spec.rb",
70
- "spec/public/shared/object_id_shared_spec.rb",
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.3.6}
74
+ s.rubygems_version = %q{1.6.2}
90
75
  s.summary = %q{MongoDB DataMapper Adapter}
91
76
  s.test_files = [
92
- "spec/semipublic/model/embedment_spec.rb",
93
- "spec/semipublic/resource_spec.rb",
94
- "spec/semipublic/embedded_model_spec.rb",
95
- "spec/public/types/discriminator_spec.rb",
96
- "spec/public/types/df_ref_spec.rb",
97
- "spec/public/types/embedded_hash_spec.rb",
98
- "spec/public/types/object_id_spec.rb",
99
- "spec/public/types/embedded_array_spec.rb",
100
- "spec/public/model/embedment_spec.rb",
101
- "spec/public/resource_spec.rb",
102
- "spec/public/shared/object_id_shared_spec.rb",
103
- "spec/public/shared/model_embedments_spec.rb",
104
- "spec/public/embedded_resource_spec.rb",
105
- "spec/public/embedded_collection_spec.rb",
106
- "spec/public/model_spec.rb",
107
- "spec/legacy/property_spec.rb",
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::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
126
- s.add_runtime_dependency(%q<dm-core>, ["~> 0.10.2"])
127
- s.add_runtime_dependency(%q<dm-aggregates>, ["~> 0.10.2"])
128
- s.add_runtime_dependency(%q<mongo>, ["~> 0.18.3"])
129
- s.add_runtime_dependency(%q<mongo_ext>, ["~> 0.18.3"])
130
- s.add_development_dependency(%q<rspec>, [">= 1.3.0"])
131
- s.add_development_dependency(%q<yard>, [">= 0.5"])
132
- s.add_development_dependency(%q<yardstick>, [">= 0.1"])
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<dm-core>, ["~> 0.10.2"])
135
- s.add_dependency(%q<dm-aggregates>, ["~> 0.10.2"])
136
- s.add_dependency(%q<mongo>, ["~> 0.18.3"])
137
- s.add_dependency(%q<mongo_ext>, ["~> 0.18.3"])
138
- s.add_dependency(%q<rspec>, [">= 1.3.0"])
139
- s.add_dependency(%q<yard>, [">= 0.5"])
140
- s.add_dependency(%q<yardstick>, [">= 0.1"])
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<dm-core>, ["~> 0.10.2"])
144
- s.add_dependency(%q<dm-aggregates>, ["~> 0.10.2"])
145
- s.add_dependency(%q<mongo>, ["~> 0.18.3"])
146
- s.add_dependency(%q<mongo_ext>, ["~> 0.18.3"])
147
- s.add_dependency(%q<rspec>, [">= 1.3.0"])
148
- s.add_dependency(%q<yard>, [">= 0.5"])
149
- s.add_dependency(%q<yardstick>, [">= 0.1"])
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
 
@@ -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 / 'mongo_adapter'
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
- def assert_valid_conditions_with_embedment(conditions)
51
- if conditions.is_a?(Hash) && model.respond_to?(:embedments) && !model.embedments.blank?
52
- conditions.each_key do |key|
53
- key_s = key.to_s
7
+ require dir + 'query'
8
+ require dir + 'query' + 'java_script'
9
+ require dir + 'conditions'
54
10
 
55
- name = if key_s.include?('.')
56
- key_s.split('.')[0].to_sym
57
- else
58
- key
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
- conditions.delete(key) if model.embedments.key?(name)
62
- end
63
- end
16
+ require dir + 'support' + 'class'
17
+ require dir + 'support' + 'date'
18
+ require dir + 'support' + 'date_time'
19
+ require dir + 'support' + 'object'
64
20
 
65
- assert_valid_conditions_without_embedment(conditions)
66
- end
67
- end
68
- end
69
- end
21
+ require dir + 'migrations'
22
+ require dir + 'model'
23
+ require dir + 'resource'
24
+ require dir + 'migrations'
25
+ require dir + 'modifier'
70
26
 
71
- DataMapper::Query.send(:include, DataMapper::Mongo::QueryExtensions)
27
+ require dir + 'aggregates'
28
+ require dir + 'adapter'