baa 0.0.4 → 0.0.5

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