Class: Wiretap
- Inherits:
-
Object
- Object
- Wiretap
- Defined in:
- lib/test_wiretap.rb
Instance Attribute Summary collapse
-
#arguments ⇒ Object
Returns the value of attribute arguments.
-
#called ⇒ Object
Returns the value of attribute called.
-
#return_value ⇒ Object
Returns the value of attribute return_value.
Instance Method Summary collapse
-
#initialize(obj, method_name, params = {}) ⇒ Wiretap
constructor
A new instance of Wiretap.
- #inspector(args) ⇒ Object
- #reset ⇒ Object
Constructor Details
#initialize(obj, method_name, params = {}) ⇒ Wiretap
Returns a new instance of Wiretap.
4 5 6 7 8 9 10 11 12 13 14 15 |
# File 'lib/test_wiretap.rb', line 4 def initialize(obj, method_name, params={}) self.reset @pre_method = params[:pre_method] @real_method = params[:method] || obj.method(method_name) @post_method = params[:post_method] wt_obj = self obj.send(:define_singleton_method, method_name) do |*arguments| wt_obj.inspector(arguments) end end |
Instance Attribute Details
#arguments ⇒ Object
Returns the value of attribute arguments.
2 3 4 |
# File 'lib/test_wiretap.rb', line 2 def arguments @arguments end |
#called ⇒ Object
Returns the value of attribute called.
2 3 4 |
# File 'lib/test_wiretap.rb', line 2 def called @called end |
#return_value ⇒ Object
Returns the value of attribute return_value.
2 3 4 |
# File 'lib/test_wiretap.rb', line 2 def return_value @return_value end |
Instance Method Details
#inspector(args) ⇒ Object
17 18 19 20 21 22 23 24 25 |
# File 'lib/test_wiretap.rb', line 17 def inspector(args) @called += 1 @arguments.push(args) @pre_method.call if @pre_method rv = @real_method.call(*args) @return_value.push(rv) @post_method.call if @post_method rv end |
#reset ⇒ Object
27 28 29 30 31 |
# File 'lib/test_wiretap.rb', line 27 def reset @called = 0 @arguments = [] @return_value = [] end |