brianjlandau-acts_as_archive 0.2.7 → 0.2.8

Sign up to get free protection for your applications and to get access to all the features.
@@ -21,6 +21,29 @@ module ActsAsArchive
21
21
  class Archive < ActiveRecord::Base
22
22
  self.record_timestamps = false
23
23
  self.table_name = "archived_#{self.table_name}"
24
+
25
+ def self.sti_name
26
+ "#{self.sti_name}"
27
+ end
28
+
29
+ def restore
30
+ #{self.base_class.to_s}.restore_all([ 'id = ?', id ])
31
+ @destroyed = true
32
+ freeze
33
+ end
34
+
35
+ protected
36
+
37
+ def self.compute_type(type_name)
38
+ modularized_name = type_name_with_module(type_name)
39
+ silence_warnings do
40
+ begin
41
+ class_eval(modularized_name+"::Archive", __FILE__)
42
+ rescue NameError
43
+ class_eval(type_name+"::Archive", __FILE__)
44
+ end
45
+ end
46
+ end
24
47
  end
25
48
  else
26
49
  class Archive < self.superclass::Archive
@@ -30,6 +53,25 @@ module ActsAsArchive
30
53
  def self.sti_name
31
54
  "#{self.sti_name}"
32
55
  end
56
+
57
+ def restore
58
+ #{self.base_class.to_s}.restore_all([ 'id = ?', id ])
59
+ @destroyed = true
60
+ freeze
61
+ end
62
+
63
+ protected
64
+
65
+ def self.compute_type(type_name)
66
+ modularized_name = type_name_with_module(type_name)
67
+ silence_warnings do
68
+ begin
69
+ class_eval(modularized_name+"::Archive", __FILE__)
70
+ rescue NameError
71
+ class_eval(type_name+"::Archive", __FILE__)
72
+ end
73
+ end
74
+ end
33
75
  end
34
76
  end
35
77
  end_eval
data/require.rb CHANGED
@@ -17,7 +17,7 @@ Require do
17
17
  name 'brianjlandau-acts_as_archive'
18
18
  homepage "http://github.com/brianjlandau/#{name}"
19
19
  summary "Don't delete your records, move them to a different table"
20
- version '0.2.7'
20
+ version '0.2.8'
21
21
  end
22
22
 
23
23
  lib do
@@ -35,6 +35,12 @@ describe ActsAsArchive::Base do
35
35
  Opinion::Archive.all.map(&:id).should_not include(@headline.id)
36
36
  Opinion::Archive.all.map(&:id).should include(@oped.id)
37
37
  end
38
+
39
+ it 'should be able to restore a deleted entry' do
40
+ @deleted_item = Headline::Archive.first
41
+ @deleted_item.restore
42
+ lambda { Headline.find(@deleted_item.id) }.should_not raise_exception
43
+ end
38
44
  end
39
45
  end
40
46
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: brianjlandau-acts_as_archive
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 7
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 2
9
- - 7
10
- version: 0.2.7
9
+ - 8
10
+ version: 0.2.8
11
11
  platform: ruby
12
12
  authors:
13
13
  - Winton Welsh
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-12-29 00:00:00 -05:00
18
+ date: 2010-12-30 00:00:00 -05:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency