mustwin-vcr 2.9.3

Sign up to get free protection for your applications and to get access to all the features.
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: