baa 0.0.4 → 0.0.5
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/lib/baa.rb +22 -14
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ce08f7b1b13ad4790e6e69eb0bcb913ddd705b16
|
4
|
+
data.tar.gz: ec9da9ff73b1f7fc989f33e7a42b82526941fed0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f6e2c1748babbd7be8eb908f1709ff5cf45f6ebdee3a0acc23073026c042057f91721d94bb0cc3e8708a5df6eee1e91a7a0eb7491e7c5e5b28781bbb0393c482
|
7
|
+
data.tar.gz: b27b418f529343e469e280e7b62d6c808dbab68b60da4f3420fe3695e3b78acb1c4d301c86a644a1c83593a2e5ab91684fd03786bbbb4b3167e918574ce277f8
|
data/lib/baa.rb
CHANGED
@@ -1,9 +1,16 @@
|
|
1
|
+
# Hooks
|
1
2
|
module Hooks
|
2
|
-
|
3
|
+
def _baa_hooks
|
4
|
+
@_baa_hooks ||= {
|
5
|
+
before: [],
|
6
|
+
after: [],
|
7
|
+
around: []
|
8
|
+
}
|
9
|
+
end
|
3
10
|
|
4
11
|
def before(*names)
|
5
12
|
names.each do |name|
|
6
|
-
|
13
|
+
_baa_rename_method(name)
|
7
14
|
define_method(name) do |*args, &block|
|
8
15
|
yield
|
9
16
|
if args.any?
|
@@ -12,14 +19,14 @@ module Hooks
|
|
12
19
|
send(self.class._baa_old_name(name), &block)
|
13
20
|
end
|
14
21
|
end
|
15
|
-
|
22
|
+
_baa_hooks[:before] << name
|
16
23
|
end
|
17
|
-
|
24
|
+
_baa_hooks
|
18
25
|
end
|
19
26
|
|
20
27
|
def after(*names)
|
21
28
|
names.each do |name|
|
22
|
-
|
29
|
+
_baa_rename_method(name)
|
23
30
|
define_method(name) do |*args, &block|
|
24
31
|
if args.any?
|
25
32
|
send(self.class._baa_old_name(name), args, &block)
|
@@ -28,16 +35,16 @@ module Hooks
|
|
28
35
|
end
|
29
36
|
yield
|
30
37
|
end
|
31
|
-
|
38
|
+
_baa_hooks[:after] << name
|
32
39
|
end
|
33
|
-
|
40
|
+
_baa_hooks
|
34
41
|
end
|
35
42
|
|
36
43
|
def around(*names, pre_method_name)
|
37
44
|
names.each do |name|
|
38
|
-
|
45
|
+
_baa_rename_method(name)
|
39
46
|
define_method(name) do |*args, &block|
|
40
|
-
|
47
|
+
send(pre_method_name)
|
41
48
|
if args.any?
|
42
49
|
send(self.class._baa_old_name(name), args, &block)
|
43
50
|
else
|
@@ -45,18 +52,19 @@ module Hooks
|
|
45
52
|
end
|
46
53
|
yield
|
47
54
|
end
|
48
|
-
|
55
|
+
_baa_hooks[:around] << name
|
49
56
|
end
|
50
|
-
|
57
|
+
_baa_hooks
|
51
58
|
end
|
52
59
|
|
53
60
|
def _baa_rename_method(name)
|
54
|
-
|
55
|
-
|
61
|
+
if _baa_hooks.values.flatten.include? name
|
62
|
+
fail "Method (:#{name}) already has hooks applied\n#{_baa_hooks}"
|
63
|
+
end
|
64
|
+
alias_method _baa_old_name(name), name
|
56
65
|
end
|
57
66
|
|
58
67
|
def _baa_old_name(name)
|
59
68
|
"_baa_#{name}".to_sym
|
60
69
|
end
|
61
|
-
|
62
70
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: baa
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Whimsical Doodles
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-12-04 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Before After Around hooks for Ruby classes - still in ALPHA
|
14
14
|
email: baa@whimsicaldoodles.com
|
@@ -37,9 +37,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
37
37
|
version: '0'
|
38
38
|
requirements: []
|
39
39
|
rubyforge_project:
|
40
|
-
rubygems_version: 2.4.
|
40
|
+
rubygems_version: 2.4.5.1
|
41
41
|
signing_key:
|
42
42
|
specification_version: 4
|
43
43
|
summary: Baa!
|
44
44
|
test_files: []
|
45
|
-
has_rdoc:
|