test_wiretap 0.0.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.
Files changed (3) hide show
  1. checksums.yaml +15 -0
  2. data/lib/test_wiretap.rb +33 -0
  3. metadata +58 -0
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ YzBjMjRhMGNiODJlMTM1MTc3NjU0OGNlZTNlN2JkMzUwYjIyODY1OA==
5
+ data.tar.gz: !binary |-
6
+ NTc3ZWI2NDQwZDliNjk3NDFiNTJlM2U3YWRhZjgxM2FhNmRlNDQ5ZQ==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ Yjk4MWU5OGQxNTM2MGU2NmRiMTllZGZlYTg0NTBiZGIxYjZjZWU4OTFiZmQw
10
+ MzEwNDY5MDVmMmZkMmY3MjhmZmRmNDExMDlhYjdiYWFhMTgwYTA0MjkyYWFk
11
+ MTc1MjAyNzFhN2Y5NDFjM2EwODg5MDFkNTFiNzdlNzM2YjBjOTc=
12
+ data.tar.gz: !binary |-
13
+ ZjVlOWQxZjZmYWYxODJlYjdjYTZjZmY4ZDU5MzU3YzBhZjBkNDkwM2MzYmQx
14
+ OTA5ODBiNjVhYzE0YWQ1MzhmNzNlOGU5NTg2MTc5MWI3NTUzZjJkZjJkMjJh
15
+ OGI1YmE1OGVkOTM5ZmRiMmM1YTI1ZTcxYWZkZjRlODRkZjVhOGY=
@@ -0,0 +1,33 @@
1
+ class Wiretap
2
+ attr_accessor :called, :arguments, :return_value
3
+
4
+ def initialize(obj, method_name, params={})
5
+ self.reset
6
+
7
+ @pre_method = params[:pre_method]
8
+ @real_method = params[:method] || obj.method(method_name)
9
+ @post_method = params[:post_method]
10
+
11
+ wt_obj = self
12
+ obj.send(:define_singleton_method, method_name) do |*arguments|
13
+ wt_obj.inspector(arguments)
14
+ end
15
+ end
16
+
17
+ def inspector(args)
18
+ @called += 1
19
+ @arguments.push(args)
20
+ @pre_method.call if @pre_method
21
+ rv = @real_method.call(*args)
22
+ @return_value.push(rv)
23
+ @post_method.call if @post_method
24
+ rv
25
+ end
26
+
27
+ def reset
28
+ @called = 0
29
+ @arguments = []
30
+ @return_value = []
31
+ end
32
+
33
+ end
metadata ADDED
@@ -0,0 +1,58 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: test_wiretap
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Stephen Cattaneo
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-11-10 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rspec
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ description: audit method calls of ruby objects during testing.
28
+ email:
29
+ executables: []
30
+ extensions: []
31
+ extra_rdoc_files: []
32
+ files:
33
+ - lib/test_wiretap.rb
34
+ homepage: http://rubygems.org/gems/test_wiretap
35
+ licenses:
36
+ - Apache License, Version 2.0
37
+ metadata: {}
38
+ post_install_message:
39
+ rdoc_options: []
40
+ require_paths:
41
+ - lib
42
+ required_ruby_version: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ! '>='
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ required_rubygems_version: !ruby/object:Gem::Requirement
48
+ requirements:
49
+ - - ! '>='
50
+ - !ruby/object:Gem::Version
51
+ version: '0'
52
+ requirements: []
53
+ rubyforge_project:
54
+ rubygems_version: 2.2.2
55
+ signing_key:
56
+ specification_version: 4
57
+ summary: Wiretap Test Utility
58
+ test_files: []