after_do 0.2.0 → 0.2.1

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: 246d1c1ca42b79e8fedf494f8b9ef5620a88e998
4
- data.tar.gz: 591190d78158bb4a97db932ac0481bad656cb35c
3
+ metadata.gz: 53c375dcc4890f556937b57e4c425fe504bc5774
4
+ data.tar.gz: 66f9df14bb68c11f643e36d267b80eb435c7ea6a
5
5
  SHA512:
6
- metadata.gz: b3b639f1aa8bc684b30b8c1b16026bf2406c98872563ff10aadad02177f47715c8f9eec270409fdbbd9213087323cebd5b38b566308cb12e5b02c9fbf0585321
7
- data.tar.gz: b05353aee06b2b7ad93347ad7fdf5284b46529b984ddc58411a10b374437a2e91907d91cd925cda6aba614671bbdaf55fbb42e20e796f26320d4e22a335749cc
6
+ metadata.gz: 9848d290fe04c511fe23f0ce298033626ee2ae75f4720c5118aaf9f553703fb1d2c095853d312ee2275bb77c11abc0be46a72ac8a2983bdc295d723064fa20e7
7
+ data.tar.gz: 21ea282c3a6c143c1efd2491df07cd53e66b8967006143c0b63d68e9608b79c705f4ff8d7b7e9ca54e9a55ac77a28a802b1b48317c0360008c6ad1e5e95ef381
data/lib/after_do.rb CHANGED
@@ -53,7 +53,7 @@ module AfterDo
53
53
  end
54
54
 
55
55
  def _after_do_make_after_do_version_of_method(method)
56
- _after_do_raise_no_method_error(method) unless method_defined? method
56
+ _after_do_raise_no_method_error(method) unless _after_do_defined?(method)
57
57
  @_after_do_callbacks[:before][method] = []
58
58
  @_after_do_callbacks[:after][method] = []
59
59
  alias_name = _after_do_aliased_name method
@@ -61,6 +61,10 @@ module AfterDo
61
61
  _after_do_redefine_method_with_callback(method, alias_name)
62
62
  end
63
63
 
64
+ def _after_do_defined?(method)
65
+ method_defined?(method) || private_method_defined?(method)
66
+ end
67
+
64
68
  def _after_do_raise_no_method_error(method)
65
69
  raise NonExistingMethodError, "There is no method #{method} on #{self} to attach a block to with AfterDo"
66
70
  end
@@ -1,3 +1,3 @@
1
1
  module AfterDo
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
@@ -31,12 +31,21 @@ describe AfterDo do
31
31
  @dummy_class.should respond_to callback_adder
32
32
  end
33
33
 
34
- it 'calls a method on the injected mockie' do
34
+ def simple_callback_called_test(callback_adder)
35
35
  @dummy_class.send callback_adder, :zero do mockie.call_method end
36
36
  mockie.should_receive :call_method
37
37
  dummy_instance.zero
38
38
  end
39
39
 
40
+ it 'calls a method on the injected mockie' do
41
+ simple_callback_called_test callback_adder
42
+ end
43
+
44
+ it 'calls a method on the injected mockie even if that method is private' do
45
+ @dummy_class.send(:private, :zero)
46
+ simple_callback_called_test callback_adder
47
+ end
48
+
40
49
  it 'does not change the return value' do
41
50
  before_return_value = dummy_instance.zero
42
51
  @dummy_class.send callback_adder, :zero do 42 end
@@ -70,10 +79,19 @@ describe AfterDo do
70
79
  end
71
80
 
72
81
  describe 'errors' do
73
- it 'throws an error when you try to add a hook to a non existing method' do
74
- expect do
75
- @dummy_class.send callback_adder, :non_existing_method do ; end
76
- end.to raise_error(AfterDo::NonExistingMethodError)
82
+ describe 'NonExistingMethodError' do
83
+ it 'throws an error when you try to add a hook to a non existing method' do
84
+ expect do
85
+ @dummy_class.send callback_adder, :non_existing_method do ; end
86
+ end.to raise_error(AfterDo::NonExistingMethodError)
87
+ end
88
+
89
+ it 'does not throw the error for private methods (see #9)' do
90
+ @dummy_class.send(:private, :zero)
91
+ expect do
92
+ @dummy_class.send callback_adder, :zero do ; end
93
+ end.to_not raise_error
94
+ end
77
95
  end
78
96
 
79
97
  describe 'errors in callbacks' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: after_do
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tobias Pfeiffer