soft_delete 0.1.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.
data/Manifest ADDED
@@ -0,0 +1,5 @@
1
+ README.rdoc
2
+ Rakefile
3
+ lib/soft_deletable.rb
4
+ lib/soft_delete.rb
5
+ Manifest
data/README.rdoc ADDED
@@ -0,0 +1,3 @@
1
+ = Soft Delete
2
+
3
+ Doc :)
data/Rakefile ADDED
@@ -0,0 +1,14 @@
1
+ require 'rubygems'
2
+ require 'rake'
3
+ require 'echoe'
4
+
5
+ Echoe.new('soft_delete', '0.1.0') do |p|
6
+ p.description = "Overwrites default destroy behaviour by setting a deleted_at field."
7
+ p.url = "http://github.com/smoku/soft_delete"
8
+ p.author = "Paweł Smoczyk"
9
+ p.email = "pawel@smoczyk.pl"
10
+ p.ignore_pattern = ["tmp/*", "script/*"]
11
+ p.development_dependencies = []
12
+ end
13
+
14
+ Dir["#{File.dirname(__FILE__)}/tasks/*.rake"].sort.each { |ext| load ext }
@@ -0,0 +1,23 @@
1
+ module SoftDeletable
2
+
3
+ def self.included(base)
4
+ base.instance_eval do
5
+ default_scope where(:deleted_at => nil)
6
+ alias_method :destroy!, :destroy
7
+ end
8
+ end
9
+
10
+ def destroy
11
+ if persisted?
12
+ with_transaction_returning_status do
13
+ _run_destroy_callbacks do
14
+ self.class.unscoped.update_all({:deleted_at => Time.now.utc}, {:id => self.id})
15
+ end
16
+ end
17
+ end
18
+
19
+ @destroyed = true
20
+ freeze
21
+ end
22
+
23
+ end
@@ -0,0 +1,17 @@
1
+ require 'soft_deletable'
2
+
3
+ module SoftDelete
4
+
5
+ def self.included(base)
6
+ base.extend ClassMethods
7
+ end
8
+
9
+ module ClassMethods
10
+ def soft_deletable
11
+ include SoftDeletable
12
+ end
13
+ end
14
+
15
+ end
16
+
17
+ ActiveRecord::Base.send(:include, SoftDelete)
@@ -0,0 +1,30 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = %q{soft_delete}
5
+ s.version = "0.1.0"
6
+
7
+ s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
+ s.authors = ["Pawe\305\202 Smoczyk"]
9
+ s.date = %q{2010-09-02}
10
+ s.description = %q{Overwrites default destroy behaviour by setting a deleted_at field.}
11
+ s.email = %q{pawel@smoczyk.pl}
12
+ s.extra_rdoc_files = ["README.rdoc", "lib/soft_deletable.rb", "lib/soft_delete.rb"]
13
+ s.files = ["README.rdoc", "Rakefile", "lib/soft_deletable.rb", "lib/soft_delete.rb", "Manifest", "soft_delete.gemspec"]
14
+ s.homepage = %q{http://github.com/smoku/soft_delete}
15
+ s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Soft_delete", "--main", "README.rdoc"]
16
+ s.require_paths = ["lib"]
17
+ s.rubyforge_project = %q{soft_delete}
18
+ s.rubygems_version = %q{1.3.7}
19
+ s.summary = %q{Overwrites default destroy behaviour by setting a deleted_at field.}
20
+
21
+ if s.respond_to? :specification_version then
22
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
23
+ s.specification_version = 3
24
+
25
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
26
+ else
27
+ end
28
+ else
29
+ end
30
+ end
metadata ADDED
@@ -0,0 +1,80 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: soft_delete
3
+ version: !ruby/object:Gem::Version
4
+ hash: 27
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 1
9
+ - 0
10
+ version: 0.1.0
11
+ platform: ruby
12
+ authors:
13
+ - "Pawe\xC5\x82 Smoczyk"
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2010-09-02 00:00:00 +02:00
19
+ default_executable:
20
+ dependencies: []
21
+
22
+ description: Overwrites default destroy behaviour by setting a deleted_at field.
23
+ email: pawel@smoczyk.pl
24
+ executables: []
25
+
26
+ extensions: []
27
+
28
+ extra_rdoc_files:
29
+ - README.rdoc
30
+ - lib/soft_deletable.rb
31
+ - lib/soft_delete.rb
32
+ files:
33
+ - README.rdoc
34
+ - Rakefile
35
+ - lib/soft_deletable.rb
36
+ - lib/soft_delete.rb
37
+ - Manifest
38
+ - soft_delete.gemspec
39
+ has_rdoc: true
40
+ homepage: http://github.com/smoku/soft_delete
41
+ licenses: []
42
+
43
+ post_install_message:
44
+ rdoc_options:
45
+ - --line-numbers
46
+ - --inline-source
47
+ - --title
48
+ - Soft_delete
49
+ - --main
50
+ - README.rdoc
51
+ require_paths:
52
+ - lib
53
+ required_ruby_version: !ruby/object:Gem::Requirement
54
+ none: false
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ hash: 3
59
+ segments:
60
+ - 0
61
+ version: "0"
62
+ required_rubygems_version: !ruby/object:Gem::Requirement
63
+ none: false
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ hash: 11
68
+ segments:
69
+ - 1
70
+ - 2
71
+ version: "1.2"
72
+ requirements: []
73
+
74
+ rubyforge_project: soft_delete
75
+ rubygems_version: 1.3.7
76
+ signing_key:
77
+ specification_version: 3
78
+ summary: Overwrites default destroy behaviour by setting a deleted_at field.
79
+ test_files: []
80
+