rails-ext 0.2.17 → 0.2.18

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 (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