after_do 0.2.0 → 0.2.1

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 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