passive_record 0.3.11 → 0.3.12

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