sequel-paranoid 0.4.1 → 0.4.2

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 (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/sequel/plugins/paranoid.rb +14 -11
  3. metadata +11 -18
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 778a262e984d27bd7a036a49aac2f23bff585001
4
+ data.tar.gz: fd5aa87a158408a7f71c84af321e31338ccbd72f
5
+ SHA512:
6
+ metadata.gz: 68e016d52b31084cb3fb6dc6531726c70ea78b6b9cd276de4b2e8c2e2d364b8d0200029ecd68693973be89b1b2b6be0ba700fadf15f495d3c2b1b3a72ec069ea
7
+ data.tar.gz: e4badce85b6737164c96137167cf463a1b8935525af8e7d0e55c49e7bd30bb4c3558dc26e895b9b0b7389349822fb879961cd62f34a8c8780b5df7e14e769567
@@ -36,16 +36,22 @@ module Sequel::Plugins
36
36
  end
37
37
 
38
38
  #
39
- # Overwrite the "destroy" method.
39
+ # Overwrite the "_destroy_delete" method which is used by sequel to
40
+ # delete an object. This makes sure, we run all the hook correctly and
41
+ # in a transaction.
40
42
  #
41
-
42
43
  define_method("destroy") do |*args|
43
- destroy_options = args.first
44
+ # Save the variables threadsafe (because the locks have not been
45
+ # initialized by sequel yet).
46
+ Thread.current[:_paranoid_destroy_args] = args
44
47
 
45
- # call the before_destroy hook if present
46
- if self.respond_to?(:before_destroy)
47
- self.before_destroy
48
- end
48
+ super(*args)
49
+ end
50
+
51
+ define_method("_destroy_delete") do
52
+ # _destroy_delete does not take arguments.
53
+ destroy_options = Thread.current[:_paranoid_destroy_args].first
54
+ Thread.current[:_paranoid_destory_args] = nil
49
55
 
50
56
  # set the deletion time
51
57
  self.send("#{options[:deleted_at_field_name]}=", Time.now)
@@ -55,10 +61,7 @@ module Sequel::Plugins
55
61
  self.send("#{options[:deleted_by_field_name]}=", destroy_options[:deleted_by])
56
62
  end
57
63
 
58
- # save the instance and call the after_destroy hook if present
59
- if save and self.respond_to?(:after_destroy)
60
- self.after_destroy
61
- end
64
+ self.save
62
65
  end
63
66
 
64
67
  #
metadata CHANGED
@@ -1,66 +1,59 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sequel-paranoid
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
5
- prerelease:
4
+ version: 0.4.2
6
5
  platform: ruby
7
6
  authors:
8
7
  - Sascha Depold
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-07-31 00:00:00.000000000 Z
11
+ date: 2014-04-10 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: sequel
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  description: Use this plugin to mark a model instance as deleted without loosing its
31
28
  actual data.
32
- email: sascha@depold.com
29
+ email: sascha.depold@blacklane.com
33
30
  executables: []
34
31
  extensions: []
35
32
  extra_rdoc_files: []
36
33
  files:
37
34
  - lib/sequel/plugins/paranoid.rb
38
- homepage: https://github.com/sdepold/sequel-paranoid
35
+ homepage: https://github.com/blacklane/sequel-paranoid
39
36
  licenses:
40
37
  - MIT
38
+ metadata: {}
41
39
  post_install_message:
42
40
  rdoc_options: []
43
41
  require_paths:
44
42
  - lib
45
43
  required_ruby_version: !ruby/object:Gem::Requirement
46
- none: false
47
44
  requirements:
48
- - - ! '>='
45
+ - - '>='
49
46
  - !ruby/object:Gem::Version
50
47
  version: '0'
51
- segments:
52
- - 0
53
- hash: -677491977119614233
54
48
  required_rubygems_version: !ruby/object:Gem::Requirement
55
- none: false
56
49
  requirements:
57
- - - ! '>='
50
+ - - '>='
58
51
  - !ruby/object:Gem::Version
59
52
  version: '0'
60
53
  requirements: []
61
54
  rubyforge_project:
62
- rubygems_version: 1.8.23
55
+ rubygems_version: 2.0.3
63
56
  signing_key:
64
- specification_version: 3
57
+ specification_version: 4
65
58
  summary: A plugin for the Ruby ORM Sequel, that allows soft deletion of database entries.
66
59
  test_files: []