rails-ext 0.2.17 → 0.2.18

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. data/.git/index +0 -0
  2. data/.git/logs/HEAD +4 -0
  3. data/.git/logs/refs/heads/master +4 -0
  4. data/.git/logs/refs/remotes/origin/master +1 -0
  5. data/.git/objects/04/cd62e7f8158fe54d21e6f63617c43b593b8b59 +0 -0
  6. data/.git/objects/06/c2384aa5f8b5614038b48a726d1d4f98a00f3b +0 -0
  7. data/.git/objects/11/9db1e92a2d4c7ff2c6d9a58940aa25d8bd4bc3 +0 -0
  8. data/.git/objects/15/8eef048d128710bfc0cb60114f7405e45f9b6c +2 -0
  9. data/.git/objects/1b/d7d8887251e9bd43d88a5da5115ff4f1f5f10d +0 -0
  10. data/.git/objects/1c/14e28ef05892ccfe61da3dc28e16f87040fe43 +0 -0
  11. data/.git/objects/24/62bd996e6c1b78d669a9eb3303c74217260f4b +0 -0
  12. data/.git/objects/25/ad912bcedeb900c551388c8d4f062812848af2 +0 -0
  13. data/.git/objects/27/f8a63386b8acf5edba3ed9334644455045acd8 +0 -0
  14. data/.git/objects/3d/5b84167d35cb75647f38a6d475a452ba3c6178 +0 -0
  15. data/.git/objects/44/c96e2a778dcc62c10b3c329ab0211115a9f546 +0 -0
  16. data/.git/objects/46/3353505eed0c799d05f025788437decbabafec +0 -0
  17. data/.git/objects/47/afb623cc9949394fc403bc977671307c1a9eda +0 -0
  18. data/.git/objects/49/ca132451f70ee989ff7a7cf487b029fe706b28 +0 -0
  19. data/.git/objects/53/b8187421c09e55e44b8d6fb3c4cd7feb0a51b2 +0 -0
  20. data/.git/objects/65/e77ca17328dfeb3477287af40fb834284c8f61 +0 -0
  21. data/.git/objects/66/95d9ac4648cdadd9922d3b355a1d6f56547f4c +0 -0
  22. data/.git/objects/6b/779e60dfa44ba3daa26badf65b3422f30c7b9b +2 -0
  23. data/.git/objects/6c/e5f7ee8ecbaa20a264bb2f2fb2fd821b5ad478 +0 -0
  24. data/.git/objects/6f/72c276ac50a5731aa5f7e7e01dd2793113fe5b +0 -0
  25. data/.git/objects/74/4d46a654ae9e0867055184f2011668c7e1acd2 +0 -0
  26. data/.git/objects/75/c64796b5ffb6107b861cfa77fa28e8e43a1156 +1 -0
  27. data/.git/objects/82/0190b802ed213aab7a56a928a09db06e2a90a2 +0 -0
  28. data/.git/objects/86/23de615f686de621ca23cbbff6a07885101df9 +0 -0
  29. data/.git/objects/8a/d2c8f5ee0627cf48aa39d5f10578f929bfc2c5 +0 -0
  30. data/.git/objects/8f/5465ea782955ad019122d92a0f162945339f8e +0 -0
  31. data/.git/objects/94/afd196cc89d60f0a06d4cad619eaa79921a9ae +0 -0
  32. data/.git/objects/97/5b5b662b4c712668b3fe5dfe917000338e6b3e +0 -0
  33. data/.git/objects/99/a23df6dd9c448928b25f2e749871c6fc696a32 +0 -0
  34. data/.git/objects/9c/20b1616810e3d1d5951ea6251ff2d28322dc16 +0 -0
  35. data/.git/objects/9d/9f28ff50236f1e7f78cbd17b8aa25a0bf8b6fc +4 -0
  36. data/.git/objects/9f/91a2fdd59ecdfb4f8f5025fdbe590eb536e96f +0 -0
  37. data/.git/objects/a0/90ab2a9e739787b6090c187acf95fdd763afef +0 -0
  38. data/.git/objects/a2/d43a3a789e655cc306618d480193709d580c30 +2 -0
  39. data/.git/objects/a4/c75ead5dcfe97a67d302464584be205e8c48b1 +0 -0
  40. data/.git/objects/ad/66aac16165dd71456e4488069248d6f10ebb8f +0 -0
  41. data/.git/objects/b8/aaaf4949881600102a72a60f17fd58918dbd7b +0 -0
  42. data/.git/objects/b8/efcaff7f11cc584ac44303449d96592853c528 +2 -0
  43. data/.git/objects/b9/ecca04b12de69ffab2cc5d22cb52d5babef24f +2 -0
  44. data/.git/objects/be/29c116694d85d48cf177cf30816aa159189536 +0 -0
  45. data/.git/objects/df/f63029f32b25c2bf18d0f3f4e7907daa7c1bca +0 -0
  46. data/.git/objects/e9/46302310acac8a7a6b64a58b47062934765ede +0 -0
  47. data/.git/objects/f1/9154fc5093f2fd56f2660f386975b2a79be76f +0 -0
  48. data/.git/refs/heads/master +1 -1
  49. data/.git/refs/remotes/origin/master +1 -1
  50. data/Rakefile +1 -1
  51. data/lib/mongo_mapper_ext/db_config.rb +76 -0
  52. data/lib/mongo_mapper_ext/fixes.rb +9 -6
  53. data/lib/mongo_mapper_ext/migration.rb +33 -52
  54. data/lib/mongo_mapper_ext/mongo_mapper.rb +1 -150
  55. data/lib/mongo_mapper_ext/plugins/attributes_cache.rb +22 -0
  56. data/lib/mongo_mapper_ext/plugins/default_scope.rb +40 -0
  57. data/lib/mongo_mapper_ext/plugins/micelaneous.rb +17 -0
  58. data/lib/mongo_mapper_ext/spec_helper.rb +2 -6
  59. data/lib/mongo_mapper_ext/view_helpers.rb +2 -0
  60. data/lib/mongo_mapper_ext.rb +22 -2
  61. data/lib/rails_ext/config_files/safe_hash.rb +10 -2
  62. data/spec/mongo_mapper_ext/default_scope_spec.rb +62 -0
  63. data/spec/mongo_mapper_ext/mongo_mapper_migration_spec.rb +74 -0
  64. data/spec/{safe_hash_spec.rb → rails_ext/safe_hash_spec.rb} +2 -2
  65. metadata +53 -7
  66. data/lib/mongo_mapper_ext/multitenant.rb +0 -8
  67. data/lib/mongo_mapper_ext/object_id.rb +0 -12
  68. data/spec/mongo_mapper_migration_spec.rb +0 -137
@@ -1,3 +1,5 @@
1
+ # TODO3 Move all this app_specific stuff to sm_commons
2
+
1
3
  #
2
4
  # HTML helpers
3
5
  #
@@ -1,5 +1,25 @@
1
1
  require 'mongo_mapper'
2
2
 
3
- %w{fixes migration mongo_mapper multitenant object_id view_helpers}.each do |file|
3
+
4
+ [
5
+ 'fixes',
6
+ 'migration',
7
+ 'mongo_mapper',
8
+ 'view_helpers',
9
+ 'db_config',
10
+
11
+ 'plugins/default_scope',
12
+ 'plugins/attributes_cache',
13
+ 'plugins/micelaneous',
14
+ ].each do |file|
4
15
  require "#{File.dirname __FILE__}/mongo_mapper_ext/#{file}"
5
- end
16
+ end
17
+
18
+ module CommonPluginsAddition
19
+ def self.included(model)
20
+ model.plugin MongoMapper::Plugins::DefaultScope
21
+ model.plugin MongoMapper::Plugins::AttributesCache
22
+ model.plugin MongoMapper::Plugins::Micelaneous
23
+ end
24
+ end
25
+ MongoMapper::Document.append_inclusions(CommonPluginsAddition)
@@ -60,6 +60,10 @@ class SafeHash < BlankSlate
60
60
  @hash.inspect
61
61
  end
62
62
 
63
+ def to_h
64
+ @hash
65
+ end
66
+
63
67
  class SafeNil < BlankSlate
64
68
  include Singleton
65
69
 
@@ -86,11 +90,15 @@ class SafeHash < BlankSlate
86
90
  end
87
91
 
88
92
  def to_yaml *args
89
- nil
93
+ nil.to_yaml *args
94
+ end
95
+
96
+ def to_h
97
+ {}
90
98
  end
91
99
 
92
100
  def inspect
93
- nil
101
+ nil.inspect
94
102
  end
95
103
  end
96
104
  end
@@ -0,0 +1,62 @@
1
+ require 'spec'
2
+ require 'ruby_ext'
3
+ require "#{File.dirname __FILE__}/../../lib/mongo_mapper_ext/plugins/default_scope"
4
+ require "mongo_mapper"
5
+
6
+ describe "MongoMapper Default Scope" do
7
+ before :all do
8
+ class ::DSBase
9
+ include MongoMapper::Document
10
+ plugin MongoMapper::Plugins::DefaultScope
11
+
12
+ key :name, String
13
+ end
14
+
15
+ class ::ObjectWithoutDefaultScope < DSBase
16
+ end
17
+
18
+ class ::ObjectWithDefaultScope < DSBase
19
+ default_scope :name => 'special'
20
+ end
21
+
22
+ class ::ObjectWithDynamicDefaultScope < DSBase
23
+ default_scope do
24
+ {:name => 'special'}
25
+ end
26
+ end
27
+
28
+ class ::DefaultScopeInheritance < ObjectWithDefaultScope
29
+ end
30
+
31
+ MongoMapper.database = 'test'
32
+ end
33
+
34
+ after :all do
35
+ %w{DSBase ObjectWithoutDefaultScope ObjectWithDefaultScope DefaultScopeInheritance ObjectWithDynamicDefaultScope}.each do |obj_name|
36
+ Object.send :remove_const, obj_name if Object.const_defined? obj_name
37
+ end
38
+ end
39
+
40
+ before :each do
41
+ DSBase.delete_all
42
+ DSBase.create! :name => 'general'
43
+ DSBase.create! :name => 'special'
44
+ end
45
+
46
+ it "should not affect objects without default_scope" do
47
+ ObjectWithoutDefaultScope.count.should == 2
48
+ ObjectWithoutDefaultScope.all.count.should == 2
49
+ end
50
+
51
+ it "static default scope" do
52
+ ObjectWithDefaultScope.count.should == 1
53
+ ObjectWithDefaultScope.all.count.should == 1
54
+ ObjectWithDefaultScope.first.name.should == 'special'
55
+ end
56
+
57
+ it "dynamic default scope" do
58
+ ObjectWithDynamicDefaultScope.count.should == 1
59
+ ObjectWithDynamicDefaultScope.all.count.should == 1
60
+ ObjectWithDynamicDefaultScope.first.name.should == 'special'
61
+ end
62
+ end
@@ -0,0 +1,74 @@
1
+ require 'spec'
2
+ require 'ruby_ext'
3
+ require "#{File.dirname __FILE__}/../../lib/mongo_mapper_ext"
4
+ require "#{File.dirname __FILE__}/../../lib/mongo_mapper_ext/spec_helper"
5
+
6
+
7
+ describe "MongoMapper Migration" do
8
+ Migration = MongoMapper::Migration
9
+
10
+ before :all do
11
+ MongoMapper.db_config = {
12
+ 'global' => {'name' => 'global_test'},
13
+ 'accounts' => {'name' => "accounts_test"}
14
+ }
15
+
16
+ class ::Sample
17
+ include MongoMapper::Document
18
+ use_database :global
19
+
20
+ key :name, String
21
+ end
22
+ end
23
+
24
+ after :all do
25
+ Object.send :remove_const, :Sample if Object.const_defined? :Sample
26
+ end
27
+
28
+ before :each do
29
+ Migration.definitions.clear
30
+ end
31
+
32
+ it "Shouldn't update if versions are the same" do
33
+ Migration.update(:global, 0).should be_false
34
+ end
35
+
36
+ it "migration should provide access to current database" do
37
+ Sample.count.should == 0
38
+ Migration.define :global, 1 do |m|
39
+ m.up do |db|
40
+ Sample.create :name => 'name'
41
+ coll = db.collection 'samples'
42
+ coll.find.count.should == 1
43
+ end
44
+ end
45
+
46
+ Migration.update(:global, 1).should be_true
47
+ Sample.count.should == 1
48
+ end
49
+
50
+ it "increase_db_version" do
51
+ Sample.count.should == 0
52
+ Migration.define :global, 1 do |m|
53
+ m.up{Sample.create :name => 'name'}
54
+ end
55
+
56
+ Migration.update(:global, 1).should be_true
57
+ Sample.count.should == 1
58
+ Migration.metadata(MongoMapper.databases[:global]).should == 1
59
+ end
60
+
61
+ it "decrease_db_version" do
62
+ Migration.define :global, 1 do |m|
63
+ m.up{Sample.create :name => 'name'}
64
+ m.down{Sample.destroy_all}
65
+ end
66
+ Migration.update(:global, 1).should be_true
67
+ Sample.count.should == 1
68
+
69
+ Migration.update(:global, 0).should be_true
70
+ Sample.count.should == 0
71
+ Migration.metadata(MongoMapper.databases[:global]).should == 0
72
+ end
73
+
74
+ end
@@ -1,7 +1,7 @@
1
1
  require 'spec'
2
2
 
3
3
  require 'active_support'
4
- require "#{File.dirname __FILE__}/../lib/rails_ext/config_files/safe_hash"
4
+ require "#{File.dirname __FILE__}/../../lib/rails_ext/config_files/safe_hash"
5
5
 
6
6
  describe "SafeHash and SafeNil" do
7
7
  it "should allow check for value presence" do
@@ -19,7 +19,7 @@ describe "SafeHash and SafeNil" do
19
19
  h.b!.should == :c
20
20
  end
21
21
 
22
- it "general bechaviour" do
22
+ it "general behaviour" do
23
23
  h = SafeHash.new :key => :value
24
24
 
25
25
  h.key.should == :value
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 2
8
- - 17
9
- version: 0.2.17
8
+ - 18
9
+ version: 0.2.18
10
10
  platform: ruby
11
11
  authors:
12
12
  - Alexey Petrushin
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-03-09 00:00:00 +03:00
17
+ date: 2010-03-16 00:00:00 +03:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -64,6 +64,8 @@ files:
64
64
  - .git/objects/00/cc0fab85c28c827b7489c092c7fdfacaab2c15
65
65
  - .git/objects/00/fd8045e0953bb11a521248dc27d4af2336c6d5
66
66
  - .git/objects/02/469b717b4bd61ad27a3fe664ce0646a8325399
67
+ - .git/objects/04/cd62e7f8158fe54d21e6f63617c43b593b8b59
68
+ - .git/objects/06/c2384aa5f8b5614038b48a726d1d4f98a00f3b
67
69
  - .git/objects/06/c3225bad9d5b80e7b3bde79ff3c2da591722bf
68
70
  - .git/objects/07/9ef6b10f536af792f4cf5d131857baa28751e7
69
71
  - .git/objects/07/f7d26527e58caa2fa99e33b29a7791b9eb8b3e
@@ -78,17 +80,21 @@ files:
78
80
  - .git/objects/0f/d3ac42b07c2d3102263bd939704f5633db304e
79
81
  - .git/objects/10/1f52d83027dfe5798f87aec1118f02d19e5cf8
80
82
  - .git/objects/10/bfe1230b9d96e23600091cc8b4b9d378068101
83
+ - .git/objects/11/9db1e92a2d4c7ff2c6d9a58940aa25d8bd4bc3
81
84
  - .git/objects/13/882df4f2ef911454bf3b69a85742b372723366
82
85
  - .git/objects/13/d5e53963c37e20ff517035b00f6b404c0e8056
83
86
  - .git/objects/15/351f2f81548a7a0d9c4a6690894a42262fb7f5
84
87
  - .git/objects/15/3f845625a0f605a2a35487a32038d0349bc386
85
88
  - .git/objects/15/6d9fb4d4fd605969b37fea59e57eb486d8d06f
89
+ - .git/objects/15/8eef048d128710bfc0cb60114f7405e45f9b6c
86
90
  - .git/objects/18/17673317d63a90369c9f7abdc6f0113f42050f
87
91
  - .git/objects/18/71ebea5ace362756ec45cff59a336df5d50725
88
92
  - .git/objects/18/77033b90ed3dd55a3034b7e3ca1c5c9f66868d
89
93
  - .git/objects/18/adbbbcd043a3ef3e19854df8476b02d69544d0
90
94
  - .git/objects/19/1f68644a3646d774f2546c4cd49ac7d66f4cc2
91
95
  - .git/objects/1b/83175202b0bdd9e8aac50c186533c1730aa220
96
+ - .git/objects/1b/d7d8887251e9bd43d88a5da5115ff4f1f5f10d
97
+ - .git/objects/1c/14e28ef05892ccfe61da3dc28e16f87040fe43
92
98
  - .git/objects/1c/65c12ac1816d1b56c7c3892acc61512696c673
93
99
  - .git/objects/1c/7fd48742e76d2cd6605e1a569e65e79ddd8f92
94
100
  - .git/objects/1d/d49713de2942dc974e55adc3684f55b2b817e2
@@ -96,6 +102,9 @@ files:
96
102
  - .git/objects/1f/1be5b8e4dce8787367b3a607b0695ca70d4e82
97
103
  - .git/objects/21/e143c036491275aaa7d6e45ed4683f5defdae2
98
104
  - .git/objects/23/926daa53cee50268bd329a8b4cbd853cb3a45b
105
+ - .git/objects/24/62bd996e6c1b78d669a9eb3303c74217260f4b
106
+ - .git/objects/25/ad912bcedeb900c551388c8d4f062812848af2
107
+ - .git/objects/27/f8a63386b8acf5edba3ed9334644455045acd8
99
108
  - .git/objects/28/8e20f19c6662b1425e0a0797ae443f7eddcc4a
100
109
  - .git/objects/28/c44da9255a78bf7105a1c251e4e1cd643b8f44
101
110
  - .git/objects/29/7a2c413b11f78b69dd8caa4f334c9536088f8a
@@ -117,6 +126,7 @@ files:
117
126
  - .git/objects/3a/03b9d44de43472689300120ffb2a0a9a74f27f
118
127
  - .git/objects/3a/797683953be7e6d0ffa0e34514f3e8e9c3ceb0
119
128
  - .git/objects/3a/ff2a7bfdf3a677812899ede62d084369c7c5f4
129
+ - .git/objects/3d/5b84167d35cb75647f38a6d475a452ba3c6178
120
130
  - .git/objects/3e/c0da65fe2e572ad31203f9412baa09dfdf49d3
121
131
  - .git/objects/3e/f23cf310c5eebac930a19d36a0561dd362d3ee
122
132
  - .git/objects/3f/3db6bb5a5204ae58e303959c4c0da3a70d8b35
@@ -124,10 +134,14 @@ files:
124
134
  - .git/objects/40/215c0554202fc46dc2fca94ed21e2920ce1e84
125
135
  - .git/objects/40/7adfb7f6188b0bb0b88cf9391943e1aaa32374
126
136
  - .git/objects/40/b5d1a81a061ce0e2f315b7e741ec70e0defe1d
137
+ - .git/objects/44/c96e2a778dcc62c10b3c329ab0211115a9f546
138
+ - .git/objects/46/3353505eed0c799d05f025788437decbabafec
127
139
  - .git/objects/46/d12e0420cd6341a2720730cc45703fc835efb6
128
140
  - .git/objects/47/28fde4426b545c73552bd5e0f79296a2b4be19
141
+ - .git/objects/47/afb623cc9949394fc403bc977671307c1a9eda
129
142
  - .git/objects/48/0602886685e84f2a257eb8e95acfc8af1166b6
130
143
  - .git/objects/49/66cd792ea3e03d5091aa7a332f2a082e479a76
144
+ - .git/objects/49/ca132451f70ee989ff7a7cf487b029fe706b28
131
145
  - .git/objects/4a/80705702f499ef1278630257a33c6088238ba3
132
146
  - .git/objects/4a/be35eba6ed159578e3f43f6ffa8ea7541598e2
133
147
  - .git/objects/4b/2bdb2dc6330ba9bafd9058ec8eaa925ef53f91
@@ -141,6 +155,7 @@ files:
141
155
  - .git/objects/52/5fcb274029ec36780b264166ea3d487d968997
142
156
  - .git/objects/53/2ff954f947901011d76dcc1e335c2d52e5706c
143
157
  - .git/objects/53/8aca7c60ef3cdfde25d4698e8e133ce18e512e
158
+ - .git/objects/53/b8187421c09e55e44b8d6fb3c4cd7feb0a51b2
144
159
  - .git/objects/55/6c13b26b6cecd286427a7f16c60c86c7df7885
145
160
  - .git/objects/55/d1f1efc344266d472094b1fd2f247b97de1c8b
146
161
  - .git/objects/56/d4d25c979129176da0f447726f3eecf611973b
@@ -159,7 +174,9 @@ files:
159
174
  - .git/objects/63/e3ecfd9b00f7111c9d9bb8e734e0c04ab44583
160
175
  - .git/objects/64/96d7c4cc0c824e706bf757f9ec63b5553c9caf
161
176
  - .git/objects/65/51094fa3b996ff25b88d7ddb21d21a811d53fc
177
+ - .git/objects/65/e77ca17328dfeb3477287af40fb834284c8f61
162
178
  - .git/objects/66/37f98202acb1895cb347d7c5fb5c414dd9e6db
179
+ - .git/objects/66/95d9ac4648cdadd9922d3b355a1d6f56547f4c
163
180
  - .git/objects/67/2396778b142df8b0b7ab212b7564039c48cf39
164
181
  - .git/objects/67/850cf1ede94d80c9b07ceace074a4d62f15249
165
182
  - .git/objects/68/8ce506ac4f7c160bd6880d8507820761a3b3b7
@@ -168,14 +185,19 @@ files:
168
185
  - .git/objects/69/ad159f329112a498fcc47c4943f4d9b59af1cc
169
186
  - .git/objects/6a/90d6784ac3b6580ef470dac68c2d93c276d6a7
170
187
  - .git/objects/6a/cdfb69624140a67634b65ab8230cc5e0ffd543
188
+ - .git/objects/6b/779e60dfa44ba3daa26badf65b3422f30c7b9b
189
+ - .git/objects/6c/e5f7ee8ecbaa20a264bb2f2fb2fd821b5ad478
171
190
  - .git/objects/6d/6bfb690cccf36d947eaafd79a19b0974afb65a
172
191
  - .git/objects/6d/85efe0589aa745a632d38314b7b5902a8874c0
173
192
  - .git/objects/6d/f725e3519872a75bc763045f00d8844eb890cf
174
193
  - .git/objects/6e/a04c6c0a52b9c7da1de6364b530553dfd78c4a
194
+ - .git/objects/6f/72c276ac50a5731aa5f7e7e01dd2793113fe5b
175
195
  - .git/objects/71/e6b43e9d41f9903992fd86d483b7d3e4dd28cd
176
196
  - .git/objects/73/667b7ae341d478513ba0bd6ec8af0aa1f62f0d
197
+ - .git/objects/74/4d46a654ae9e0867055184f2011668c7e1acd2
177
198
  - .git/objects/74/ce4a58ebf96006e1e9be0980b99ac3b5b820c7
178
199
  - .git/objects/74/d8411c7276b4e1c1f614606af7f69ab4526d30
200
+ - .git/objects/75/c64796b5ffb6107b861cfa77fa28e8e43a1156
179
201
  - .git/objects/75/d0b250bcdf241d981313b1d6eb153b96e4b05f
180
202
  - .git/objects/76/d3cd0f31cfb174c2411be5636a8257e7af613a
181
203
  - .git/objects/77/6e03ab9139aab1e0e8d551a75c3c0145fd9322
@@ -188,36 +210,49 @@ files:
188
210
  - .git/objects/7e/ca6f113845c2dcdf536daa084349445d608879
189
211
  - .git/objects/81/156e1461b12b90f0dc2604458317ca8f5d45c0
190
212
  - .git/objects/81/d4aa3b627dfc7397ce3f71577a8307324b8289
213
+ - .git/objects/82/0190b802ed213aab7a56a928a09db06e2a90a2
191
214
  - .git/objects/82/03c2c6cdd29e1e20e88fbb81e63b7ea1ec2899
192
215
  - .git/objects/83/6f33959bcf517b9952aefb3fdfdd7ff3c1f207
193
216
  - .git/objects/85/eee9f4c1a6f710ed87bf28a0531275777f8848
194
217
  - .git/objects/85/fd531f7352ad8f5ac030eed2204a662dd10a66
218
+ - .git/objects/86/23de615f686de621ca23cbbff6a07885101df9
195
219
  - .git/objects/86/b31b604469e9b261f4e5b927932504bca8c402
196
220
  - .git/objects/87/fc827fd223cac6b4e55d823a9ea86bb0726a3b
197
221
  - .git/objects/88/b888ea16fb14478c659390ce54e980b86198ef
198
222
  - .git/objects/89/2697494eb70fdccaf26bf547bb8d7428c0e5ff
223
+ - .git/objects/8a/d2c8f5ee0627cf48aa39d5f10578f929bfc2c5
199
224
  - .git/objects/8b/7fd3b87e0f2fce82705c50e7c48f9496b7666e
200
225
  - .git/objects/8c/4648d7c914e9d60dc387ff801c97b2d19c97f7
201
226
  - .git/objects/8d/4dcde8df4da8f53f5f5313757b907e9aa1af66
202
227
  - .git/objects/8e/3cfb391de711b5fecfbdf2860fa37b019e8036
203
228
  - .git/objects/8e/69b6cf3ec8b49270091b4a206ccf326679dc20
204
229
  - .git/objects/8e/a47de58a27dd343b3ecd3dd5e0fab88e268a72
230
+ - .git/objects/8f/5465ea782955ad019122d92a0f162945339f8e
205
231
  - .git/objects/90/ca84ea326afab5fcc92a50469c2052ebc46f11
206
232
  - .git/objects/92/e1c250edfca72ed0932934257ef3cfc7122ec5
207
233
  - .git/objects/92/e1f3936e7c33007d0a466b836804450992a1eb
208
234
  - .git/objects/93/f9a6b596879347290cde161b03052bb22021de
209
235
  - .git/objects/94/72f3ac9e890231482aadd774bdc1c9ba742497
236
+ - .git/objects/94/afd196cc89d60f0a06d4cad619eaa79921a9ae
210
237
  - .git/objects/96/48a1590ab953b7ec3bc9d06e460c0004962b77
238
+ - .git/objects/97/5b5b662b4c712668b3fe5dfe917000338e6b3e
211
239
  - .git/objects/98/6915a151ae2adb8f8e81e11038f7a1ca731bbc
240
+ - .git/objects/99/a23df6dd9c448928b25f2e749871c6fc696a32
212
241
  - .git/objects/9b/a1a0e6e5050444fc8743a18341ae219c54aa9b
242
+ - .git/objects/9c/20b1616810e3d1d5951ea6251ff2d28322dc16
243
+ - .git/objects/9d/9f28ff50236f1e7f78cbd17b8aa25a0bf8b6fc
213
244
  - .git/objects/9e/a42bcef6b76af65d741384e13c24b8072637d1
214
245
  - .git/objects/9f/0f3e54458d429dd2a1c04e4671398cfa37d595
246
+ - .git/objects/9f/91a2fdd59ecdfb4f8f5025fdbe590eb536e96f
247
+ - .git/objects/a0/90ab2a9e739787b6090c187acf95fdd763afef
215
248
  - .git/objects/a0/d595c78f280787659a2a4400f5d63578b53dce
216
249
  - .git/objects/a1/7da5fcb263b86753b0dddb8f34472e61d25fa1
250
+ - .git/objects/a2/d43a3a789e655cc306618d480193709d580c30
217
251
  - .git/objects/a3/4e4e8572d323de26965619321576f903fa7935
218
252
  - .git/objects/a3/5c311b625d863b50d51e2385259d487e277c90
219
253
  - .git/objects/a3/6956ff51b72b69d1ac2c1ad0d78bb9ad1ade75
220
254
  - .git/objects/a3/84715546f6a11dc7d56a32784dbdd5d7d92e8e
255
+ - .git/objects/a4/c75ead5dcfe97a67d302464584be205e8c48b1
221
256
  - .git/objects/a5/4db1bec30f7dc8981c4d5ccf9c9a90c1e13662
222
257
  - .git/objects/a5/9472e8ecb5d06647adeec11ae931b956508191
223
258
  - .git/objects/a6/438da91846df9ac940b59f6d11d5019a5580be
@@ -228,6 +263,7 @@ files:
228
263
  - .git/objects/ab/825cde00e626431c6045e6886d470327c63001
229
264
  - .git/objects/ac/92bcf6c74d23824c3c7ce341f667507592c7f9
230
265
  - .git/objects/ac/a1ad63cec98e0b3dae23fbe088f5a5d2125a7a
266
+ - .git/objects/ad/66aac16165dd71456e4488069248d6f10ebb8f
231
267
  - .git/objects/ae/536c345aad67cee8ce167dc91006263e63885f
232
268
  - .git/objects/b0/2c48116db702256abf27fab4236c84bd2d2dbc
233
269
  - .git/objects/b0/39fcd38009980eb74d6bcef22d11e02639a530
@@ -242,11 +278,15 @@ files:
242
278
  - .git/objects/b5/33c1c1bca9eae5b7e75c639fff8ec2c2f9fea1
243
279
  - .git/objects/b5/edd343ceb8e87d1a73922612aec210b393f839
244
280
  - .git/objects/b7/88e3ac322b164a2a223f80f8a6da0836d9d1dd
281
+ - .git/objects/b8/aaaf4949881600102a72a60f17fd58918dbd7b
282
+ - .git/objects/b8/efcaff7f11cc584ac44303449d96592853c528
283
+ - .git/objects/b9/ecca04b12de69ffab2cc5d22cb52d5babef24f
245
284
  - .git/objects/ba/67eef0f58a44e4b39af605d45e1e958023588d
246
285
  - .git/objects/bb/05a580a8afe6e3078b8e6ec4cda41fdc266f5d
247
286
  - .git/objects/bb/23236d2e8340087cc495c66310e6eb90d6fe0a
248
287
  - .git/objects/bc/90a06dd2f2257e8da49989738db5747e2b78d8
249
288
  - .git/objects/bd/eab0ec8a914cdd8c9341340191c116a4bf2d3e
289
+ - .git/objects/be/29c116694d85d48cf177cf30816aa159189536
250
290
  - .git/objects/c0/22e88f31b91cecfc45b1bae611c27f5b12ca15
251
291
  - .git/objects/c0/724bc45e241d336d6376f14d9b258c2e4744d4
252
292
  - .git/objects/c1/3cf3c2ea85ec40544fe31702b2cfe6091aed6e
@@ -284,6 +324,7 @@ files:
284
324
  - .git/objects/de/10bee1e91cfbd53ccaa073aada68cbfeac22d8
285
325
  - .git/objects/de/513632cf9d7755d57fa2cde261bc6822335d40
286
326
  - .git/objects/de/57906fbec41c830adf724743fd20dba762acab
327
+ - .git/objects/df/f63029f32b25c2bf18d0f3f4e7907daa7c1bca
287
328
  - .git/objects/e0/444cc3908c5096319636ca42c403a78deda3f9
288
329
  - .git/objects/e0/d8e7ab5a565d95d44f2a9a6246be6003a3de7b
289
330
  - .git/objects/e2/bc2615d3aa154bba2897c562a15ed19136d518
@@ -302,12 +343,14 @@ files:
302
343
  - .git/objects/e8/8c08dea8850c34f14a6cb67660174d186f9e0a
303
344
  - .git/objects/e8/901c48443ed6999a3c1b86c435562d2ee54caf
304
345
  - .git/objects/e8/e3794adaa5886984bd0c0ff90980353de03c9b
346
+ - .git/objects/e9/46302310acac8a7a6b64a58b47062934765ede
305
347
  - .git/objects/ea/50407bf8daef694d22268540dd55eb3a739bad
306
348
  - .git/objects/eb/950b1535bf0671019ba323386deea2598ce246
307
349
  - .git/objects/eb/9701e2dbe8fb606315f9514d789188160bdd67
308
350
  - .git/objects/ed/c690a7821df2da3c0ddeee24b87187b3a99d91
309
351
  - .git/objects/ee/ccaf0d272346a1dcc672a4131ba692a0027049
310
352
  - .git/objects/f0/af2f0e63f924f45e55af90e691f3588552ffc9
353
+ - .git/objects/f1/9154fc5093f2fd56f2660f386975b2a79be76f
311
354
  - .git/objects/f2/196f15b2d432b2a2d641aed4ae5afe7190edb9
312
355
  - .git/objects/f2/efda050bcf5d33d3f8e8fb2848b0be926c1731
313
356
  - .git/objects/f3/3573a82a9e7dbf9bc7f5b3feded4c223701d1f
@@ -340,11 +383,13 @@ files:
340
383
  - lib/asset_packager/asset_packager.rb
341
384
  - lib/asset_packager/jsmin.rb
342
385
  - lib/asset_packager/tasks.rb
386
+ - lib/mongo_mapper_ext/db_config.rb
343
387
  - lib/mongo_mapper_ext/fixes.rb
344
388
  - lib/mongo_mapper_ext/migration.rb
345
389
  - lib/mongo_mapper_ext/mongo_mapper.rb
346
- - lib/mongo_mapper_ext/multitenant.rb
347
- - lib/mongo_mapper_ext/object_id.rb
390
+ - lib/mongo_mapper_ext/plugins/attributes_cache.rb
391
+ - lib/mongo_mapper_ext/plugins/default_scope.rb
392
+ - lib/mongo_mapper_ext/plugins/micelaneous.rb
348
393
  - lib/mongo_mapper_ext/spec_helper.rb
349
394
  - lib/mongo_mapper_ext/view_helpers.rb
350
395
  - lib/mongo_mapper_ext.rb
@@ -380,8 +425,9 @@ files:
380
425
  - lib/rails_ext/reload_page.rb
381
426
  - lib/rails_ext/user_error.rb
382
427
  - lib/rails_ext.rb
383
- - spec/mongo_mapper_migration_spec.rb
384
- - spec/safe_hash_spec.rb
428
+ - spec/mongo_mapper_ext/default_scope_spec.rb
429
+ - spec/mongo_mapper_ext/mongo_mapper_migration_spec.rb
430
+ - spec/rails_ext/safe_hash_spec.rb
385
431
  - spec/spec.opts
386
432
  - public/rails_ext/rails_ext.css
387
433
  - public/rails_ext/rails_ext.js
@@ -1,8 +0,0 @@
1
- [MongoMapper::EmbeddedDocument::ClassMethods, MongoMapper::Document::ClassMethods].each do |aclass|
2
- aclass.class_eval do
3
- def connect_to_global_database!
4
- self.connection MongoMapper.global_connection
5
- self.set_database_name MongoMapper.config.global_database.name
6
- end
7
- end
8
- end
@@ -1,12 +0,0 @@
1
- #
2
- # ObjectID
3
- #
4
- Mongo::ObjectID.class_eval do
5
- def == other
6
- self.to_s == other.to_s
7
- end
8
-
9
- def to_yaml *args
10
- to_s.to_yaml *args
11
- end
12
- end
@@ -1,137 +0,0 @@
1
- require 'spec'
2
- require 'ruby_ext'
3
- require "#{File.dirname __FILE__}/../lib/mongo_mapper_ext"
4
-
5
- MongoMapper.custom_config = {
6
- :global_database => {
7
- :name => 'global_development_test'
8
- }.to_openobject,
9
- :accounts_database => {
10
- :name => "accounts_#{MongoMapper::ACCOUNT_TOKEN}_test"
11
- }.to_openobject
12
- }.to_openobject
13
- require "#{File.dirname __FILE__}/../lib/mongo_mapper_ext/spec_helper"
14
-
15
-
16
- describe "MongoMapper Migration" do
17
- Migration = MongoMapper::Migration
18
-
19
- before :each do
20
- Migration.send :reset
21
- end
22
-
23
- describe "Global Database" do
24
- before :all do
25
- class GlobalSample
26
- include MongoMapper::Document
27
- connect_to_global_database!
28
-
29
- key :name, String
30
- end
31
- end
32
-
33
- after :all do
34
- Object.send :remove_const, :GlobalSample if defined?(GlobalSample)
35
- end
36
-
37
- it "Shouldn't update if versions are the same" do
38
- Migration.update_global_database_to(0).should be_false
39
- end
40
-
41
- it "increase_db_version" do
42
- GlobalSample.count.should == 0
43
- Migration.define_global_migration 1 do |m|
44
- m.up{GlobalSample.create :name => 'name'}
45
- end
46
-
47
- Migration.update_global_database_to(1).should be_true
48
- GlobalSample.count.should == 1
49
- Migration.metadata(MongoMapper.global_database).should == 1
50
- end
51
-
52
- it "decrease_db_version" do
53
- Migration.define_global_migration 1 do |m|
54
- m.up{GlobalSample.create :name => 'name'}
55
- m.down{GlobalSample.destroy_all}
56
- end
57
- Migration.update_global_database_to(1).should be_true
58
- GlobalSample.count.should == 1
59
-
60
- Migration.update_global_database_to(0).should be_true
61
- GlobalSample.count.should == 0
62
- Migration.metadata(MongoMapper.global_database).should == 0
63
- end
64
- end
65
-
66
- describe "Acccounts Database" do
67
- before :all do
68
- class Sample
69
- include MongoMapper::Document
70
-
71
- key :name, String
72
- end
73
- end
74
-
75
- after :all do
76
- Object.send :remove_const, :Sample if defined?(Sample)
77
- end
78
-
79
- before :each do
80
- @account_db_name = 'accounts_development_test'
81
- MongoMapper.accounts_names.each do |acccount_name|
82
- next if acccount_name == 'development'
83
- MongoMapper.account_connection.drop_database MongoMapper.account_database_name(acccount_name)
84
- end
85
- MongoMapper.current_account_database.collection('stub').save('a' => 'b') # Creating empty database
86
- MongoMapper.accounts_names.should == ['development']
87
- end
88
-
89
- after :each do
90
- MongoMapper.account_database 'development'
91
- end
92
-
93
- it "Shouldn't update if versions are the same" do
94
- results = Migration.update_database_to(0)
95
- results[@account_db_name].should be_false
96
- end
97
-
98
- it "increase_db_version" do
99
- Sample.count.should == 0
100
- Migration.define_migration 1 do |m|
101
- m.up{Sample.create :name => 'name'}
102
- end
103
-
104
- results = Migration.update_database_to(1)
105
- results.size.should == 1
106
- results[@account_db_name].should be_true
107
-
108
- MongoMapper.account_database 'development'
109
- Sample.count.should == 1
110
- Migration.metadata(MongoMapper.current_account_database).should == 1
111
- end
112
-
113
- it "decrease_db_version" do
114
- Migration.define_migration 1 do |m|
115
- m.up{Sample.create :name => 'name'}
116
- m.down{Sample.destroy_all}
117
- end
118
-
119
- # Up
120
- results = Migration.update_database_to(1)
121
- results.size.should == 1
122
- results[@account_db_name].should be_true
123
-
124
- MongoMapper.account_database 'development'
125
- Sample.count.should == 1
126
-
127
- # Down
128
- results = Migration.update_database_to(0)
129
- results.size.should == 1
130
- results[@account_db_name].should be_true
131
-
132
- MongoMapper.account_database 'development'
133
- Sample.count.should == 0
134
- Migration.metadata(MongoMapper.database).should == 0
135
- end
136
- end
137
- end