mordor 0.2.10 → 0.2.11
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.
- data/lib/mordor/resource.rb +10 -0
- data/mordor.gemspec +2 -2
- data/spec/mordor/resource_spec.rb +36 -0
- metadata +4 -4
data/lib/mordor/resource.rb
CHANGED
@@ -114,6 +114,16 @@ module Mordor
|
|
114
114
|
to_hash.merge(:_id => _id).to_json(*args)
|
115
115
|
end
|
116
116
|
|
117
|
+
def destroyed?
|
118
|
+
@destroyed ||= false
|
119
|
+
end
|
120
|
+
|
121
|
+
def destroy
|
122
|
+
collection.remove({:_id => _id})
|
123
|
+
self.class.ensure_indices
|
124
|
+
@destroyed = true
|
125
|
+
end
|
126
|
+
|
117
127
|
module ClassMethods
|
118
128
|
def create(attributes = {})
|
119
129
|
resource = self.new(attributes)
|
data/mordor.gemspec
CHANGED
@@ -2,8 +2,8 @@ Gem::Specification.new do |s|
|
|
2
2
|
s.name = "mordor"
|
3
3
|
|
4
4
|
# Do not set the version and date field manually, this is done by the release script
|
5
|
-
s.version = "0.2.
|
6
|
-
s.date = "2012-01-
|
5
|
+
s.version = "0.2.11"
|
6
|
+
s.date = "2012-01-20"
|
7
7
|
|
8
8
|
s.summary = "mordor"
|
9
9
|
s.description = <<-eos
|
@@ -243,6 +243,13 @@ describe "with respect to resources" do
|
|
243
243
|
TestResource.ensure_count.should == 2 # For each index
|
244
244
|
end
|
245
245
|
|
246
|
+
it "should call ensure_index on the collection whenever a resource is destroyed" do
|
247
|
+
resource = TestResource.create({:first => 'first', :second => 'second', :third => 'third'})
|
248
|
+
TestResource.reset_ensure_count
|
249
|
+
resource.destroy
|
250
|
+
TestResource.ensure_count.should == 2 # For each index
|
251
|
+
end
|
252
|
+
|
246
253
|
it "should call ensure index for each index attribute on creation" do
|
247
254
|
TestResource2.class_eval do
|
248
255
|
attribute :test_attribute, :index => true
|
@@ -272,6 +279,35 @@ describe "with respect to resources" do
|
|
272
279
|
end
|
273
280
|
end
|
274
281
|
|
282
|
+
context "with respect to destroying" do
|
283
|
+
before :each do
|
284
|
+
clean_sheet
|
285
|
+
@resource = TestResource.create({:first => "first", :second => "second", :third => "third"})
|
286
|
+
end
|
287
|
+
|
288
|
+
it "should not create destroyed resources" do
|
289
|
+
@resource.should_not be_destroyed
|
290
|
+
end
|
291
|
+
|
292
|
+
it "should be possible to destroy a resource" do
|
293
|
+
@resource.should_not be_destroyed
|
294
|
+
@resource.destroy
|
295
|
+
@resource.should be_destroyed
|
296
|
+
end
|
297
|
+
|
298
|
+
it "should not be possible to retrieve a resource after it has been destroyed" do
|
299
|
+
@resource.destroy
|
300
|
+
res = TestResource.get(@resource._id)
|
301
|
+
res.should be_nil
|
302
|
+
end
|
303
|
+
|
304
|
+
it "should only destroy the current resource" do
|
305
|
+
resource2 = TestResource.create({:first => "first2", :second => "second2", :third => "third2"})
|
306
|
+
@resource.destroy
|
307
|
+
TestResource.get(resource2._id).should_not be_nil
|
308
|
+
end
|
309
|
+
end
|
310
|
+
|
275
311
|
context "with respect to saving and retrieving" do
|
276
312
|
before :each do
|
277
313
|
clean_sheet
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mordor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 1
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 0.2.
|
9
|
+
- 11
|
10
|
+
version: 0.2.11
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Jan-Willem Koelewijn
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2012-01-
|
19
|
+
date: 2012-01-20 00:00:00 +01:00
|
20
20
|
default_executable:
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|