mustwin-vcr 2.9.3

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 (148) hide show
  1. checksums.yaml +7 -0
  2. data/features/about_these_examples.md +18 -0
  3. data/features/cassettes/allow_unused_http_interactions.feature +100 -0
  4. data/features/cassettes/automatic_re_recording.feature +72 -0
  5. data/features/cassettes/decompress.feature +74 -0
  6. data/features/cassettes/dynamic_erb.feature +100 -0
  7. data/features/cassettes/exclusive.feature +126 -0
  8. data/features/cassettes/format.feature +323 -0
  9. data/features/cassettes/freezing_time.feature +68 -0
  10. data/features/cassettes/naming.feature +28 -0
  11. data/features/cassettes/no_cassette.feature +152 -0
  12. data/features/cassettes/update_content_length_header.feature +112 -0
  13. data/features/configuration/allow_http_connections_when_no_cassette.feature +55 -0
  14. data/features/configuration/cassette_library_dir.feature +31 -0
  15. data/features/configuration/debug_logging.feature +59 -0
  16. data/features/configuration/default_cassette_options.feature +100 -0
  17. data/features/configuration/filter_sensitive_data.feature +153 -0
  18. data/features/configuration/hook_into.feature +172 -0
  19. data/features/configuration/ignore_request.feature +192 -0
  20. data/features/configuration/preserve_exact_body_bytes.feature +108 -0
  21. data/features/configuration/query_parser.feature +84 -0
  22. data/features/configuration/uri_parser.feature +89 -0
  23. data/features/getting_started.md +82 -0
  24. data/features/hooks/after_http_request.feature +58 -0
  25. data/features/hooks/around_http_request.feature +57 -0
  26. data/features/hooks/before_http_request.feature +63 -0
  27. data/features/hooks/before_playback.feature +184 -0
  28. data/features/hooks/before_record.feature +172 -0
  29. data/features/http_libraries/em_http_request.feature +250 -0
  30. data/features/http_libraries/net_http.feature +179 -0
  31. data/features/middleware/faraday.feature +56 -0
  32. data/features/middleware/rack.feature +92 -0
  33. data/features/record_modes/all.feature +82 -0
  34. data/features/record_modes/new_episodes.feature +79 -0
  35. data/features/record_modes/none.feature +72 -0
  36. data/features/record_modes/once.feature +95 -0
  37. data/features/request_matching/README.md +30 -0
  38. data/features/request_matching/body.feature +91 -0
  39. data/features/request_matching/body_as_json.feature +90 -0
  40. data/features/request_matching/custom_matcher.feature +135 -0
  41. data/features/request_matching/headers.feature +85 -0
  42. data/features/request_matching/host.feature +95 -0
  43. data/features/request_matching/identical_request_sequence.feature +89 -0
  44. data/features/request_matching/method.feature +96 -0
  45. data/features/request_matching/path.feature +96 -0
  46. data/features/request_matching/playback_repeats.feature +98 -0
  47. data/features/request_matching/query.feature +97 -0
  48. data/features/request_matching/uri.feature +94 -0
  49. data/features/request_matching/uri_without_param.feature +101 -0
  50. data/features/step_definitions/cli_steps.rb +193 -0
  51. data/features/support/env.rb +44 -0
  52. data/features/support/http_lib_filters.rb +53 -0
  53. data/features/test_frameworks/cucumber.feature +211 -0
  54. data/features/test_frameworks/rspec_macro.feature +81 -0
  55. data/features/test_frameworks/rspec_metadata.feature +150 -0
  56. data/features/test_frameworks/test_unit.feature +49 -0
  57. data/lib/vcr.rb +347 -0
  58. data/lib/vcr/cassette.rb +291 -0
  59. data/lib/vcr/cassette/erb_renderer.rb +55 -0
  60. data/lib/vcr/cassette/http_interaction_list.rb +108 -0
  61. data/lib/vcr/cassette/migrator.rb +118 -0
  62. data/lib/vcr/cassette/persisters.rb +42 -0
  63. data/lib/vcr/cassette/persisters/file_system.rb +64 -0
  64. data/lib/vcr/cassette/serializers.rb +57 -0
  65. data/lib/vcr/cassette/serializers/json.rb +48 -0
  66. data/lib/vcr/cassette/serializers/psych.rb +48 -0
  67. data/lib/vcr/cassette/serializers/syck.rb +61 -0
  68. data/lib/vcr/cassette/serializers/yaml.rb +50 -0
  69. data/lib/vcr/configuration.rb +555 -0
  70. data/lib/vcr/deprecations.rb +109 -0
  71. data/lib/vcr/errors.rb +266 -0
  72. data/lib/vcr/extensions/net_http_response.rb +36 -0
  73. data/lib/vcr/library_hooks.rb +18 -0
  74. data/lib/vcr/library_hooks/excon.rb +27 -0
  75. data/lib/vcr/library_hooks/fakeweb.rb +196 -0
  76. data/lib/vcr/library_hooks/faraday.rb +51 -0
  77. data/lib/vcr/library_hooks/typhoeus.rb +120 -0
  78. data/lib/vcr/library_hooks/typhoeus_0.4.rb +103 -0
  79. data/lib/vcr/library_hooks/webmock.rb +164 -0
  80. data/lib/vcr/middleware/excon.rb +221 -0
  81. data/lib/vcr/middleware/excon/legacy_methods.rb +33 -0
  82. data/lib/vcr/middleware/faraday.rb +118 -0
  83. data/lib/vcr/middleware/rack.rb +79 -0
  84. data/lib/vcr/request_handler.rb +114 -0
  85. data/lib/vcr/request_ignorer.rb +43 -0
  86. data/lib/vcr/request_matcher_registry.rb +149 -0
  87. data/lib/vcr/structs.rb +578 -0
  88. data/lib/vcr/tasks/vcr.rake +9 -0
  89. data/lib/vcr/test_frameworks/cucumber.rb +64 -0
  90. data/lib/vcr/test_frameworks/rspec.rb +47 -0
  91. data/lib/vcr/util/hooks.rb +61 -0
  92. data/lib/vcr/util/internet_connection.rb +43 -0
  93. data/lib/vcr/util/logger.rb +59 -0
  94. data/lib/vcr/util/variable_args_block_caller.rb +13 -0
  95. data/lib/vcr/util/version_checker.rb +48 -0
  96. data/lib/vcr/version.rb +34 -0
  97. data/spec/acceptance/threading_spec.rb +34 -0
  98. data/spec/fixtures/cassette_spec/1_x_cassette.yml +110 -0
  99. data/spec/fixtures/cassette_spec/empty.yml +0 -0
  100. data/spec/fixtures/cassette_spec/example.yml +111 -0
  101. data/spec/fixtures/cassette_spec/with_localhost_requests.yml +111 -0
  102. data/spec/fixtures/fake_example_responses.yml +110 -0
  103. data/spec/fixtures/match_requests_on.yml +187 -0
  104. data/spec/lib/vcr/cassette/erb_renderer_spec.rb +53 -0
  105. data/spec/lib/vcr/cassette/http_interaction_list_spec.rb +295 -0
  106. data/spec/lib/vcr/cassette/migrator_spec.rb +195 -0
  107. data/spec/lib/vcr/cassette/persisters/file_system_spec.rb +69 -0
  108. data/spec/lib/vcr/cassette/persisters_spec.rb +39 -0
  109. data/spec/lib/vcr/cassette/serializers_spec.rb +176 -0
  110. data/spec/lib/vcr/cassette_spec.rb +618 -0
  111. data/spec/lib/vcr/configuration_spec.rb +326 -0
  112. data/spec/lib/vcr/deprecations_spec.rb +85 -0
  113. data/spec/lib/vcr/errors_spec.rb +162 -0
  114. data/spec/lib/vcr/extensions/net_http_response_spec.rb +86 -0
  115. data/spec/lib/vcr/library_hooks/excon_spec.rb +104 -0
  116. data/spec/lib/vcr/library_hooks/fakeweb_spec.rb +169 -0
  117. data/spec/lib/vcr/library_hooks/faraday_spec.rb +68 -0
  118. data/spec/lib/vcr/library_hooks/typhoeus_0.4_spec.rb +36 -0
  119. data/spec/lib/vcr/library_hooks/typhoeus_spec.rb +162 -0
  120. data/spec/lib/vcr/library_hooks/webmock_spec.rb +118 -0
  121. data/spec/lib/vcr/library_hooks_spec.rb +51 -0
  122. data/spec/lib/vcr/middleware/faraday_spec.rb +182 -0
  123. data/spec/lib/vcr/middleware/rack_spec.rb +115 -0
  124. data/spec/lib/vcr/request_ignorer_spec.rb +70 -0
  125. data/spec/lib/vcr/request_matcher_registry_spec.rb +345 -0
  126. data/spec/lib/vcr/structs_spec.rb +732 -0
  127. data/spec/lib/vcr/test_frameworks/cucumber_spec.rb +107 -0
  128. data/spec/lib/vcr/test_frameworks/rspec_spec.rb +83 -0
  129. data/spec/lib/vcr/util/hooks_spec.rb +158 -0
  130. data/spec/lib/vcr/util/internet_connection_spec.rb +37 -0
  131. data/spec/lib/vcr/util/version_checker_spec.rb +31 -0
  132. data/spec/lib/vcr/version_spec.rb +27 -0
  133. data/spec/lib/vcr_spec.rb +349 -0
  134. data/spec/monkey_patches.rb +182 -0
  135. data/spec/spec_helper.rb +62 -0
  136. data/spec/support/configuration_stubbing.rb +8 -0
  137. data/spec/support/cucumber_helpers.rb +35 -0
  138. data/spec/support/fixnum_extension.rb +10 -0
  139. data/spec/support/http_library_adapters.rb +289 -0
  140. data/spec/support/limited_uri.rb +21 -0
  141. data/spec/support/ruby_interpreter.rb +7 -0
  142. data/spec/support/shared_example_groups/excon.rb +63 -0
  143. data/spec/support/shared_example_groups/hook_into_http_library.rb +594 -0
  144. data/spec/support/shared_example_groups/request_hooks.rb +59 -0
  145. data/spec/support/sinatra_app.rb +86 -0
  146. data/spec/support/vcr_localhost_server.rb +76 -0
  147. data/spec/support/vcr_stub_helpers.rb +17 -0
  148. metadata +677 -0
@@ -0,0 +1,59 @@
1
+ shared_examples_for "request hooks" do |library_hook_name, request_type|
2
+ let(:request_url) { "http://localhost:#{VCR::SinatraApp.port}/foo" }
3
+
4
+ def make_request(disabled = false)
5
+ make_http_request(:get, request_url)
6
+ end
7
+
8
+ def assert_expected_response(response)
9
+ expect(response.status.code).to eq(200)
10
+ expect(response.body).to eq('FOO!')
11
+ end
12
+
13
+ [:before_http_request, :after_http_request].each do |hook|
14
+ specify "the #{hook} hook is only called once per request" do
15
+ call_count = 0
16
+ VCR.configuration.send(hook) { |r| call_count += 1 }
17
+
18
+ make_request
19
+ expect(call_count).to eq(1)
20
+ end
21
+
22
+ specify "the #{hook} hook yields the request" do
23
+ request = nil
24
+ VCR.configuration.send(hook) { |r| request = r }
25
+
26
+ make_request
27
+ expect(request.method).to be(:get)
28
+ expect(request.uri).to eq(request_url)
29
+ end
30
+
31
+ specify "the #{hook} hook is not called if the library hook is disabled" do
32
+ expect(VCR.library_hooks).to respond_to(:disabled?)
33
+ allow(VCR.library_hooks).to receive(:disabled?).and_return(true)
34
+
35
+ hook_called = false
36
+ VCR.configuration.send(hook) { |r| hook_called = true }
37
+
38
+ make_request(:disabled)
39
+ expect(hook_called).to be false
40
+ end
41
+
42
+ specify "the #type of the yielded request given to the #{hook} hook is #{request_type}" do
43
+ request = nil
44
+ VCR.configuration.send(hook) { |r| request = r }
45
+
46
+ make_request
47
+ expect(request.type).to be(request_type)
48
+ end
49
+ end
50
+
51
+ specify "the after_http_request hook yields the response if there is one and the second block arg is given" do
52
+ response = nil
53
+ VCR.configuration.after_http_request { |req, res| response = res }
54
+
55
+ make_request
56
+ assert_expected_response(response)
57
+ end
58
+ end
59
+
@@ -0,0 +1,86 @@
1
+ require 'sinatra'
2
+
3
+ module VCR
4
+ class SinatraApp < ::Sinatra::Base
5
+ disable :protection
6
+
7
+ get '/' do
8
+ "GET to root"
9
+ end
10
+
11
+ get '/search' do
12
+ "query: #{params[:q]}"
13
+ end
14
+
15
+ get '/localhost_test' do
16
+ "Localhost response"
17
+ end
18
+
19
+ get '/foo' do
20
+ "FOO!"
21
+ end
22
+
23
+ get '/redirect-to-root' do
24
+ redirect to('/')
25
+ end
26
+
27
+ post '/foo' do
28
+ "FOO!"
29
+ end
30
+
31
+ post '/return-request-body' do
32
+ request.body
33
+ end
34
+
35
+ get '/set-cookie-headers/1' do
36
+ headers 'Set-Cookie' => 'foo'
37
+ 'header set'
38
+ end
39
+
40
+ get '/set-cookie-headers/2' do
41
+ headers 'Set-Cookie' => %w[ bar foo ]
42
+ 'header set'
43
+ end
44
+
45
+ get '/204' do
46
+ status 204
47
+ end
48
+
49
+ get '/404_not_200' do
50
+ status 404
51
+ '404 not 200'
52
+ end
53
+
54
+ # we use a global counter so that every response is different;
55
+ # this ensures that the test demonstrates that the response
56
+ # is being played back (and not running a 2nd real request)
57
+ $record_and_playback_response_count ||= 0
58
+ get '/record-and-playback' do
59
+ "Response #{$record_and_playback_response_count += 1}"
60
+ end
61
+
62
+ post '/record-and-playback' do
63
+ "Response #{$record_and_playback_response_count += 1}"
64
+ end
65
+
66
+ @_boot_failed = false
67
+
68
+ class << self
69
+ def port
70
+ server.port
71
+ end
72
+
73
+ def server
74
+ raise "Sinatra app failed to boot." if @_boot_failed
75
+ @server ||= begin
76
+ VCR::LocalhostServer.new(new)
77
+ rescue
78
+ @_boot_failed = true
79
+ raise
80
+ end
81
+ end
82
+
83
+ alias boot server
84
+ end
85
+ end
86
+ end
@@ -0,0 +1,76 @@
1
+ require 'rack'
2
+ require 'rack/handler/webrick'
3
+ require 'net/http'
4
+
5
+ # The code for this is inspired by Capybara's server:
6
+ # http://github.com/jnicklas/capybara/blob/0.3.9/lib/capybara/server.rb
7
+ module VCR
8
+ class LocalhostServer
9
+ READY_MESSAGE = "VCR server ready"
10
+
11
+ class Identify
12
+ def initialize(app)
13
+ @app = app
14
+ end
15
+
16
+ def call(env)
17
+ if env["PATH_INFO"] == "/__identify__"
18
+ [200, {}, [VCR::LocalhostServer::READY_MESSAGE]]
19
+ else
20
+ @app.call(env)
21
+ end
22
+ end
23
+ end
24
+
25
+ attr_reader :port
26
+
27
+ def initialize(rack_app, port = nil)
28
+ @port = port || find_available_port
29
+ @rack_app = rack_app
30
+ concurrently { boot }
31
+ wait_until(10, "Boot failed.") { booted? }
32
+ end
33
+
34
+ private
35
+
36
+ def find_available_port
37
+ server = TCPServer.new('127.0.0.1', 0)
38
+ server.addr[1]
39
+ ensure
40
+ server.close if server
41
+ end
42
+
43
+ def boot
44
+ # Use WEBrick since it's part of the ruby standard library and is available on all ruby interpreters.
45
+ options = { :Port => port, :ShutdownSocketWithoutClose => true }
46
+ options.merge!(:AccessLog => [], :Logger => WEBrick::BasicLog.new(StringIO.new)) unless ENV['VERBOSE_SERVER']
47
+ Rack::Handler::WEBrick.run(Identify.new(@rack_app), options)
48
+ end
49
+
50
+ def booted?
51
+ res = ::Net::HTTP.get_response("localhost", '/__identify__', port)
52
+ if res.is_a?(::Net::HTTPSuccess) or res.is_a?(::Net::HTTPRedirection)
53
+ return res.body == READY_MESSAGE
54
+ end
55
+ rescue Errno::ECONNREFUSED, Errno::EBADF
56
+ return false
57
+ end
58
+
59
+ def concurrently
60
+ # JRuby doesn't support forking.
61
+ # Rubinius does, but there's a weird issue with the booted? check not working,
62
+ # so we're just using a thread for now.
63
+ Thread.new { yield }
64
+ end
65
+
66
+ def wait_until(timeout, error_message, &block)
67
+ start_time = Time.now
68
+
69
+ while true
70
+ return if yield
71
+ raise TimeoutError.new(error_message) if (Time.now - start_time) > timeout
72
+ sleep(0.01)
73
+ end
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,17 @@
1
+ module VCRStubHelpers
2
+ def interactions_from(file)
3
+ hashes = YAML.load_file(File.join(VCR::SPEC_ROOT, 'fixtures', file))['http_interactions']
4
+ hashes.map { |h| VCR::HTTPInteraction.from_hash(h) }
5
+ end
6
+
7
+ def stub_requests(*args)
8
+ allow(VCR).to receive(:http_interactions).and_return(VCR::Cassette::HTTPInteractionList.new(*args))
9
+ end
10
+
11
+ def http_interaction(url, response_body = "FOO!", status_code = 200)
12
+ request = VCR::Request.new(:get, request_url)
13
+ response_status = VCR::ResponseStatus.new(status_code)
14
+ response = VCR::Response.new(response_status, nil, response_body, '1.1')
15
+ VCR::HTTPInteraction.new(request, response)
16
+ end
17
+ end
metadata ADDED
@@ -0,0 +1,677 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: mustwin-vcr
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.9.3
5
+ platform: ruby
6
+ authors:
7
+ - Myron Marston
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-01-12 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.3'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '3.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '3.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '10.1'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '10.1'
55
+ - !ruby/object:Gem::Dependency
56
+ name: pry
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0.9'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '0.9'
69
+ - !ruby/object:Gem::Dependency
70
+ name: pry-doc
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '0.6'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '0.6'
83
+ - !ruby/object:Gem::Dependency
84
+ name: codeclimate-test-reporter
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '0.4'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '0.4'
97
+ - !ruby/object:Gem::Dependency
98
+ name: yard
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: rack
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: fakeweb
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: webmock
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: cucumber
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: aruba
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ - !ruby/object:Gem::Dependency
182
+ name: faraday
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ">="
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - ">="
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
195
+ - !ruby/object:Gem::Dependency
196
+ name: httpclient
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - ">="
200
+ - !ruby/object:Gem::Version
201
+ version: '0'
202
+ type: :development
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - ">="
207
+ - !ruby/object:Gem::Version
208
+ version: '0'
209
+ - !ruby/object:Gem::Dependency
210
+ name: excon
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - ">="
214
+ - !ruby/object:Gem::Version
215
+ version: '0'
216
+ type: :development
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - ">="
221
+ - !ruby/object:Gem::Version
222
+ version: '0'
223
+ - !ruby/object:Gem::Dependency
224
+ name: timecop
225
+ requirement: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - ">="
228
+ - !ruby/object:Gem::Version
229
+ version: '0'
230
+ type: :development
231
+ prerelease: false
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - ">="
235
+ - !ruby/object:Gem::Version
236
+ version: '0'
237
+ - !ruby/object:Gem::Dependency
238
+ name: multi_json
239
+ requirement: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - ">="
242
+ - !ruby/object:Gem::Version
243
+ version: '0'
244
+ type: :development
245
+ prerelease: false
246
+ version_requirements: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - ">="
249
+ - !ruby/object:Gem::Version
250
+ version: '0'
251
+ - !ruby/object:Gem::Dependency
252
+ name: json
253
+ requirement: !ruby/object:Gem::Requirement
254
+ requirements:
255
+ - - ">="
256
+ - !ruby/object:Gem::Version
257
+ version: '0'
258
+ type: :development
259
+ prerelease: false
260
+ version_requirements: !ruby/object:Gem::Requirement
261
+ requirements:
262
+ - - ">="
263
+ - !ruby/object:Gem::Version
264
+ version: '0'
265
+ - !ruby/object:Gem::Dependency
266
+ name: typhoeus
267
+ requirement: !ruby/object:Gem::Requirement
268
+ requirements:
269
+ - - ">="
270
+ - !ruby/object:Gem::Version
271
+ version: '0'
272
+ type: :development
273
+ prerelease: false
274
+ version_requirements: !ruby/object:Gem::Requirement
275
+ requirements:
276
+ - - ">="
277
+ - !ruby/object:Gem::Version
278
+ version: '0'
279
+ - !ruby/object:Gem::Dependency
280
+ name: patron
281
+ requirement: !ruby/object:Gem::Requirement
282
+ requirements:
283
+ - - ">="
284
+ - !ruby/object:Gem::Version
285
+ version: '0'
286
+ type: :development
287
+ prerelease: false
288
+ version_requirements: !ruby/object:Gem::Requirement
289
+ requirements:
290
+ - - ">="
291
+ - !ruby/object:Gem::Version
292
+ version: '0'
293
+ - !ruby/object:Gem::Dependency
294
+ name: em-http-request
295
+ requirement: !ruby/object:Gem::Requirement
296
+ requirements:
297
+ - - ">="
298
+ - !ruby/object:Gem::Version
299
+ version: '0'
300
+ type: :development
301
+ prerelease: false
302
+ version_requirements: !ruby/object:Gem::Requirement
303
+ requirements:
304
+ - - ">="
305
+ - !ruby/object:Gem::Version
306
+ version: '0'
307
+ - !ruby/object:Gem::Dependency
308
+ name: curb
309
+ requirement: !ruby/object:Gem::Requirement
310
+ requirements:
311
+ - - ">="
312
+ - !ruby/object:Gem::Version
313
+ version: '0'
314
+ type: :development
315
+ prerelease: false
316
+ version_requirements: !ruby/object:Gem::Requirement
317
+ requirements:
318
+ - - ">="
319
+ - !ruby/object:Gem::Version
320
+ version: '0'
321
+ - !ruby/object:Gem::Dependency
322
+ name: yajl-ruby
323
+ requirement: !ruby/object:Gem::Requirement
324
+ requirements:
325
+ - - ">="
326
+ - !ruby/object:Gem::Version
327
+ version: '0'
328
+ type: :development
329
+ prerelease: false
330
+ version_requirements: !ruby/object:Gem::Requirement
331
+ requirements:
332
+ - - ">="
333
+ - !ruby/object:Gem::Version
334
+ version: '0'
335
+ - !ruby/object:Gem::Dependency
336
+ name: appraisal
337
+ requirement: !ruby/object:Gem::Requirement
338
+ requirements:
339
+ - - ">="
340
+ - !ruby/object:Gem::Version
341
+ version: '0'
342
+ type: :development
343
+ prerelease: false
344
+ version_requirements: !ruby/object:Gem::Requirement
345
+ requirements:
346
+ - - ">="
347
+ - !ruby/object:Gem::Version
348
+ version: '0'
349
+ - !ruby/object:Gem::Dependency
350
+ name: relish
351
+ requirement: !ruby/object:Gem::Requirement
352
+ requirements:
353
+ - - ">="
354
+ - !ruby/object:Gem::Version
355
+ version: '0'
356
+ type: :development
357
+ prerelease: false
358
+ version_requirements: !ruby/object:Gem::Requirement
359
+ requirements:
360
+ - - ">="
361
+ - !ruby/object:Gem::Version
362
+ version: '0'
363
+ - !ruby/object:Gem::Dependency
364
+ name: mime-types
365
+ requirement: !ruby/object:Gem::Requirement
366
+ requirements:
367
+ - - ">="
368
+ - !ruby/object:Gem::Version
369
+ version: '0'
370
+ type: :development
371
+ prerelease: false
372
+ version_requirements: !ruby/object:Gem::Requirement
373
+ requirements:
374
+ - - ">="
375
+ - !ruby/object:Gem::Version
376
+ version: '0'
377
+ - !ruby/object:Gem::Dependency
378
+ name: sinatra
379
+ requirement: !ruby/object:Gem::Requirement
380
+ requirements:
381
+ - - ">="
382
+ - !ruby/object:Gem::Version
383
+ version: '0'
384
+ type: :development
385
+ prerelease: false
386
+ version_requirements: !ruby/object:Gem::Requirement
387
+ requirements:
388
+ - - ">="
389
+ - !ruby/object:Gem::Version
390
+ version: '0'
391
+ description: Record your test suite's HTTP interactions and replay them during future
392
+ test runs for fast, deterministic, accurate tests.
393
+ email:
394
+ - myron.marston@gmail.com
395
+ executables: []
396
+ extensions: []
397
+ extra_rdoc_files: []
398
+ files:
399
+ - features/about_these_examples.md
400
+ - features/cassettes/allow_unused_http_interactions.feature
401
+ - features/cassettes/automatic_re_recording.feature
402
+ - features/cassettes/decompress.feature
403
+ - features/cassettes/dynamic_erb.feature
404
+ - features/cassettes/exclusive.feature
405
+ - features/cassettes/format.feature
406
+ - features/cassettes/freezing_time.feature
407
+ - features/cassettes/naming.feature
408
+ - features/cassettes/no_cassette.feature
409
+ - features/cassettes/update_content_length_header.feature
410
+ - features/configuration/allow_http_connections_when_no_cassette.feature
411
+ - features/configuration/cassette_library_dir.feature
412
+ - features/configuration/debug_logging.feature
413
+ - features/configuration/default_cassette_options.feature
414
+ - features/configuration/filter_sensitive_data.feature
415
+ - features/configuration/hook_into.feature
416
+ - features/configuration/ignore_request.feature
417
+ - features/configuration/preserve_exact_body_bytes.feature
418
+ - features/configuration/query_parser.feature
419
+ - features/configuration/uri_parser.feature
420
+ - features/getting_started.md
421
+ - features/hooks/after_http_request.feature
422
+ - features/hooks/around_http_request.feature
423
+ - features/hooks/before_http_request.feature
424
+ - features/hooks/before_playback.feature
425
+ - features/hooks/before_record.feature
426
+ - features/http_libraries/em_http_request.feature
427
+ - features/http_libraries/net_http.feature
428
+ - features/middleware/faraday.feature
429
+ - features/middleware/rack.feature
430
+ - features/record_modes/all.feature
431
+ - features/record_modes/new_episodes.feature
432
+ - features/record_modes/none.feature
433
+ - features/record_modes/once.feature
434
+ - features/request_matching/README.md
435
+ - features/request_matching/body.feature
436
+ - features/request_matching/body_as_json.feature
437
+ - features/request_matching/custom_matcher.feature
438
+ - features/request_matching/headers.feature
439
+ - features/request_matching/host.feature
440
+ - features/request_matching/identical_request_sequence.feature
441
+ - features/request_matching/method.feature
442
+ - features/request_matching/path.feature
443
+ - features/request_matching/playback_repeats.feature
444
+ - features/request_matching/query.feature
445
+ - features/request_matching/uri.feature
446
+ - features/request_matching/uri_without_param.feature
447
+ - features/step_definitions/cli_steps.rb
448
+ - features/support/env.rb
449
+ - features/support/http_lib_filters.rb
450
+ - features/test_frameworks/cucumber.feature
451
+ - features/test_frameworks/rspec_macro.feature
452
+ - features/test_frameworks/rspec_metadata.feature
453
+ - features/test_frameworks/test_unit.feature
454
+ - lib/vcr.rb
455
+ - lib/vcr/cassette.rb
456
+ - lib/vcr/cassette/erb_renderer.rb
457
+ - lib/vcr/cassette/http_interaction_list.rb
458
+ - lib/vcr/cassette/migrator.rb
459
+ - lib/vcr/cassette/persisters.rb
460
+ - lib/vcr/cassette/persisters/file_system.rb
461
+ - lib/vcr/cassette/serializers.rb
462
+ - lib/vcr/cassette/serializers/json.rb
463
+ - lib/vcr/cassette/serializers/psych.rb
464
+ - lib/vcr/cassette/serializers/syck.rb
465
+ - lib/vcr/cassette/serializers/yaml.rb
466
+ - lib/vcr/configuration.rb
467
+ - lib/vcr/deprecations.rb
468
+ - lib/vcr/errors.rb
469
+ - lib/vcr/extensions/net_http_response.rb
470
+ - lib/vcr/library_hooks.rb
471
+ - lib/vcr/library_hooks/excon.rb
472
+ - lib/vcr/library_hooks/fakeweb.rb
473
+ - lib/vcr/library_hooks/faraday.rb
474
+ - lib/vcr/library_hooks/typhoeus.rb
475
+ - lib/vcr/library_hooks/typhoeus_0.4.rb
476
+ - lib/vcr/library_hooks/webmock.rb
477
+ - lib/vcr/middleware/excon.rb
478
+ - lib/vcr/middleware/excon/legacy_methods.rb
479
+ - lib/vcr/middleware/faraday.rb
480
+ - lib/vcr/middleware/rack.rb
481
+ - lib/vcr/request_handler.rb
482
+ - lib/vcr/request_ignorer.rb
483
+ - lib/vcr/request_matcher_registry.rb
484
+ - lib/vcr/structs.rb
485
+ - lib/vcr/tasks/vcr.rake
486
+ - lib/vcr/test_frameworks/cucumber.rb
487
+ - lib/vcr/test_frameworks/rspec.rb
488
+ - lib/vcr/util/hooks.rb
489
+ - lib/vcr/util/internet_connection.rb
490
+ - lib/vcr/util/logger.rb
491
+ - lib/vcr/util/variable_args_block_caller.rb
492
+ - lib/vcr/util/version_checker.rb
493
+ - lib/vcr/version.rb
494
+ - spec/acceptance/threading_spec.rb
495
+ - spec/fixtures/cassette_spec/1_x_cassette.yml
496
+ - spec/fixtures/cassette_spec/empty.yml
497
+ - spec/fixtures/cassette_spec/example.yml
498
+ - spec/fixtures/cassette_spec/with_localhost_requests.yml
499
+ - spec/fixtures/fake_example_responses.yml
500
+ - spec/fixtures/match_requests_on.yml
501
+ - spec/lib/vcr/cassette/erb_renderer_spec.rb
502
+ - spec/lib/vcr/cassette/http_interaction_list_spec.rb
503
+ - spec/lib/vcr/cassette/migrator_spec.rb
504
+ - spec/lib/vcr/cassette/persisters/file_system_spec.rb
505
+ - spec/lib/vcr/cassette/persisters_spec.rb
506
+ - spec/lib/vcr/cassette/serializers_spec.rb
507
+ - spec/lib/vcr/cassette_spec.rb
508
+ - spec/lib/vcr/configuration_spec.rb
509
+ - spec/lib/vcr/deprecations_spec.rb
510
+ - spec/lib/vcr/errors_spec.rb
511
+ - spec/lib/vcr/extensions/net_http_response_spec.rb
512
+ - spec/lib/vcr/library_hooks/excon_spec.rb
513
+ - spec/lib/vcr/library_hooks/fakeweb_spec.rb
514
+ - spec/lib/vcr/library_hooks/faraday_spec.rb
515
+ - spec/lib/vcr/library_hooks/typhoeus_0.4_spec.rb
516
+ - spec/lib/vcr/library_hooks/typhoeus_spec.rb
517
+ - spec/lib/vcr/library_hooks/webmock_spec.rb
518
+ - spec/lib/vcr/library_hooks_spec.rb
519
+ - spec/lib/vcr/middleware/faraday_spec.rb
520
+ - spec/lib/vcr/middleware/rack_spec.rb
521
+ - spec/lib/vcr/request_ignorer_spec.rb
522
+ - spec/lib/vcr/request_matcher_registry_spec.rb
523
+ - spec/lib/vcr/structs_spec.rb
524
+ - spec/lib/vcr/test_frameworks/cucumber_spec.rb
525
+ - spec/lib/vcr/test_frameworks/rspec_spec.rb
526
+ - spec/lib/vcr/util/hooks_spec.rb
527
+ - spec/lib/vcr/util/internet_connection_spec.rb
528
+ - spec/lib/vcr/util/version_checker_spec.rb
529
+ - spec/lib/vcr/version_spec.rb
530
+ - spec/lib/vcr_spec.rb
531
+ - spec/monkey_patches.rb
532
+ - spec/spec_helper.rb
533
+ - spec/support/configuration_stubbing.rb
534
+ - spec/support/cucumber_helpers.rb
535
+ - spec/support/fixnum_extension.rb
536
+ - spec/support/http_library_adapters.rb
537
+ - spec/support/limited_uri.rb
538
+ - spec/support/ruby_interpreter.rb
539
+ - spec/support/shared_example_groups/excon.rb
540
+ - spec/support/shared_example_groups/hook_into_http_library.rb
541
+ - spec/support/shared_example_groups/request_hooks.rb
542
+ - spec/support/sinatra_app.rb
543
+ - spec/support/vcr_localhost_server.rb
544
+ - spec/support/vcr_stub_helpers.rb
545
+ homepage: http://vcr.github.io/vcr
546
+ licenses:
547
+ - MIT
548
+ metadata: {}
549
+ post_install_message:
550
+ rdoc_options: []
551
+ require_paths:
552
+ - lib
553
+ required_ruby_version: !ruby/object:Gem::Requirement
554
+ requirements:
555
+ - - ">="
556
+ - !ruby/object:Gem::Version
557
+ version: '0'
558
+ required_rubygems_version: !ruby/object:Gem::Requirement
559
+ requirements:
560
+ - - ">="
561
+ - !ruby/object:Gem::Version
562
+ version: '0'
563
+ requirements: []
564
+ rubyforge_project:
565
+ rubygems_version: 2.4.3
566
+ signing_key:
567
+ specification_version: 4
568
+ summary: Record your test suite's HTTP interactions and replay them during future
569
+ test runs for fast, deterministic, accurate tests.
570
+ test_files:
571
+ - spec/acceptance/threading_spec.rb
572
+ - spec/fixtures/cassette_spec/1_x_cassette.yml
573
+ - spec/fixtures/cassette_spec/empty.yml
574
+ - spec/fixtures/cassette_spec/example.yml
575
+ - spec/fixtures/cassette_spec/with_localhost_requests.yml
576
+ - spec/fixtures/fake_example_responses.yml
577
+ - spec/fixtures/match_requests_on.yml
578
+ - spec/lib/vcr/cassette/erb_renderer_spec.rb
579
+ - spec/lib/vcr/cassette/http_interaction_list_spec.rb
580
+ - spec/lib/vcr/cassette/migrator_spec.rb
581
+ - spec/lib/vcr/cassette/persisters/file_system_spec.rb
582
+ - spec/lib/vcr/cassette/persisters_spec.rb
583
+ - spec/lib/vcr/cassette/serializers_spec.rb
584
+ - spec/lib/vcr/cassette_spec.rb
585
+ - spec/lib/vcr/configuration_spec.rb
586
+ - spec/lib/vcr/deprecations_spec.rb
587
+ - spec/lib/vcr/errors_spec.rb
588
+ - spec/lib/vcr/extensions/net_http_response_spec.rb
589
+ - spec/lib/vcr/library_hooks/excon_spec.rb
590
+ - spec/lib/vcr/library_hooks/fakeweb_spec.rb
591
+ - spec/lib/vcr/library_hooks/faraday_spec.rb
592
+ - spec/lib/vcr/library_hooks/typhoeus_0.4_spec.rb
593
+ - spec/lib/vcr/library_hooks/typhoeus_spec.rb
594
+ - spec/lib/vcr/library_hooks/webmock_spec.rb
595
+ - spec/lib/vcr/library_hooks_spec.rb
596
+ - spec/lib/vcr/middleware/faraday_spec.rb
597
+ - spec/lib/vcr/middleware/rack_spec.rb
598
+ - spec/lib/vcr/request_ignorer_spec.rb
599
+ - spec/lib/vcr/request_matcher_registry_spec.rb
600
+ - spec/lib/vcr/structs_spec.rb
601
+ - spec/lib/vcr/test_frameworks/cucumber_spec.rb
602
+ - spec/lib/vcr/test_frameworks/rspec_spec.rb
603
+ - spec/lib/vcr/util/hooks_spec.rb
604
+ - spec/lib/vcr/util/internet_connection_spec.rb
605
+ - spec/lib/vcr/util/version_checker_spec.rb
606
+ - spec/lib/vcr/version_spec.rb
607
+ - spec/lib/vcr_spec.rb
608
+ - spec/monkey_patches.rb
609
+ - spec/spec_helper.rb
610
+ - spec/support/configuration_stubbing.rb
611
+ - spec/support/cucumber_helpers.rb
612
+ - spec/support/fixnum_extension.rb
613
+ - spec/support/http_library_adapters.rb
614
+ - spec/support/limited_uri.rb
615
+ - spec/support/ruby_interpreter.rb
616
+ - spec/support/shared_example_groups/excon.rb
617
+ - spec/support/shared_example_groups/hook_into_http_library.rb
618
+ - spec/support/shared_example_groups/request_hooks.rb
619
+ - spec/support/sinatra_app.rb
620
+ - spec/support/vcr_localhost_server.rb
621
+ - spec/support/vcr_stub_helpers.rb
622
+ - features/about_these_examples.md
623
+ - features/cassettes/allow_unused_http_interactions.feature
624
+ - features/cassettes/automatic_re_recording.feature
625
+ - features/cassettes/decompress.feature
626
+ - features/cassettes/dynamic_erb.feature
627
+ - features/cassettes/exclusive.feature
628
+ - features/cassettes/format.feature
629
+ - features/cassettes/freezing_time.feature
630
+ - features/cassettes/naming.feature
631
+ - features/cassettes/no_cassette.feature
632
+ - features/cassettes/update_content_length_header.feature
633
+ - features/configuration/allow_http_connections_when_no_cassette.feature
634
+ - features/configuration/cassette_library_dir.feature
635
+ - features/configuration/debug_logging.feature
636
+ - features/configuration/default_cassette_options.feature
637
+ - features/configuration/filter_sensitive_data.feature
638
+ - features/configuration/hook_into.feature
639
+ - features/configuration/ignore_request.feature
640
+ - features/configuration/preserve_exact_body_bytes.feature
641
+ - features/configuration/query_parser.feature
642
+ - features/configuration/uri_parser.feature
643
+ - features/getting_started.md
644
+ - features/hooks/after_http_request.feature
645
+ - features/hooks/around_http_request.feature
646
+ - features/hooks/before_http_request.feature
647
+ - features/hooks/before_playback.feature
648
+ - features/hooks/before_record.feature
649
+ - features/http_libraries/em_http_request.feature
650
+ - features/http_libraries/net_http.feature
651
+ - features/middleware/faraday.feature
652
+ - features/middleware/rack.feature
653
+ - features/record_modes/all.feature
654
+ - features/record_modes/new_episodes.feature
655
+ - features/record_modes/none.feature
656
+ - features/record_modes/once.feature
657
+ - features/request_matching/body.feature
658
+ - features/request_matching/body_as_json.feature
659
+ - features/request_matching/custom_matcher.feature
660
+ - features/request_matching/headers.feature
661
+ - features/request_matching/host.feature
662
+ - features/request_matching/identical_request_sequence.feature
663
+ - features/request_matching/method.feature
664
+ - features/request_matching/path.feature
665
+ - features/request_matching/playback_repeats.feature
666
+ - features/request_matching/query.feature
667
+ - features/request_matching/README.md
668
+ - features/request_matching/uri.feature
669
+ - features/request_matching/uri_without_param.feature
670
+ - features/step_definitions/cli_steps.rb
671
+ - features/support/env.rb
672
+ - features/support/http_lib_filters.rb
673
+ - features/test_frameworks/cucumber.feature
674
+ - features/test_frameworks/rspec_macro.feature
675
+ - features/test_frameworks/rspec_metadata.feature
676
+ - features/test_frameworks/test_unit.feature
677
+ has_rdoc: