sequel-paranoid 0.4.1 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
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: []