passive_record 0.3.11 → 0.3.12

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1a62578ddc6b83eea82b4cf49d13debdaa28a981
4
- data.tar.gz: bb333fee35ac2726caa54e119ac9dd8ee30c1804
3
+ metadata.gz: 4039b8d12724a5b35a9414df1e44f7dfd0263e28
4
+ data.tar.gz: 28e9e7d6b5f34e5b08dedcb0e36fd5d8bd410347
5
5
  SHA512:
6
- metadata.gz: 454ae9685e3ab7a3ced60986178e18c2d30bdc413f5d8ea4ccf7d320e5d731ddf844072186dfdd1335251c0ebcb4eed575c3028ba58b684dfb437951d5b8a86c
7
- data.tar.gz: 24509793436c201f1f4be7e73d3b85808b360aae77847c4f1f73b211aa3ce8b4b8319cd2abf142a0ecfb0e31b97fa2389d39ca58afcad35708f44f6beed7e226
6
+ metadata.gz: 676f9bc4c0e6975838d1a81c8b74651c5da6db0cc5eefa609d4b7516d79ff653cca7f9b98a6dbbd3c6d0d89871bbb0c35447af3831f758695bf86ac0a3f29039
7
+ data.tar.gz: 84179cc3fe391e30022cf6eedb23331dc3306e1fcba08cdfcf61b0c16680e8e196499c39fd75fb83284ce2f459a59bae35ad663ef3820a195d38111363d334b7
data/README.md CHANGED
@@ -1,5 +1,6 @@
1
1
  # passive_record
2
2
 
3
+
3
4
  * [Documentation](https://rubygems.org/gems/passive_record)
4
5
  * [Email](mailto:joe at deepc.io)
5
6
 
@@ -7,6 +8,7 @@
7
8
  [![Codeship Status for deepcerulean/passive_record](https://www.codeship.io/projects/66bb2d90-ba61-0133-af95-025ac38368ea/status)](https://codeship.com/projects/128700)
8
9
  [![Test Coverage](https://codeclimate.com/github/deepcerulean/passive_record/badges/coverage.svg)](https://codeclimate.com/github/deepcerulean/passive_record/coverage)
9
10
  [![Gem Version](https://badge.fury.io/rb/passive_record.svg)](https://badge.fury.io/rb/passive_record)
11
+ [![Join the chat at https://gitter.im/deepcerulean/passive_record](https://badges.gitter.im/deepcerulean/passive_record.svg)](https://gitter.im/deepcerulean/passive_record?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
10
12
 
11
13
  ## Description
12
14
 
@@ -22,50 +22,73 @@ module PassiveRecord
22
22
  end
23
23
  end
24
24
 
25
- def before_create_hooks
25
+ def inject_hook(hook)
26
+ @hooks ||= []
27
+ @hooks += [ hook ]
28
+ end
29
+
30
+ def find_hooks_of_type(type)
26
31
  @hooks ||= []
27
- @hooks.select { |hook| hook.kind == :before_create }
32
+ @hooks.select { |hook| hook.kind == type }
33
+ end
34
+
35
+ def before_create_hooks
36
+ find_hooks_of_type :before_create
28
37
  end
29
38
 
30
39
  def before_create(*meth_syms, &blk)
31
40
  hook = Hook.new(:before_create,*meth_syms,&blk)
32
- @hooks ||= []
33
- @hooks += [ hook ]
41
+ inject_hook hook
42
+ self
34
43
  end
35
44
 
36
45
  def after_create_hooks
37
- @hooks ||= []
38
- @hooks.select { |hook| hook.kind == :after_create }
46
+ find_hooks_of_type :after_create
39
47
  end
40
48
 
41
49
  def after_create(*meth_syms, &blk)
42
50
  hook = Hook.new(:after_create,*meth_syms,&blk)
43
- @hooks ||= []
44
- @hooks += [ hook ]
51
+ inject_hook hook
45
52
  self
46
53
  end
47
54
 
48
55
  def before_update_hooks
49
- @hooks ||= []
50
- @hooks.select { |hook| hook.kind == :before_update }
56
+ find_hooks_of_type :before_update
51
57
  end
52
58
 
53
59
  def before_update(*meth_syms, &blk)
54
60
  hook = Hook.new(:before_update,*meth_syms,&blk)
55
- @hooks ||= []
56
- @hooks += [ hook ]
61
+ inject_hook hook
57
62
  self
58
63
  end
59
64
 
60
65
  def after_update_hooks
61
- @hooks ||= []
62
- @hooks.select { |hook| hook.kind == :after_update }
66
+ find_hooks_of_type :after_update
63
67
  end
64
68
 
65
69
  def after_update(*meth_syms, &blk)
66
70
  hook = Hook.new(:after_update,*meth_syms,&blk)
67
- @hooks ||= []
68
- @hooks += [ hook ]
71
+ inject_hook hook
72
+ self
73
+ end
74
+
75
+ def before_destroy_hooks
76
+ find_hooks_of_type :before_destroy
77
+ end
78
+
79
+ def before_destroy(*meth_syms,&blk)
80
+ hook = Hook.new(:before_destroy,*meth_syms,&blk)
81
+ inject_hook(hook)
82
+ self
83
+ end
84
+
85
+ def after_destroy_hooks
86
+ find_hooks_of_type :after_destroy
87
+ end
88
+
89
+ def after_destroy(*meth_syms,&blk)
90
+ hook = Hook.new(:after_destroy,*meth_syms,&blk)
91
+ inject_hook(hook)
69
92
  self
70
93
  end
71
94
  end
@@ -17,7 +17,15 @@ module PassiveRecord
17
17
  end
18
18
 
19
19
  def destroy
20
+ self.class.before_destroy_hooks.each do |hook|
21
+ hook.run(self)
22
+ end
23
+
20
24
  self.class.destroy(self.id)
25
+
26
+ self.class.after_destroy_hooks.each do |hook|
27
+ hook.run(self)
28
+ end
21
29
  end
22
30
 
23
31
  # from http://stackoverflow.com/a/8417341/90042
@@ -1,4 +1,4 @@
1
1
  module PassiveRecord
2
2
  # passive_record version
3
- VERSION = "0.3.11"
3
+ VERSION = "0.3.12"
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: passive_record
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.11
4
+ version: 0.3.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joseph Weissman
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-02-27 00:00:00.000000000 Z
11
+ date: 2016-02-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport