rails-ext 0.3.6 → 0.3.8
Sign up to get free protection for your applications and to get access to all the features.
- data/.git/index +0 -0
- data/.git/logs/HEAD +4 -0
- data/.git/logs/refs/heads/master +4 -0
- data/.git/logs/refs/remotes/origin/master +3 -0
- data/.git/objects/02/12d2da342b1ab3c0e7a7f2770686a7bb5d7806 +0 -0
- data/.git/objects/05/38f41ddebf7fa8c71ebe99c5288d5e11c3fb86 +0 -0
- data/.git/objects/2c/b04524ccd690f1cb4345586ca9138f9615afd5 +0 -0
- data/.git/objects/35/0b6a89c8f9704cb4f1e037ea638e952a487017 +0 -0
- data/.git/objects/3b/da284efc6c07900db7dd00a9f3082d2c13d55e +0 -0
- data/.git/objects/3d/e882c2630c3cd215641a6c73ca83ad2d741b13 +0 -0
- data/.git/objects/43/6b9b73da4632657be4800b250741f37fdbb505 +0 -0
- data/.git/objects/55/45d0d521bb723db8feae0223fa838a183e38b7 +0 -0
- data/.git/objects/5d/c38b1f2d3893c8e41b05de2d121b525f888e5c +0 -0
- data/.git/objects/6a/02fd5698264a4165c46af5175a39f5b130de9c +0 -0
- data/.git/objects/83/fa8aa3ad64de1003adc5a1c7c31c3d98a7abf4 +0 -0
- data/.git/objects/84/bfc21516dfc947e9aa64a47000b46da2c801d9 +0 -0
- data/.git/objects/8f/53b7b2ab88b130763bc42b3ded7983d27bff7a +0 -0
- data/.git/objects/94/ba2c1a45bc1a8cf3625f4889c507b39c664576 +0 -0
- data/.git/objects/99/368683bd721c6c1b8db8eb1b468dffefa61a2e +0 -0
- data/.git/objects/af/33f2833588e40e441f8b1f4dd26d5c93488334 +0 -0
- data/.git/objects/b1/8a3c6bf39b910b9805973578074e6d6b692a4a +0 -0
- data/.git/objects/b4/343d9284a89e2971022f8d4acf7865d8341c6d +0 -0
- data/.git/objects/d8/bd32eafc1bcd962f7e2e1244071c921cd465fe +0 -0
- data/.git/objects/dc/0bcf757c5c24befef5c59eb7ec1589cfed184d +0 -0
- data/.git/objects/e0/7dd2a6b90bdde86477d621148f47bbba9e8427 +0 -0
- data/.git/objects/e3/153285548db5d39a615acbf0748cfa21e96ecb +0 -0
- data/.git/objects/f5/8ca6b23d3ab90715ea6ba514546a416e50064e +0 -0
- data/.git/objects/f8/9eb17d4ff10a745b70063cf5b8ff76ec66e102 +0 -0
- data/.git/refs/heads/master +1 -1
- data/.git/refs/remotes/origin/master +1 -1
- data/Rakefile +1 -1
- data/lib/mongo_mapper_ext/plugins/default_scope.rb +42 -6
- data/lib/rails_ext/active_support/micelaneous.rb +1 -1
- data/lib/rails_ext/asset_packager/action_view.rb +2 -1
- data/spec/mongo_mapper_ext/scope_spec.rb +118 -0
- metadata +28 -4
- data/spec/mongo_mapper_ext/default_scope_spec.rb +0 -62
data/.git/index
CHANGED
Binary file
|
data/.git/logs/HEAD
CHANGED
@@ -55,3 +55,7 @@ d4faaed37686ae3ce16b636defd37eeacb38470d 978c0ddb7dbecadce5fbc740347598999ccc822
|
|
55
55
|
978c0ddb7dbecadce5fbc740347598999ccc8223 804a20e92f38623945cdb50ed8864d014632cf44 alex <alex@amac.local> 1269602049 +0300 commit: upd
|
56
56
|
804a20e92f38623945cdb50ed8864d014632cf44 161cacdd64a4f135d805f5a2f23d006592b8c835 alex <alex@amac.local> 1269602071 +0300 commit: upd
|
57
57
|
161cacdd64a4f135d805f5a2f23d006592b8c835 a3ece30fb5827ed20d26a75253bb4854f657055a alex <alex@amac.local> 1269602138 +0300 commit: upd
|
58
|
+
a3ece30fb5827ed20d26a75253bb4854f657055a 0538f41ddebf7fa8c71ebe99c5288d5e11c3fb86 alex <alex@amac.local> 1269866636 +0400 commit: upd
|
59
|
+
0538f41ddebf7fa8c71ebe99c5288d5e11c3fb86 6a02fd5698264a4165c46af5175a39f5b130de9c alex <alex@amac.local> 1269956190 +0400 commit: update mongo scope
|
60
|
+
6a02fd5698264a4165c46af5175a39f5b130de9c 8f53b7b2ab88b130763bc42b3ded7983d27bff7a alex <alex@amac.local> 1269956206 +0400 commit: update mongo scope
|
61
|
+
8f53b7b2ab88b130763bc42b3ded7983d27bff7a b4343d9284a89e2971022f8d4acf7865d8341c6d alex <alex@amac.local> 1270054079 +0400 commit: upd
|
data/.git/logs/refs/heads/master
CHANGED
@@ -55,3 +55,7 @@ d4faaed37686ae3ce16b636defd37eeacb38470d 978c0ddb7dbecadce5fbc740347598999ccc822
|
|
55
55
|
978c0ddb7dbecadce5fbc740347598999ccc8223 804a20e92f38623945cdb50ed8864d014632cf44 alex <alex@amac.local> 1269602049 +0300 commit: upd
|
56
56
|
804a20e92f38623945cdb50ed8864d014632cf44 161cacdd64a4f135d805f5a2f23d006592b8c835 alex <alex@amac.local> 1269602071 +0300 commit: upd
|
57
57
|
161cacdd64a4f135d805f5a2f23d006592b8c835 a3ece30fb5827ed20d26a75253bb4854f657055a alex <alex@amac.local> 1269602138 +0300 commit: upd
|
58
|
+
a3ece30fb5827ed20d26a75253bb4854f657055a 0538f41ddebf7fa8c71ebe99c5288d5e11c3fb86 alex <alex@amac.local> 1269866636 +0400 commit: upd
|
59
|
+
0538f41ddebf7fa8c71ebe99c5288d5e11c3fb86 6a02fd5698264a4165c46af5175a39f5b130de9c alex <alex@amac.local> 1269956190 +0400 commit: update mongo scope
|
60
|
+
6a02fd5698264a4165c46af5175a39f5b130de9c 8f53b7b2ab88b130763bc42b3ded7983d27bff7a alex <alex@amac.local> 1269956206 +0400 commit: update mongo scope
|
61
|
+
8f53b7b2ab88b130763bc42b3ded7983d27bff7a b4343d9284a89e2971022f8d4acf7865d8341c6d alex <alex@amac.local> 1270054079 +0400 commit: upd
|
@@ -42,3 +42,6 @@ f9cf98993bf7067d5b45b0f06dc36fdedba5ffcf 3b354d07a5bb5780eeffa4c12968214b1edb8b2
|
|
42
42
|
3a95e5465ca8d93ae2f53d1a77b0215a10f18021 d4faaed37686ae3ce16b636defd37eeacb38470d alex <alex@amac.local> 1269316281 +0300 update by push
|
43
43
|
d4faaed37686ae3ce16b636defd37eeacb38470d 161cacdd64a4f135d805f5a2f23d006592b8c835 alex <alex@amac.local> 1269602079 +0300 update by push
|
44
44
|
161cacdd64a4f135d805f5a2f23d006592b8c835 a3ece30fb5827ed20d26a75253bb4854f657055a alex <alex@amac.local> 1269602143 +0300 update by push
|
45
|
+
a3ece30fb5827ed20d26a75253bb4854f657055a 0538f41ddebf7fa8c71ebe99c5288d5e11c3fb86 alex <alex@amac.local> 1269866645 +0400 update by push
|
46
|
+
0538f41ddebf7fa8c71ebe99c5288d5e11c3fb86 6a02fd5698264a4165c46af5175a39f5b130de9c alex <alex@amac.local> 1269956196 +0400 update by push
|
47
|
+
6a02fd5698264a4165c46af5175a39f5b130de9c b4343d9284a89e2971022f8d4acf7865d8341c6d alex <alex@amac.local> 1270054087 +0400 update by push
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
data/.git/refs/heads/master
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
b4343d9284a89e2971022f8d4acf7865d8341c6d
|
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
b4343d9284a89e2971022f8d4acf7865d8341c6d
|
data/Rakefile
CHANGED
@@ -18,7 +18,7 @@ require 'fileutils'
|
|
18
18
|
|
19
19
|
spec = Gem::Specification.new do |s|
|
20
20
|
s.name = "rails-ext"
|
21
|
-
s.version = "0.3.
|
21
|
+
s.version = "0.3.8"
|
22
22
|
s.summary = "Set of common Ruby on Rails extensions"
|
23
23
|
s.description = "Set of common Ruby on Rails extensions"
|
24
24
|
s.author = "Alexey Petrushin"
|
@@ -3,11 +3,6 @@ module MongoMapper
|
|
3
3
|
module DefaultScope
|
4
4
|
|
5
5
|
module ClassMethods
|
6
|
-
def default_scope options = nil, &block
|
7
|
-
options.should! :be_a, [NilClass, Hash]
|
8
|
-
self.write_inheritable_attribute(:default_scope, (options || block))
|
9
|
-
end
|
10
|
-
|
11
6
|
def find_one options = {}
|
12
7
|
super default_scope_options.merge(options)
|
13
8
|
end
|
@@ -20,10 +15,45 @@ module MongoMapper
|
|
20
15
|
super default_scope_options.merge(options)
|
21
16
|
end
|
22
17
|
|
18
|
+
def with_exclusive_scope options = {}, &block
|
19
|
+
Thread.current['mm_with_exclusive_scope'].should! :be_nil
|
20
|
+
|
21
|
+
before = Thread.current['mm_with_exclusive_scope']
|
22
|
+
begin
|
23
|
+
Thread.current['mm_with_exclusive_scope'] = options
|
24
|
+
block.call if block
|
25
|
+
ensure
|
26
|
+
Thread.current['mm_with_exclusive_scope'] = before
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def with_scope options = {}, &block
|
31
|
+
Thread.current['mm_with_exclusive_scope'].should! :be_nil
|
32
|
+
|
33
|
+
before = Thread.current['mm_with_scope']
|
34
|
+
begin
|
35
|
+
options = before.merge options if before
|
36
|
+
Thread.current['mm_with_scope'] = options
|
37
|
+
block.call if block
|
38
|
+
ensure
|
39
|
+
Thread.current['mm_with_scope'] = before
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
23
43
|
protected
|
44
|
+
def default_scope options = nil, &block
|
45
|
+
options.should! :be_a, [NilClass, Hash]
|
46
|
+
self.write_inheritable_attribute(:default_scope, (options || block))
|
47
|
+
end
|
48
|
+
|
49
|
+
private
|
24
50
|
def default_scope_options
|
25
51
|
default_scope = self.read_inheritable_attribute(:default_scope)
|
26
|
-
|
52
|
+
|
53
|
+
exclusive_options = Thread.current['mm_with_exclusive_scope']
|
54
|
+
return exclusive_options if exclusive_options
|
55
|
+
|
56
|
+
options = if default_scope
|
27
57
|
if default_scope.respond_to? :call
|
28
58
|
default_scope.call self
|
29
59
|
else
|
@@ -32,6 +62,12 @@ module MongoMapper
|
|
32
62
|
else
|
33
63
|
{}
|
34
64
|
end
|
65
|
+
|
66
|
+
if scope_options = Thread.current['mm_with_scope']
|
67
|
+
options = options.merge scope_options
|
68
|
+
end
|
69
|
+
|
70
|
+
options
|
35
71
|
end
|
36
72
|
end
|
37
73
|
|
@@ -8,6 +8,7 @@ ActionView::Base.class_eval do
|
|
8
8
|
end
|
9
9
|
|
10
10
|
protected
|
11
|
+
# TODO3 cache it
|
11
12
|
def merged_packages thetype, package_names
|
12
13
|
found_packages = {}
|
13
14
|
|
@@ -22,7 +23,7 @@ ActionView::Base.class_eval do
|
|
22
23
|
end
|
23
24
|
end
|
24
25
|
|
25
|
-
found_packages.
|
26
|
+
package_names.each{|name| found_packages.should! :include, name.to_s}
|
26
27
|
|
27
28
|
if AssetPackager.merge_environments.include? Rails.env
|
28
29
|
found_packages.collect do |name, files|
|
@@ -0,0 +1,118 @@
|
|
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
|
+
MongoMapper.database = 'test'
|
9
|
+
end
|
10
|
+
|
11
|
+
before :each do
|
12
|
+
class ::ScopeSample
|
13
|
+
include MongoMapper::Document
|
14
|
+
plugin MongoMapper::Plugins::DefaultScope
|
15
|
+
|
16
|
+
key :name, String
|
17
|
+
end
|
18
|
+
|
19
|
+
ScopeSample.delete_all
|
20
|
+
ScopeSample.create! :name => 'a'
|
21
|
+
ScopeSample.create! :name => 'b'
|
22
|
+
end
|
23
|
+
|
24
|
+
after :each do
|
25
|
+
Object.send :remove_const, :ScopeSample if Object.const_defined? :ScopeSample
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should not affect objects without default_scope" do
|
29
|
+
ScopeSample.count.should == 2
|
30
|
+
ScopeSample.all.count.should == 2
|
31
|
+
end
|
32
|
+
|
33
|
+
it "default_scope" do
|
34
|
+
ScopeSample.send :default_scope, :name => 'a'
|
35
|
+
ScopeSample.count.should == 1
|
36
|
+
ScopeSample.all.count.should == 1
|
37
|
+
ScopeSample.first.name.should == 'a'
|
38
|
+
end
|
39
|
+
|
40
|
+
it "default_scope as block" do
|
41
|
+
ScopeSample.send :default_scope do
|
42
|
+
{:name => 'a'}
|
43
|
+
end
|
44
|
+
ScopeSample.count.should == 1
|
45
|
+
ScopeSample.all.count.should == 1
|
46
|
+
ScopeSample.first.name.should == 'a'
|
47
|
+
end
|
48
|
+
|
49
|
+
it "default_scope should be inherited" do
|
50
|
+
ScopeSample.send :default_scope, :name => 'a'
|
51
|
+
class ScopeSampleAncestor < ScopeSample
|
52
|
+
end
|
53
|
+
|
54
|
+
ScopeSampleAncestor.count.should == 1
|
55
|
+
ScopeSampleAncestor.all.count.should == 1
|
56
|
+
ScopeSampleAncestor.first.name.should == 'a'
|
57
|
+
end
|
58
|
+
|
59
|
+
it "ancestors should be able to override default_scope" do
|
60
|
+
ScopeSample.send :default_scope, :name => 'a'
|
61
|
+
class ScopeSampleAncestor2 < ScopeSample
|
62
|
+
default_scope :name => 'b'
|
63
|
+
end
|
64
|
+
|
65
|
+
ScopeSampleAncestor2.count.should == 1
|
66
|
+
ScopeSampleAncestor2.all.count.should == 1
|
67
|
+
ScopeSampleAncestor2.first.name.should == 'b'
|
68
|
+
end
|
69
|
+
|
70
|
+
it "shouldn't allow to nest with_exclusive_scope" do
|
71
|
+
lambda{
|
72
|
+
ScopeSample.with_exclusive_scope do
|
73
|
+
ScopeSample.with_exclusive_scope{}
|
74
|
+
end
|
75
|
+
}.should raise_error(AssertionError)
|
76
|
+
|
77
|
+
lambda{
|
78
|
+
ScopeSample.with_exclusive_scope do
|
79
|
+
ScopeSample.with_scope{}
|
80
|
+
end
|
81
|
+
}.should raise_error(AssertionError)
|
82
|
+
end
|
83
|
+
|
84
|
+
it "with_exclusive_scope should clear other scopes" do
|
85
|
+
ScopeSample.send :default_scope, :name => 'a'
|
86
|
+
|
87
|
+
ScopeSample.with_scope :name => 'a' do
|
88
|
+
ScopeSample.with_exclusive_scope :name => 'b' do
|
89
|
+
ScopeSample.count.should == 1
|
90
|
+
ScopeSample.first.name.should == 'b'
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
it "with_scope" do
|
96
|
+
ScopeSample.with_scope :name => 'a' do
|
97
|
+
ScopeSample.count.should == 1
|
98
|
+
ScopeSample.first.name.should == 'a'
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
it "with scope should merge scope" do
|
103
|
+
ScopeSample.class_eval do
|
104
|
+
key :name2, String
|
105
|
+
key :name3, String
|
106
|
+
default_scope :name => 'a'
|
107
|
+
end
|
108
|
+
ScopeSample.create! :name => 'a', :name2 => 'a2', :name3 => 'a3'
|
109
|
+
ScopeSample.create! :name => 'b', :name2 => 'b2', :name3 => 'b3'
|
110
|
+
|
111
|
+
ScopeSample.with_scope :name2 => 'a2' do
|
112
|
+
ScopeSample.with_scope :name3 => 'a3' do
|
113
|
+
ScopeSample.count.should == 1
|
114
|
+
ScopeSample.first.name2.should == 'a2'
|
115
|
+
end
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 3
|
8
|
-
-
|
9
|
-
version: 0.3.
|
8
|
+
- 8
|
9
|
+
version: 0.3.8
|
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-
|
17
|
+
date: 2010-03-31 00:00:00 +04:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -65,9 +65,11 @@ files:
|
|
65
65
|
- .git/objects/00/e06caeaae19732437b0181b5dbdf916c2c59e3
|
66
66
|
- .git/objects/00/e127e49ab0f08a8190bf5a95777c972603de9a
|
67
67
|
- .git/objects/00/fd8045e0953bb11a521248dc27d4af2336c6d5
|
68
|
+
- .git/objects/02/12d2da342b1ab3c0e7a7f2770686a7bb5d7806
|
68
69
|
- .git/objects/02/469b717b4bd61ad27a3fe664ce0646a8325399
|
69
70
|
- .git/objects/03/9e318355ab5ab32c3b6bc634d3d8e64f444ef8
|
70
71
|
- .git/objects/04/cd62e7f8158fe54d21e6f63617c43b593b8b59
|
72
|
+
- .git/objects/05/38f41ddebf7fa8c71ebe99c5288d5e11c3fb86
|
71
73
|
- .git/objects/05/9bdc20ed12957701f4b3931e2b1779de7adccf
|
72
74
|
- .git/objects/06/c2384aa5f8b5614038b48a726d1d4f98a00f3b
|
73
75
|
- .git/objects/06/c3225bad9d5b80e7b3bde79ff3c2da591722bf
|
@@ -150,6 +152,7 @@ files:
|
|
150
152
|
- .git/objects/2b/0fbe9a4022a4a112d2fa583f79dc6221ef2baf
|
151
153
|
- .git/objects/2c/21f9d1b567c0d8f3d74e71b38beee67a53afdc
|
152
154
|
- .git/objects/2c/633c11fb72405c6646493bc6c4d8c4fed0b9a6
|
155
|
+
- .git/objects/2c/b04524ccd690f1cb4345586ca9138f9615afd5
|
153
156
|
- .git/objects/2d/043376f1bc26b2dad3e79fc72ea14341ea437d
|
154
157
|
- .git/objects/2e/3e3fc8e46949a9b944da3c36207c444aa2c9b7
|
155
158
|
- .git/objects/2e/f02adc5485c579d75dfacf7034b20760f2fdf4
|
@@ -159,6 +162,7 @@ files:
|
|
159
162
|
- .git/objects/31/de78f3710d86d0a5f494eb93405f497d8238fe
|
160
163
|
- .git/objects/33/9755448515fb77f691d6197bd65d5b5d53fc24
|
161
164
|
- .git/objects/34/e6093e9cd6ecc08b1a1834418e83bb277e8887
|
165
|
+
- .git/objects/35/0b6a89c8f9704cb4f1e037ea638e952a487017
|
162
166
|
- .git/objects/35/a5ef969e9dd65a06260954e2b66f7a7f107568
|
163
167
|
- .git/objects/35/d78424bc393bb5acc12c52c031129aa3ceb8c5
|
164
168
|
- .git/objects/36/66d56066f3aeb0f9fc342de42f25e298341a61
|
@@ -173,9 +177,11 @@ files:
|
|
173
177
|
- .git/objects/3a/ff2a7bfdf3a677812899ede62d084369c7c5f4
|
174
178
|
- .git/objects/3b/354d07a5bb5780eeffa4c12968214b1edb8b24
|
175
179
|
- .git/objects/3b/cebd028c4b8312b2c36b14eddb57836c328a67
|
180
|
+
- .git/objects/3b/da284efc6c07900db7dd00a9f3082d2c13d55e
|
176
181
|
- .git/objects/3c/994e760012127915c1494a073cea51ef3b43e8
|
177
182
|
- .git/objects/3d/5b84167d35cb75647f38a6d475a452ba3c6178
|
178
183
|
- .git/objects/3d/ce52a15f01f1a8f99e65d148341bea71065129
|
184
|
+
- .git/objects/3d/e882c2630c3cd215641a6c73ca83ad2d741b13
|
179
185
|
- .git/objects/3e/c0da65fe2e572ad31203f9412baa09dfdf49d3
|
180
186
|
- .git/objects/3e/cc8b7e1c4837559b36939612408b4d9def8fac
|
181
187
|
- .git/objects/3e/f23cf310c5eebac930a19d36a0561dd362d3ee
|
@@ -184,6 +190,7 @@ files:
|
|
184
190
|
- .git/objects/40/215c0554202fc46dc2fca94ed21e2920ce1e84
|
185
191
|
- .git/objects/40/7adfb7f6188b0bb0b88cf9391943e1aaa32374
|
186
192
|
- .git/objects/40/b5d1a81a061ce0e2f315b7e741ec70e0defe1d
|
193
|
+
- .git/objects/43/6b9b73da4632657be4800b250741f37fdbb505
|
187
194
|
- .git/objects/44/c96e2a778dcc62c10b3c329ab0211115a9f546
|
188
195
|
- .git/objects/46/3353505eed0c799d05f025788437decbabafec
|
189
196
|
- .git/objects/46/d12e0420cd6341a2720730cc45703fc835efb6
|
@@ -219,6 +226,7 @@ files:
|
|
219
226
|
- .git/objects/53/b8187421c09e55e44b8d6fb3c4cd7feb0a51b2
|
220
227
|
- .git/objects/54/713b018cb71a95e3f10510ea96b9f103ef0255
|
221
228
|
- .git/objects/55/0dd68cd7e6918dd1473d609e8cafcde8f89009
|
229
|
+
- .git/objects/55/45d0d521bb723db8feae0223fa838a183e38b7
|
222
230
|
- .git/objects/55/6c13b26b6cecd286427a7f16c60c86c7df7885
|
223
231
|
- .git/objects/55/d1f1efc344266d472094b1fd2f247b97de1c8b
|
224
232
|
- .git/objects/56/b49aebdec66032571751e38f82d3ce550ccddf
|
@@ -231,6 +239,7 @@ files:
|
|
231
239
|
- .git/objects/5a/c5589c8e02ab34cd516e172250c80d4ded5ce6
|
232
240
|
- .git/objects/5c/95be85f2a2a984454fed4941a5ae00062634c5
|
233
241
|
- .git/objects/5c/d7e89f2b29ed92fd51e2c6b2ee74db376d17d7
|
242
|
+
- .git/objects/5d/c38b1f2d3893c8e41b05de2d121b525f888e5c
|
234
243
|
- .git/objects/5f/483b0c41645f8882f549c1c6d0274bb592140a
|
235
244
|
- .git/objects/60/74f4e0c668417e06938cb77640240e9c2b6e0e
|
236
245
|
- .git/objects/60/a42d757f842f6ce1a27284630ffd3deb867857
|
@@ -254,6 +263,7 @@ files:
|
|
254
263
|
- .git/objects/68/a8fc1e77fc27530430b55046609ee80cd9b2ad
|
255
264
|
- .git/objects/69/02e8cbb5ad325c33b6abaac081d1df35d16202
|
256
265
|
- .git/objects/69/ad159f329112a498fcc47c4943f4d9b59af1cc
|
266
|
+
- .git/objects/6a/02fd5698264a4165c46af5175a39f5b130de9c
|
257
267
|
- .git/objects/6a/2daaf6529a3841c7fd39683d9bcec79b48f79e
|
258
268
|
- .git/objects/6a/90d6784ac3b6580ef470dac68c2d93c276d6a7
|
259
269
|
- .git/objects/6a/cdfb69624140a67634b65ab8230cc5e0ffd543
|
@@ -300,6 +310,8 @@ files:
|
|
300
310
|
- .git/objects/82/03c2c6cdd29e1e20e88fbb81e63b7ea1ec2899
|
301
311
|
- .git/objects/83/6f33959bcf517b9952aefb3fdfdd7ff3c1f207
|
302
312
|
- .git/objects/83/acf31cf1fc7e0e97878d11b2f5c1172bf2d0b2
|
313
|
+
- .git/objects/83/fa8aa3ad64de1003adc5a1c7c31c3d98a7abf4
|
314
|
+
- .git/objects/84/bfc21516dfc947e9aa64a47000b46da2c801d9
|
303
315
|
- .git/objects/85/eee9f4c1a6f710ed87bf28a0531275777f8848
|
304
316
|
- .git/objects/85/fd531f7352ad8f5ac030eed2204a662dd10a66
|
305
317
|
- .git/objects/86/23de615f686de621ca23cbbff6a07885101df9
|
@@ -317,6 +329,7 @@ files:
|
|
317
329
|
- .git/objects/8e/3cfb391de711b5fecfbdf2860fa37b019e8036
|
318
330
|
- .git/objects/8e/69b6cf3ec8b49270091b4a206ccf326679dc20
|
319
331
|
- .git/objects/8e/a47de58a27dd343b3ecd3dd5e0fab88e268a72
|
332
|
+
- .git/objects/8f/53b7b2ab88b130763bc42b3ded7983d27bff7a
|
320
333
|
- .git/objects/8f/5465ea782955ad019122d92a0f162945339f8e
|
321
334
|
- .git/objects/90/57dd59aea225dd8f4b1dfa3e10c6096671fab9
|
322
335
|
- .git/objects/90/5fe8a081a30b8d3d198590c434e8d0e3b0a4a2
|
@@ -329,6 +342,7 @@ files:
|
|
329
342
|
- .git/objects/93/f9a6b596879347290cde161b03052bb22021de
|
330
343
|
- .git/objects/94/72f3ac9e890231482aadd774bdc1c9ba742497
|
331
344
|
- .git/objects/94/afd196cc89d60f0a06d4cad619eaa79921a9ae
|
345
|
+
- .git/objects/94/ba2c1a45bc1a8cf3625f4889c507b39c664576
|
332
346
|
- .git/objects/95/a9d4abd8363e64d221e0f7d47ae69cb055ea7b
|
333
347
|
- .git/objects/96/47afbafd293f6994316b2cc0d3e813c1878f87
|
334
348
|
- .git/objects/96/48a1590ab953b7ec3bc9d06e460c0004962b77
|
@@ -338,6 +352,7 @@ files:
|
|
338
352
|
- .git/objects/97/8c0ddb7dbecadce5fbc740347598999ccc8223
|
339
353
|
- .git/objects/98/6915a151ae2adb8f8e81e11038f7a1ca731bbc
|
340
354
|
- .git/objects/98/8bfa77097695a4771be8e01d0aabd1a01c62fa
|
355
|
+
- .git/objects/99/368683bd721c6c1b8db8eb1b468dffefa61a2e
|
341
356
|
- .git/objects/99/8afa58b56034f5458b4aef2b8255daa53a5bb1
|
342
357
|
- .git/objects/99/a23df6dd9c448928b25f2e749871c6fc696a32
|
343
358
|
- .git/objects/9a/ef8f9aacfa5609934eac4de71d9440a23b1b9f
|
@@ -379,17 +394,20 @@ files:
|
|
379
394
|
- .git/objects/ad/66aac16165dd71456e4488069248d6f10ebb8f
|
380
395
|
- .git/objects/ae/536c345aad67cee8ce167dc91006263e63885f
|
381
396
|
- .git/objects/ae/f24b73cf47992cde67e6b07544872df9bb2530
|
397
|
+
- .git/objects/af/33f2833588e40e441f8b1f4dd26d5c93488334
|
382
398
|
- .git/objects/b0/2c48116db702256abf27fab4236c84bd2d2dbc
|
383
399
|
- .git/objects/b0/2d1be335e81533c7385970b28ea3b2a0ac5436
|
384
400
|
- .git/objects/b0/39fcd38009980eb74d6bcef22d11e02639a530
|
385
401
|
- .git/objects/b0/426bd4d76304278e6af43ce2d708ad26335514
|
386
402
|
- .git/objects/b1/0d2b27582bb0d779efe6e17c45aaa671d32f3a
|
387
403
|
- .git/objects/b1/2623653bc803aeab5b77efdc72f79fb8f9c80e
|
404
|
+
- .git/objects/b1/8a3c6bf39b910b9805973578074e6d6b692a4a
|
388
405
|
- .git/objects/b2/99ac9d0ac730461d7610161b99ee4191c7c2b8
|
389
406
|
- .git/objects/b2/cd852090540d0b2450b901397edd924d8c0ba9
|
390
407
|
- .git/objects/b3/c029798d5af50b4ab725aee6cf66ee11c4ff7a
|
391
408
|
- .git/objects/b4/0345153922bfcdbbc4785cc3146e9e7c60dbbd
|
392
409
|
- .git/objects/b4/228251babf3a84ac181d462fdd383816bd23b8
|
410
|
+
- .git/objects/b4/343d9284a89e2971022f8d4acf7865d8341c6d
|
393
411
|
- .git/objects/b4/eb909dd819bf870d2445bddc0d7f00678b11b6
|
394
412
|
- .git/objects/b5/15828bb32356501aa81bb4e808ea5d7d77f068
|
395
413
|
- .git/objects/b5/33c1c1bca9eae5b7e75c639fff8ec2c2f9fea1
|
@@ -451,10 +469,12 @@ files:
|
|
451
469
|
- .git/objects/d6/ff7949e59f44649d35e95ed0240ead0ce94077
|
452
470
|
- .git/objects/d7/a33fe1ff44a661941d742270c3299a862689ca
|
453
471
|
- .git/objects/d7/dc82a39bd4d292230a212479dc4c0d7786474d
|
472
|
+
- .git/objects/d8/bd32eafc1bcd962f7e2e1244071c921cd465fe
|
454
473
|
- .git/objects/d9/0981681872c639fc00eb95ffa9dc17ad9f9599
|
455
474
|
- .git/objects/db/64f75586d2786dd374615d935889e185f26fab
|
456
475
|
- .git/objects/db/951c9a303fba608e0066e2aa68c3b7d8d9aea6
|
457
476
|
- .git/objects/db/d962bcfbb85c6da46c868594983f3cda9fcad8
|
477
|
+
- .git/objects/dc/0bcf757c5c24befef5c59eb7ec1589cfed184d
|
458
478
|
- .git/objects/dc/773412a3a73c02f34edfaeadc89473cfe61c40
|
459
479
|
- .git/objects/dc/d404a6183c1b2160add042127ada7ff83c9b7c
|
460
480
|
- .git/objects/dc/e1fc65f9462792558151feab3fa64abf3a229f
|
@@ -464,11 +484,13 @@ files:
|
|
464
484
|
- .git/objects/de/57906fbec41c830adf724743fd20dba762acab
|
465
485
|
- .git/objects/df/f63029f32b25c2bf18d0f3f4e7907daa7c1bca
|
466
486
|
- .git/objects/e0/444cc3908c5096319636ca42c403a78deda3f9
|
487
|
+
- .git/objects/e0/7dd2a6b90bdde86477d621148f47bbba9e8427
|
467
488
|
- .git/objects/e0/d8e7ab5a565d95d44f2a9a6246be6003a3de7b
|
468
489
|
- .git/objects/e1/0c4f3ec5729fd4d2580d74e96a0489644a041a
|
469
490
|
- .git/objects/e1/323977dc6cda25967e6ec6166430c2c0f08e32
|
470
491
|
- .git/objects/e2/bc2615d3aa154bba2897c562a15ed19136d518
|
471
492
|
- .git/objects/e2/c37248908c561be703c405e237fbf0c743977a
|
493
|
+
- .git/objects/e3/153285548db5d39a615acbf0748cfa21e96ecb
|
472
494
|
- .git/objects/e3/771a0d9f7b7be0df4f1ad709b7d6e0fe6536a9
|
473
495
|
- .git/objects/e3/a7cacb84225125a2bc91b42394e7de7de7b205
|
474
496
|
- .git/objects/e3/c22b30641292e851811969cbc0f9ceb5b1ac05
|
@@ -507,12 +529,14 @@ files:
|
|
507
529
|
- .git/objects/f3/7784042bc99c16c02fd104dda82aafa42d4c9c
|
508
530
|
- .git/objects/f4/2863a866b6cd3bb09d0482052cbf2da7fb4e5a
|
509
531
|
- .git/objects/f4/2bc1aaa21ccdaa1bc0cfa8efb982b09b7eebb1
|
532
|
+
- .git/objects/f5/8ca6b23d3ab90715ea6ba514546a416e50064e
|
510
533
|
- .git/objects/f5/91a5c39e03e2102c9101db957b48c8c76e194c
|
511
534
|
- .git/objects/f6/0fd8c2582e0f7688877f12f78ddb97a291046c
|
512
535
|
- .git/objects/f6/3ad03a8daa1602df63aab3838947c18fa63797
|
513
536
|
- .git/objects/f6/b9bcda0a6940c634c0ac0d6ac626028927e1da
|
514
537
|
- .git/objects/f7/32b167a61d8db0328f0196af00b55147ebf756
|
515
538
|
- .git/objects/f7/b177b2c6b25dd886d23d6be87bcf802af9b513
|
539
|
+
- .git/objects/f8/9eb17d4ff10a745b70063cf5b8ff76ec66e102
|
516
540
|
- .git/objects/f9/8d0f95460a7a3f63ab4c08ad5508fd32d1b5c2
|
517
541
|
- .git/objects/f9/cf98993bf7067d5b45b0f06dc36fdedba5ffcf
|
518
542
|
- .git/objects/f9/ef6dd08a60dec5d5e4e7a9b08f693ebf76da39
|
@@ -595,10 +619,10 @@ files:
|
|
595
619
|
- lib/rails_ext/micelaneous/rails_require.rb
|
596
620
|
- lib/rails_ext/micelaneous/safe_hash.rb
|
597
621
|
- lib/rails_ext/micelaneous.rb
|
598
|
-
- spec/mongo_mapper_ext/default_scope_spec.rb
|
599
622
|
- spec/mongo_mapper_ext/micelaneous_plugin_spec.rb
|
600
623
|
- spec/mongo_mapper_ext/micelaneous_spec.rb
|
601
624
|
- spec/mongo_mapper_ext/mongo_mapper_migration_spec.rb
|
625
|
+
- spec/mongo_mapper_ext/scope_spec.rb
|
602
626
|
- spec/rails_ext/safe_hash_spec.rb
|
603
627
|
- spec/spec.opts
|
604
628
|
- public/rails_ext/rails_ext.css
|
@@ -1,62 +0,0 @@
|
|
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
|