mongoid 1.2.14 → 1.9.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 (200) hide show
  1. data/lib/mongoid.rb +10 -3
  2. data/lib/mongoid/associations.rb +133 -97
  3. data/lib/mongoid/associations/belongs_to_related.rb +2 -3
  4. data/lib/mongoid/associations/{belongs_to.rb → embedded_in.rb} +14 -6
  5. data/lib/mongoid/associations/{has_many.rb → embeds_many.rb} +89 -31
  6. data/lib/mongoid/associations/{has_one.rb → embeds_one.rb} +8 -7
  7. data/lib/mongoid/associations/has_many_related.rb +52 -7
  8. data/lib/mongoid/associations/has_one_related.rb +8 -4
  9. data/lib/mongoid/associations/meta_data.rb +2 -1
  10. data/lib/mongoid/associations/options.rb +6 -1
  11. data/lib/mongoid/associations/proxy.rb +14 -21
  12. data/lib/mongoid/attributes.rb +27 -12
  13. data/lib/mongoid/collection.rb +4 -3
  14. data/lib/mongoid/collections.rb +41 -0
  15. data/lib/mongoid/collections/master.rb +3 -2
  16. data/lib/mongoid/collections/slaves.rb +3 -2
  17. data/lib/mongoid/components.rb +21 -19
  18. data/lib/mongoid/concern.rb +31 -0
  19. data/lib/mongoid/config.rb +117 -12
  20. data/lib/mongoid/contexts.rb +1 -1
  21. data/lib/mongoid/contexts/enumerable.rb +1 -1
  22. data/lib/mongoid/contexts/mongo.rb +1 -1
  23. data/lib/mongoid/contexts/paging.rb +10 -2
  24. data/lib/mongoid/criterion/inclusion.rb +17 -0
  25. data/lib/mongoid/criterion/optional.rb +1 -1
  26. data/lib/mongoid/dirty.rb +253 -0
  27. data/lib/mongoid/document.rb +81 -52
  28. data/lib/mongoid/errors.rb +32 -1
  29. data/lib/mongoid/extensions.rb +11 -9
  30. data/lib/mongoid/extensions/big_decimal/conversions.rb +2 -2
  31. data/lib/mongoid/extensions/boolean/conversions.rb +8 -2
  32. data/lib/mongoid/extensions/date/conversions.rb +13 -4
  33. data/lib/mongoid/extensions/datetime/conversions.rb +1 -6
  34. data/lib/mongoid/extensions/float/conversions.rb +5 -1
  35. data/lib/mongoid/extensions/hash/assimilation.rb +12 -3
  36. data/lib/mongoid/extensions/hash/conversions.rb +34 -4
  37. data/lib/mongoid/extensions/integer/conversions.rb +5 -1
  38. data/lib/mongoid/extensions/nil/assimilation.rb +4 -0
  39. data/lib/mongoid/extensions/object/conversions.rb +1 -1
  40. data/lib/mongoid/extensions/string/conversions.rb +1 -1
  41. data/lib/mongoid/extensions/symbol/inflections.rb +1 -1
  42. data/lib/mongoid/extensions/time_conversions.rb +35 -0
  43. data/lib/mongoid/extras.rb +6 -9
  44. data/lib/mongoid/factory.rb +2 -1
  45. data/lib/mongoid/field.rb +9 -2
  46. data/lib/mongoid/fields.rb +1 -0
  47. data/lib/mongoid/identity.rb +3 -3
  48. data/lib/mongoid/indexes.rb +3 -3
  49. data/lib/mongoid/memoization.rb +8 -2
  50. data/lib/mongoid/named_scope.rb +0 -3
  51. data/lib/mongoid/observable.rb +30 -0
  52. data/lib/mongoid/paths.rb +62 -0
  53. data/lib/mongoid/persistence.rb +222 -0
  54. data/lib/mongoid/persistence/command.rb +39 -0
  55. data/lib/mongoid/persistence/insert.rb +50 -0
  56. data/lib/mongoid/persistence/insert_embedded.rb +38 -0
  57. data/lib/mongoid/persistence/remove.rb +39 -0
  58. data/lib/mongoid/persistence/remove_all.rb +37 -0
  59. data/lib/mongoid/persistence/remove_embedded.rb +50 -0
  60. data/lib/mongoid/persistence/update.rb +63 -0
  61. data/lib/mongoid/state.rb +28 -21
  62. data/lib/mongoid/timestamps.rb +5 -8
  63. data/lib/mongoid/version.rb +4 -0
  64. data/lib/mongoid/versioning.rb +6 -7
  65. metadata +81 -300
  66. data/.gitignore +0 -6
  67. data/.watchr +0 -29
  68. data/Rakefile +0 -53
  69. data/VERSION +0 -1
  70. data/caliper.yml +0 -4
  71. data/lib/mongoid/collections/mimic.rb +0 -46
  72. data/lib/mongoid/commands.rb +0 -174
  73. data/lib/mongoid/commands/create.rb +0 -21
  74. data/lib/mongoid/commands/delete.rb +0 -16
  75. data/lib/mongoid/commands/delete_all.rb +0 -23
  76. data/lib/mongoid/commands/deletion.rb +0 -18
  77. data/lib/mongoid/commands/destroy.rb +0 -19
  78. data/lib/mongoid/commands/destroy_all.rb +0 -23
  79. data/lib/mongoid/commands/save.rb +0 -27
  80. data/lib/mongoid/extensions/time/conversions.rb +0 -18
  81. data/mongoid.gemspec +0 -395
  82. data/perf/benchmark.rb +0 -77
  83. data/spec/integration/mongoid/associations_spec.rb +0 -340
  84. data/spec/integration/mongoid/attributes_spec.rb +0 -22
  85. data/spec/integration/mongoid/commands_spec.rb +0 -218
  86. data/spec/integration/mongoid/contexts/enumerable_spec.rb +0 -33
  87. data/spec/integration/mongoid/criteria_spec.rb +0 -272
  88. data/spec/integration/mongoid/document_spec.rb +0 -593
  89. data/spec/integration/mongoid/extensions_spec.rb +0 -26
  90. data/spec/integration/mongoid/finders_spec.rb +0 -119
  91. data/spec/integration/mongoid/inheritance_spec.rb +0 -137
  92. data/spec/integration/mongoid/named_scope_spec.rb +0 -46
  93. data/spec/models/address.rb +0 -39
  94. data/spec/models/animal.rb +0 -6
  95. data/spec/models/callbacks.rb +0 -18
  96. data/spec/models/comment.rb +0 -8
  97. data/spec/models/country_code.rb +0 -6
  98. data/spec/models/employer.rb +0 -5
  99. data/spec/models/game.rb +0 -7
  100. data/spec/models/inheritance.rb +0 -56
  101. data/spec/models/location.rb +0 -5
  102. data/spec/models/mixed_drink.rb +0 -4
  103. data/spec/models/name.rb +0 -13
  104. data/spec/models/namespacing.rb +0 -11
  105. data/spec/models/patient.rb +0 -4
  106. data/spec/models/person.rb +0 -99
  107. data/spec/models/pet.rb +0 -7
  108. data/spec/models/pet_owner.rb +0 -6
  109. data/spec/models/phone.rb +0 -7
  110. data/spec/models/post.rb +0 -15
  111. data/spec/models/translation.rb +0 -5
  112. data/spec/models/vet_visit.rb +0 -5
  113. data/spec/spec.opts +0 -3
  114. data/spec/spec_helper.rb +0 -31
  115. data/spec/unit/mongoid/associations/belongs_to_related_spec.rb +0 -145
  116. data/spec/unit/mongoid/associations/belongs_to_spec.rb +0 -193
  117. data/spec/unit/mongoid/associations/has_many_related_spec.rb +0 -420
  118. data/spec/unit/mongoid/associations/has_many_spec.rb +0 -519
  119. data/spec/unit/mongoid/associations/has_one_related_spec.rb +0 -179
  120. data/spec/unit/mongoid/associations/has_one_spec.rb +0 -282
  121. data/spec/unit/mongoid/associations/meta_data_spec.rb +0 -88
  122. data/spec/unit/mongoid/associations/options_spec.rb +0 -192
  123. data/spec/unit/mongoid/associations_spec.rb +0 -595
  124. data/spec/unit/mongoid/attributes_spec.rb +0 -507
  125. data/spec/unit/mongoid/callbacks_spec.rb +0 -55
  126. data/spec/unit/mongoid/collection_spec.rb +0 -187
  127. data/spec/unit/mongoid/collections/cyclic_iterator_spec.rb +0 -75
  128. data/spec/unit/mongoid/collections/master_spec.rb +0 -41
  129. data/spec/unit/mongoid/collections/mimic_spec.rb +0 -43
  130. data/spec/unit/mongoid/collections/slaves_spec.rb +0 -81
  131. data/spec/unit/mongoid/commands/create_spec.rb +0 -30
  132. data/spec/unit/mongoid/commands/delete_all_spec.rb +0 -58
  133. data/spec/unit/mongoid/commands/delete_spec.rb +0 -38
  134. data/spec/unit/mongoid/commands/destroy_all_spec.rb +0 -23
  135. data/spec/unit/mongoid/commands/destroy_spec.rb +0 -50
  136. data/spec/unit/mongoid/commands/save_spec.rb +0 -105
  137. data/spec/unit/mongoid/commands_spec.rb +0 -275
  138. data/spec/unit/mongoid/config_spec.rb +0 -172
  139. data/spec/unit/mongoid/contexts/enumerable_spec.rb +0 -421
  140. data/spec/unit/mongoid/contexts/mongo_spec.rb +0 -682
  141. data/spec/unit/mongoid/contexts_spec.rb +0 -25
  142. data/spec/unit/mongoid/criteria_spec.rb +0 -824
  143. data/spec/unit/mongoid/criterion/complex_spec.rb +0 -19
  144. data/spec/unit/mongoid/criterion/exclusion_spec.rb +0 -91
  145. data/spec/unit/mongoid/criterion/inclusion_spec.rb +0 -219
  146. data/spec/unit/mongoid/criterion/optional_spec.rb +0 -319
  147. data/spec/unit/mongoid/cursor_spec.rb +0 -74
  148. data/spec/unit/mongoid/deprecation_spec.rb +0 -24
  149. data/spec/unit/mongoid/document_spec.rb +0 -952
  150. data/spec/unit/mongoid/errors_spec.rb +0 -103
  151. data/spec/unit/mongoid/extensions/array/accessors_spec.rb +0 -50
  152. data/spec/unit/mongoid/extensions/array/assimilation_spec.rb +0 -24
  153. data/spec/unit/mongoid/extensions/array/conversions_spec.rb +0 -35
  154. data/spec/unit/mongoid/extensions/array/parentization_spec.rb +0 -20
  155. data/spec/unit/mongoid/extensions/big_decimal/conversions_spec.rb +0 -22
  156. data/spec/unit/mongoid/extensions/binary/conversions_spec.rb +0 -22
  157. data/spec/unit/mongoid/extensions/boolean/conversions_spec.rb +0 -49
  158. data/spec/unit/mongoid/extensions/date/conversions_spec.rb +0 -102
  159. data/spec/unit/mongoid/extensions/datetime/conversions_spec.rb +0 -70
  160. data/spec/unit/mongoid/extensions/float/conversions_spec.rb +0 -61
  161. data/spec/unit/mongoid/extensions/hash/accessors_spec.rb +0 -184
  162. data/spec/unit/mongoid/extensions/hash/assimilation_spec.rb +0 -46
  163. data/spec/unit/mongoid/extensions/hash/conversions_spec.rb +0 -21
  164. data/spec/unit/mongoid/extensions/hash/criteria_helpers_spec.rb +0 -17
  165. data/spec/unit/mongoid/extensions/hash/scoping_spec.rb +0 -14
  166. data/spec/unit/mongoid/extensions/integer/conversions_spec.rb +0 -61
  167. data/spec/unit/mongoid/extensions/nil/assimilation_spec.rb +0 -24
  168. data/spec/unit/mongoid/extensions/object/conversions_spec.rb +0 -57
  169. data/spec/unit/mongoid/extensions/proc/scoping_spec.rb +0 -34
  170. data/spec/unit/mongoid/extensions/string/conversions_spec.rb +0 -17
  171. data/spec/unit/mongoid/extensions/string/inflections_spec.rb +0 -208
  172. data/spec/unit/mongoid/extensions/symbol/inflections_spec.rb +0 -91
  173. data/spec/unit/mongoid/extensions/time/conversions_spec.rb +0 -70
  174. data/spec/unit/mongoid/extras_spec.rb +0 -102
  175. data/spec/unit/mongoid/factory_spec.rb +0 -31
  176. data/spec/unit/mongoid/field_spec.rb +0 -143
  177. data/spec/unit/mongoid/fields_spec.rb +0 -181
  178. data/spec/unit/mongoid/finders_spec.rb +0 -404
  179. data/spec/unit/mongoid/identity_spec.rb +0 -109
  180. data/spec/unit/mongoid/indexes_spec.rb +0 -93
  181. data/spec/unit/mongoid/javascript_spec.rb +0 -48
  182. data/spec/unit/mongoid/matchers/all_spec.rb +0 -27
  183. data/spec/unit/mongoid/matchers/default_spec.rb +0 -27
  184. data/spec/unit/mongoid/matchers/exists_spec.rb +0 -56
  185. data/spec/unit/mongoid/matchers/gt_spec.rb +0 -39
  186. data/spec/unit/mongoid/matchers/gte_spec.rb +0 -49
  187. data/spec/unit/mongoid/matchers/in_spec.rb +0 -27
  188. data/spec/unit/mongoid/matchers/lt_spec.rb +0 -39
  189. data/spec/unit/mongoid/matchers/lte_spec.rb +0 -49
  190. data/spec/unit/mongoid/matchers/ne_spec.rb +0 -27
  191. data/spec/unit/mongoid/matchers/nin_spec.rb +0 -27
  192. data/spec/unit/mongoid/matchers/size_spec.rb +0 -27
  193. data/spec/unit/mongoid/matchers_spec.rb +0 -329
  194. data/spec/unit/mongoid/memoization_spec.rb +0 -75
  195. data/spec/unit/mongoid/named_scope_spec.rb +0 -123
  196. data/spec/unit/mongoid/scope_spec.rb +0 -240
  197. data/spec/unit/mongoid/state_spec.rb +0 -83
  198. data/spec/unit/mongoid/timestamps_spec.rb +0 -25
  199. data/spec/unit/mongoid/versioning_spec.rb +0 -41
  200. data/spec/unit/mongoid_spec.rb +0 -46
@@ -1,34 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe Mongoid::Extensions::Proc::Scoping do
4
-
5
- describe "#scoped" do
6
-
7
- context "when the proc accessed a hash" do
8
-
9
- before do
10
- @proc = lambda { |number| { :where => { :count => number } } }
11
- end
12
-
13
- it "calls the hash with the args" do
14
- @proc.scoped(10).should == { :where => { :count => 10 } }
15
- end
16
-
17
- end
18
-
19
- context "when the proc calls a criteria" do
20
-
21
- before do
22
- @proc = lambda { |title| Person.where(:title => title) }
23
- end
24
-
25
- it "returns the criteria scoped" do
26
- @proc.scoped("Sir").should ==
27
- { :where => { :title => "Sir" } }
28
- end
29
-
30
- end
31
-
32
- end
33
-
34
- end
@@ -1,17 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe Mongoid::Extensions::String::Conversions do
4
-
5
- describe "#set" do
6
- it "returns the object to_s" do
7
- String.set(1).should == "1"
8
- end
9
- end
10
-
11
- describe "#get" do
12
- it "returns the string" do
13
- String.get("test").should == "test"
14
- end
15
- end
16
-
17
- end
@@ -1,208 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe Mongoid::Extensions::String::Inflections do
4
-
5
- describe "#collectionize" do
6
-
7
- context "when class is namepaced" do
8
-
9
- it "returns an underscored tableized name" do
10
- Medical::Patient.name.collectionize.should == "medical_patients"
11
- end
12
-
13
- end
14
-
15
- context "when class is not namespaced" do
16
-
17
- it "returns an underscored tableized name" do
18
- MixedDrink.name.collectionize.should == "mixed_drinks"
19
- end
20
-
21
- end
22
-
23
- end
24
-
25
- describe "#identify" do
26
-
27
- context "when parameterizing composite keys" do
28
-
29
- it "converts the string to all lowercase and dashed" do
30
- "A Midsummer Night's Dream".identify.should == "a-midsummer-night-quo-s-dream"
31
- end
32
-
33
- end
34
-
35
- context "when not parameterizing keys" do
36
-
37
- before do
38
- Mongoid.parameterize_keys = false
39
- end
40
-
41
- after do
42
- Mongoid.parameterize_keys = true
43
- end
44
-
45
- it "does nothing to the keys" do
46
- "A Midsummer Night's Dream".identify.should == "A Midsummer Night's Dream"
47
- end
48
- end
49
-
50
- end
51
-
52
- describe "#labelize" do
53
-
54
- it "returns the underscored name humanized" do
55
- MixedDrink.name.labelize.should == "Mixed drink"
56
- end
57
-
58
- end
59
-
60
- describe "#singular?" do
61
-
62
- context "when singular" do
63
-
64
- it "returns true" do
65
- "bat".singular?.should be_true
66
- end
67
-
68
- context "when string is added to inflections" do
69
-
70
- it "returns true" do
71
- "address".singular?.should be_true
72
- end
73
-
74
- end
75
-
76
- end
77
-
78
- context "when plural" do
79
-
80
- it "returns false" do
81
- "bats".singular?.should be_false
82
- end
83
-
84
- context "when string is added to inflections" do
85
-
86
- it "returns false" do
87
- "addresses".singular?.should be_false
88
- end
89
-
90
- end
91
-
92
- end
93
-
94
- end
95
-
96
- describe "plural?" do
97
-
98
- context "when singular" do
99
-
100
- it "returns false" do
101
- "bat".plural?.should be_false
102
- end
103
-
104
- context "when string is added to inflections" do
105
-
106
- it "returns false" do
107
- "address".plural?.should be_false
108
- end
109
-
110
- end
111
-
112
- end
113
-
114
- context "when plural" do
115
-
116
- it "returns true" do
117
- "bats".plural?.should be_true
118
- end
119
-
120
- context "when string is added to inflections" do
121
-
122
- it "returns true" do
123
- "addresses".plural?.should be_true
124
- end
125
-
126
- end
127
-
128
- end
129
-
130
- end
131
-
132
- describe "invert" do
133
-
134
- context "when asc" do
135
-
136
- it "returns desc" do
137
- "asc".invert.should == "desc"
138
- end
139
-
140
- end
141
-
142
- context "when ascending" do
143
-
144
- it "returns descending" do
145
- "ascending".invert.should == "descending"
146
- end
147
-
148
- end
149
-
150
- context "when desc" do
151
-
152
- it "returns asc" do
153
- "desc".invert.should == "asc"
154
- end
155
-
156
- end
157
-
158
- context "when descending" do
159
-
160
- it "returns ascending" do
161
- "descending".invert.should == "ascending"
162
- end
163
-
164
- end
165
-
166
- end
167
-
168
- describe "#reader" do
169
-
170
- context "when string is a reader" do
171
-
172
- it "returns self" do
173
- "attribute".reader.should == "attribute"
174
- end
175
-
176
- end
177
-
178
- context "when string is a writer" do
179
-
180
- it "returns the reader" do
181
- "attribute=".reader.should == "attribute"
182
- end
183
-
184
- end
185
-
186
- end
187
-
188
- describe "#writer?" do
189
-
190
- context "when string is a reader" do
191
-
192
- it "returns false" do
193
- "attribute".writer?.should be_false
194
- end
195
-
196
- end
197
-
198
- context "when string is a writer" do
199
-
200
- it "returns true" do
201
- "attribute=".writer?.should be_true
202
- end
203
-
204
- end
205
-
206
- end
207
-
208
- end
@@ -1,91 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe Mongoid::Extensions::Symbol::Inflections do
4
-
5
- describe "#singular?" do
6
-
7
- context "when singular" do
8
-
9
- it "returns true" do
10
- :bat.singular?.should be_true
11
- end
12
-
13
- end
14
-
15
- context "when plural" do
16
-
17
- it "returns false" do
18
- :bats.singular?.should be_false
19
- end
20
-
21
- end
22
-
23
- end
24
-
25
- describe "plural?" do
26
-
27
- context "when singular" do
28
-
29
- it "returns false" do
30
- :bat.plural?.should be_false
31
- end
32
-
33
- end
34
-
35
- context "when plural" do
36
-
37
- it "returns true" do
38
- :bats.plural?.should be_true
39
- end
40
-
41
- end
42
-
43
- end
44
-
45
- describe "invert" do
46
-
47
- context "when :asc" do
48
-
49
- it "returns :desc" do
50
- :asc.invert.should == :desc
51
- end
52
-
53
- end
54
-
55
- context "when :ascending" do
56
-
57
- it "returns :descending" do
58
- :ascending.invert.should == :descending
59
- end
60
-
61
- end
62
-
63
- context "when :desc" do
64
-
65
- it "returns :asc" do
66
- :desc.invert.should == :asc
67
- end
68
-
69
- end
70
-
71
- context "when :descending" do
72
-
73
- it "returns :ascending" do
74
- :descending.invert.should == :ascending
75
- end
76
-
77
- end
78
-
79
- end
80
-
81
- describe "#gt" do
82
-
83
- it 'returns :"foo $gt"' do
84
- ret = :foo.gt
85
- ret.key.should == :foo
86
- ret.operator.should == "gt"
87
- end
88
-
89
- end
90
-
91
- end
@@ -1,70 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe Mongoid::Extensions::Time::Conversions do
4
-
5
- before do
6
- Time.zone = "Canberra"
7
- @time = Time.local(1976, 11, 19)
8
- end
9
-
10
- after do
11
- Time.zone = nil
12
- end
13
-
14
- describe "#set" do
15
-
16
- context "when value is a string" do
17
-
18
- it "converts to a utc time" do
19
- Time.set(@time.to_s).utc_offset.should == 0
20
- end
21
-
22
- end
23
-
24
- context "when value is a time" do
25
-
26
- it "converts to a utc time" do
27
- Time.set(@time).utc_offset.should == 0
28
- end
29
-
30
- end
31
-
32
- context "when value is already a utc time" do
33
-
34
- it "returns the time" do
35
- Time.set(@time.utc).should == @time.utc
36
- end
37
-
38
- end
39
-
40
- context "when value is nil" do
41
-
42
- it "returns nil" do
43
- Time.set(nil).should be_nil
44
- end
45
-
46
- end
47
-
48
- end
49
-
50
- describe "#get" do
51
-
52
- context "when time is provided" do
53
-
54
- it "returns the local time" do
55
- Time.get(@time.dup.utc).utc_offset.should == @time.utc_offset
56
- end
57
-
58
- end
59
-
60
- context "when time is nil" do
61
-
62
- it "returns nil" do
63
- Time.get(nil).should be_nil
64
- end
65
-
66
- end
67
-
68
- end
69
-
70
- end
@@ -1,102 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe Mongoid::Extras do
4
-
5
- before do
6
- @klass = Class.new do
7
- include Mongoid::Extras
8
- end
9
- end
10
-
11
- describe ".cache" do
12
-
13
- before do
14
- @klass.cache
15
- end
16
-
17
- it "sets the cached boolean on the class" do
18
- @klass.cached.should be_true
19
- end
20
-
21
- end
22
-
23
- describe ".cached?" do
24
-
25
- context "when the class is cached" do
26
-
27
- before do
28
- @klass.cache
29
- end
30
-
31
- it "returns true" do
32
- @klass.should be_cached
33
- end
34
- end
35
-
36
- context "when the class is not cached" do
37
-
38
- it "returns false" do
39
- @klass.should_not be_cached
40
- end
41
- end
42
-
43
- end
44
-
45
- describe "#cached?" do
46
-
47
- before do
48
- @klass.cache
49
- @doc = @klass.new
50
- end
51
-
52
- it "returns the class cached? value" do
53
- @doc.should be_cached
54
- end
55
- end
56
-
57
- describe ".enslave" do
58
-
59
- before do
60
- @klass.enslave
61
- end
62
-
63
- it "sets the enslaved boolean on the class" do
64
- @klass.enslaved.should be_true
65
- end
66
-
67
- end
68
-
69
- describe ".enslaved?" do
70
-
71
- context "when the class is enslaved" do
72
-
73
- before do
74
- @klass.enslave
75
- end
76
-
77
- it "returns true" do
78
- @klass.should be_enslaved
79
- end
80
- end
81
-
82
- context "when the class is not enslaved" do
83
-
84
- it "returns false" do
85
- @klass.should_not be_enslaved
86
- end
87
- end
88
-
89
- end
90
-
91
- describe "#enslaved?" do
92
-
93
- before do
94
- @klass.enslave
95
- @doc = @klass.new
96
- end
97
-
98
- it "returns the class enslaved? value" do
99
- @doc.should be_enslaved
100
- end
101
- end
102
- end