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 +4 -4
- data/README.md +2 -0
- data/lib/passive_record/hooks.rb +39 -16
- data/lib/passive_record/instance_methods.rb +8 -0
- data/lib/passive_record/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4039b8d12724a5b35a9414df1e44f7dfd0263e28
|
4
|
+
data.tar.gz: 28e9e7d6b5f34e5b08dedcb0e36fd5d8bd410347
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
[](https://codeship.com/projects/128700)
|
8
9
|
[](https://codeclimate.com/github/deepcerulean/passive_record/coverage)
|
9
10
|
[](https://badge.fury.io/rb/passive_record)
|
11
|
+
[](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
|
|
data/lib/passive_record/hooks.rb
CHANGED
@@ -22,50 +22,73 @@ module PassiveRecord
|
|
22
22
|
end
|
23
23
|
end
|
24
24
|
|
25
|
-
def
|
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 ==
|
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
|
-
|
33
|
-
|
41
|
+
inject_hook hook
|
42
|
+
self
|
34
43
|
end
|
35
44
|
|
36
45
|
def after_create_hooks
|
37
|
-
|
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
|
-
|
44
|
-
@hooks += [ hook ]
|
51
|
+
inject_hook hook
|
45
52
|
self
|
46
53
|
end
|
47
54
|
|
48
55
|
def before_update_hooks
|
49
|
-
|
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
|
-
|
56
|
-
@hooks += [ hook ]
|
61
|
+
inject_hook hook
|
57
62
|
self
|
58
63
|
end
|
59
64
|
|
60
65
|
def after_update_hooks
|
61
|
-
|
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
|
-
|
68
|
-
|
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
|
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.
|
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-
|
11
|
+
date: 2016-02-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|