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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/baa.rb +22 -14
  3. metadata +3 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8e6867460ecfeefac92dbb85cfb64579bc557e82
4
- data.tar.gz: 6b9016d6d82a52a98c3fa39fe904c5f3055cbf2c
3
+ metadata.gz: ce08f7b1b13ad4790e6e69eb0bcb913ddd705b16
4
+ data.tar.gz: ec9da9ff73b1f7fc989f33e7a42b82526941fed0
5
5
  SHA512:
6
- metadata.gz: ecf722af7f1442819b5cc66f3680ab8d7ca8d9fe63040023969d211292fbd4b5b713401676fff109e2c660c226e85b6ec1136405bc923ed768762ad4b31d714f
7
- data.tar.gz: d2fc73b9abef1dd992efcee62b0d3449ae93e9572e3408d0fb30c7b1d1fa11c4abe542badcf9b74be43b9876f0fd36004a41087480836b47227455f5b3d4ad54
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
- @@_baa_hooks = {before: [], after: [], around: []}
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
- self._baa_rename_method(name)
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
- @@_baa_hooks[:before] << name
22
+ _baa_hooks[:before] << name
16
23
  end
17
- @@_baa_hooks
24
+ _baa_hooks
18
25
  end
19
26
 
20
27
  def after(*names)
21
28
  names.each do |name|
22
- self._baa_rename_method(name)
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
- @@_baa_hooks[:after] << name
38
+ _baa_hooks[:after] << name
32
39
  end
33
- @@_baa_hooks
40
+ _baa_hooks
34
41
  end
35
42
 
36
43
  def around(*names, pre_method_name)
37
44
  names.each do |name|
38
- self._baa_rename_method(name)
45
+ _baa_rename_method(name)
39
46
  define_method(name) do |*args, &block|
40
- self.send(pre_method_name)
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
- @@_baa_hooks[:around] << name
55
+ _baa_hooks[:around] << name
49
56
  end
50
- @@_baa_hooks
57
+ _baa_hooks
51
58
  end
52
59
 
53
60
  def _baa_rename_method(name)
54
- raise "Method (:#{name}) already has hooks applied\n#{@@_baa_hooks}" if @@_baa_hooks.values.flatten.include? name
55
- alias_method self._baa_old_name(name), name
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
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-05-20 00:00:00.000000000 Z
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.6
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: