Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Comparing changes

Choose two branches to see what's changed or to start a new pull request. If you need to, you can also compare across forks.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also compare across forks.
base fork: myronmarston/vcr
...
head fork: myronmarston/vcr
Commits on Jun 15, 2012
@myronmarston Add link to IRC channel. 617f02d
Commits on Jun 27, 2012
@myronmarston Excon 0.14 is out and works fine with VCR. 339bb3f
Commits on Jul 10, 2012
@myronmarston Fix typos in comments. dfda4cd
@Jacobkg Jacobkg Failing test for reusing net/http request in Fakeweb 498994a
@myronmarston Fix FakeWeb library hook for when a Net::HTTP request is re-used.
Previously I assumed a single Net::HTTP request object would only be used for a single
request. It turns out it can trivially be re-used. I've refactored the implementation to
no longer assume that. The request object was being used to hold a VCR request type
object to handle internal recursion performed by Net::HTTP; now I have a special
recursive request handler for this situation.

Closes #178.
22915c4
@myronmarston No need for this global "seen request" tracking now that we're handli…
…ng Net::HTTP's recursion directly.
0b17104
@myronmarston Fix uninitialized ivar warning. 460ba73
@myronmarston It's `expect { }.to`, not `expect { }.should`. 8075246
@myronmarston Update RSpec. 661450a
@myronmarston Filter out unexplainable warnings. b47858a
@myronmarston 2.2.3 release. 9b2d293
Commits on Jul 20, 2012
@myronmarston Fix excon so real requests are made with a connection constructed wit…
…h same args.

I got this warning from VCR on some tests using fog/excon to download a file from S3 over SSL:

WARNING: VCR could not extract a response from Excon error (#<OpenSSL::SSL::SSLError: hostname does not match the server certificate>)

I discovered that the SSL cert verification for a real request w/o VCR was made against
`s3.amazonaws.com`, while the verification for the request being recorded by VCR was made
against `<bucket_name>.s3.amazonaws.com`. The difference is due to the fact that fog
constructs an Excon::Connection instance with a URI of `s3.amazonaws.com`, then makes a
request with a :host param set to the FQDN. Before this commit, VCR made the real
request by constructing a new Excon::Connection instance with the URI set to the full
URI, and it caused the SSL cert verification failure.

This fixes it by ensuring the "real request" connection instance is constructed with
the same args as the original connection instance.
981112f
@myronmarston Excon 0.15 is out and works fine with VCR. ae9a0b3
@myronmarston Update relish.
I got this message from relish just now:
Sorry, your relish gem 0.5.3 is out of date. Please update to at least version 0.6
7f86b74
@myronmarston 2.2.4 release. 93b5f13
Commits on Jul 25, 2012
@JonathanTron JonathanTron Typhoeus 0.4.2 is out and works fine with VCR d09de03
@myronmarston Merge pull request #184 from JonathanTron/patch-1
Typhoeus 0.4.2 is out and works fine with VCR
1fac6cf
@myronmarston Add @JonathanTron to contributors list. 12905a3
@myronmarston The new WebMock release has fixed the Net::HTTP empty body bug. d9873fb
@myronmarston Ignore rbx18-mode failures.
The travis build failed with no indication as to why:

http://travis-ci.org/#!/myronmarston/vcr/jobs/1952677/L30

..and I've often had problems with the rbx build due to rbx issues.
a1be691
Commits on Jul 26, 2012
Joe Nelson and Stephen Anderson Fix :use_scenario_name behavior for cucumber scenario outlines 5fc309b
Joe Nelson and Stephen Anderson remove debugging artifact c061001
Commits on Aug 12, 2012
@myronmarston Relax the faraday version constraint. c5b249a
Commits on Aug 13, 2012
@myronmarston Allow jruby 18 failure.
I'm getting a weird error from Jruby:

$ script/ci.sh
81CachingCallSite.java:311:in `cacheAndCall': java.lang.NullPointerException
82	from CachingCallSite.java:169:in `call'
83	from /home/vagrant/.rvm/rubies/jruby-1.6.7.2/lib/ruby/site_ruby/1.8/rubygems/version.rb:279:in `__file__'
84	from /home/vagrant/.rvm/rubies/jruby-1.6.7.2/lib/ruby/site_ruby/1.8/rubygems/version.rb:-1:in `__file__'
85	from JittedMethod.java:127:in `call'
86	from DefaultMethod.java:183:in `call'
87	from CachingCallSite.java:133:in `call'
88	from CallNoArgNode.java:63:in `interpret'
89	from LocalAsgnNode.java:123:in `interpret'
90	from NewlineNode.java:104:in `interpret'
91	from BlockNode.java:71:in `interpret'
92	from ASTInterpreter.java:74:in `INTERPRET_METHOD'
93	from InterpretedMethod.java:190:in `call'
94	from DefaultMethod.java:199:in `call'
95	from RuntimeHelpers.java:2622:in `invokedynamic'
96	from RubyComparable.java:149:in `op_ge'
97	from RubyComparable$s$1$0$op_ge.gen:65535:in `call'
98	from CachingCallSite.java:312:in `cacheAndCall'
99	from CachingCallSite.java:169:in `call'
100	from GeCallSite.java:37:in `call'
101	from CallOneArgNode.java:57:in `interpret'
102	from IfNode.java:111:in `interpret'
103	from NewlineNode.java:104:in `interpret'
104	from BlockNode.java:71:in `interpret'
105	from IfNode.java:117:in `interpret'
106	from NewlineNode.java:104:in `interpret'
107	from BlockNode.java:71:in `interpret'
108	from ASTInterpreter.java:111:in `INTERPRET_BLOCK'
109	from InterpretedBlock.java:374:in `evalBlockBody'
110	from InterpretedBlock.java:347:in `yield'
111	from InterpretedBlock.java:304:in `yield'
112	from Block.java:130:in `yield'
113	from YieldNode.java:119:in `interpret'
114	from IfNode.java:117:in `interpret'
115	from NewlineNode.java:104:in `interpret'
116	from BlockNode.java:71:in `interpret'
117	from ASTInterpreter.java:74:in `INTERPRET_METHOD'
118	from InterpretedMethod.java:169:in `call'
119	from DefaultMethod.java:191:in `call'
120	from CachingCallSite.java:142:in `callBlock'
121	from CachingCallSite.java:148:in `call'
122	from RubyClass.java:822:in `newInstance'
123	from RubyClass$i$newInstance.gen:65535:in `call'
124	from CachingCallSite.java:302:in `cacheAndCall'
125	from CachingCallSite.java:144:in `callBlock'
126	from CachingCallSite.java:153:in `callIter'
127	from CallNoArgBlockNode.java:64:in `interpret'
128	from NewlineNode.java:104:in `interpret'
129	from RootNode.java:129:in `interpret'
130	from ASTInterpreter.java:95:in `INTERPRET_EVAL'
131	from ASTInterpreter.java:166:in `evalWithBinding'
132	from RubyKernel.java:1126:in `evalCommon'
133	from RubyKernel.java:1083:in `eval'
134	from RubyKernel$s$0$3$eval.gen:65535:in `call'
135	from DynamicMethod.java:227:in `call'
136	from DynamicMethod.java:223:in `call'
137	from CachingCallSite.java:235:in `call'
138	from FCallThreeArgNode.java:40:in `interpret'
139	from LocalAsgnNode.java:123:in `interpret'
140	from NewlineNode.java:104:in `interpret'
141	from BlockNode.java:71:in `interpret'
142	from RescueNode.java:216:in `executeBody'
143	from RescueNode.java:120:in `interpretWithJavaExceptions'
144	from RescueNode.java:110:in `interpret'
145	from BeginNode.java:83:in `interpret'
146	from NewlineNode.java:104:in `interpret'
147	from BlockNode.java:71:in `interpret'
148	from ASTInterpreter.java:74:in `INTERPRET_METHOD'
149	from InterpretedMethod.java:190:in `call'
150	from DefaultMethod.java:199:in `call'
151	from CachingCallSite.java:167:in `call'
152	from CallOneArgNode.java:57:in `interpret'
153	from DAsgnNode.java:110:in `interpret'
154	from NewlineNode.java:104:in `interpret'
155	from BlockNode.java:71:in `interpret'
156	from ASTInterpreter.java:111:in `INTERPRET_BLOCK'
157	from InterpretedBlock.java:374:in `evalBlockBody'
158	from InterpretedBlock.java:347:in `yield'
159	from InterpretedBlock.java:304:in `yield'
160	from Block.java:130:in `yield'
161	from RubyArray.java:1608:in `eachCommon'
162	from RubyArray.java:1615:in `each'
163	from RubyArray$i$0$0$each.gen:65535:in `call'
164	from CachingCallSite.java:302:in `cacheAndCall'
165	from CachingCallSite.java:144:in `callBlock'
166	from CachingCallSite.java:153:in `callIter'
167	from CallNoArgBlockNode.java:64:in `interpret'
168	from NewlineNode.java:104:in `interpret'
169	from ASTInterpreter.java:111:in `INTERPRET_BLOCK'
170	from InterpretedBlock.java:374:in `evalBlockBody'
171	from InterpretedBlock.java:347:in `yield'
172	from InterpretedBlock.java:304:in `yield'
173	from Block.java:130:in `yield'
174	from RubyArray.java:1608:in `eachCommon'
175	from RubyArray.java:1615:in `each'
176	from RubyArray$i$0$0$each.gen:65535:in `call'
177	from CachingCallSite.java:302:in `cacheAndCall'
178	from CachingCallSite.java:144:in `callBlock'
179	from CachingCallSite.java:153:in `callIter'
180	from CallNoArgBlockNode.java:64:in `interpret'
181	from NewlineNode.java:104:in `interpret'
182	from BlockNode.java:71:in `interpret'
183	from IfNode.java:119:in `interpret'
184	from NewlineNode.java:104:in `interpret'
185	from BlockNode.java:71:in `interpret'
186	from ASTInterpreter.java:74:in `INTERPRET_METHOD'
187	from InterpretedMethod.java:147:in `call'
188	from DefaultMethod.java:183:in `call'
189	from CachingCallSite.java:292:in `cacheAndCall'
190	from CachingCallSite.java:135:in `call'
191	from CallNoArgNode.java:63:in `interpret'
192	from CallNoArgBlockNode.java:60:in `interpret'
193	from NewlineNode.java:104:in `interpret'
194	from BlockNode.java:71:in `interpret'
195	from ASTInterpreter.java:74:in `INTERPRET_METHOD'
196	from InterpretedMethod.java:169:in `call'
197	from DefaultMethod.java:191:in `call'
198	from RubyClass.java:552:in `finvoke'
199	from RuntimeHelpers.java:529:in `invoke'
200	from RubyEnumerable.java:93:in `callEach'
201	from RubyEnumerable.java:650:in `selectCommon'
202	from RubyEnumerable.java:672:in `find_all'
203	from RubyEnumerable$s$0$0$find_all.gen:65535:in `call'
204	from CachingCallSite.java:302:in `cacheAndCall'
205	from CachingCallSite.java:144:in `callBlock'
206	from CachingCallSite.java:153:in `callIter'
207	from CallNoArgBlockNode.java:64:in `interpret'
208	from LocalAsgnNode.java:123:in `interpret'
209	from NewlineNode.java:104:in `interpret'
210	from BlockNode.java:71:in `interpret'
211	from ASTInterpreter.java:74:in `INTERPRET_METHOD'
212	from InterpretedMethod.java:190:in `call'
213	from DefaultMethod.java:199:in `call'
214	from CachingCallSite.java:312:in `cacheAndCall'
215	from CachingCallSite.java:169:in `call'
216	from FCallOneArgNode.java:36:in `interpret'
217	from LocalAsgnNode.java:123:in `interpret'
218	from NewlineNode.java:104:in `interpret'
219	from BlockNode.java:71:in `interpret'
220	from ASTInterpreter.java:74:in `INTERPRET_METHOD'
221	from InterpretedMethod.java:147:in `call'
222	from DefaultMethod.java:183:in `call'
223	from CachingCallSite.java:292:in `cacheAndCall'
224	from CachingCallSite.java:135:in `call'
225	from CallNoArgNode.java:63:in `interpret'
226	from LocalAsgnNode.java:123:in `interpret'
227	from NewlineNode.java:104:in `interpret'
228	from BlockNode.java:71:in `interpret'
229	from ASTInterpreter.java:74:in `INTERPRET_METHOD'
230	from InterpretedMethod.java:147:in `call'
231	from DefaultMethod.java:183:in `call'
232	from CachingCallSite.java:292:in `cacheAndCall'
233	from CachingCallSite.java:135:in `call'
234	from CallNoArgNode.java:63:in `interpret'
235	from LocalAsgnNode.java:123:in `interpret'
236	from NewlineNode.java:104:in `interpret'
237	from BlockNode.java:71:in `interpret'
238	from ASTInterpreter.java:74:in `INTERPRET_METHOD'
239	from InterpretedMethod.java:233:in `call'
240	from DefaultMethod.java:215:in `call'
241	from CachingCallSite.java:332:in `cacheAndCall'
242	from CachingCallSite.java:203:in `call'
243	from /home/vagrant/.rvm/gems/jruby-1.6.7.2@global/bin/bundle:22:in `__file__'
244	from /home/vagrant/.rvm/gems/jruby-1.6.7.2@global/bin/bundle:-1:in `load'
245	from Ruby.java:697:in `runScript'
246	from Ruby.java:690:in `runScript'
247	from Ruby.java:597:in `runNormally'
248	from Ruby.java:446:in `runFromMain'
249	from Main.java:369:in `doRunFromMain'
250	from Main.java:258:in `internalRun'
251	from Main.java:224:in `run'
252	from Main.java:208:in `run'
253	from Main.java:188:in `main'
254
255Done. Build script exited with: 1
ae9de23
Commits on Aug 15, 2012
@Jacobkg Jacobkg Fix for #188. Add mention of debug logging configuration option to un…
…handled request error message. Also added it to the no_cassette.feature.
a683b67
@myronmarston Update changelog and readme. b93fdcd
@myronmarston Fix failing specs.
- The debug_logger note wasn't included in the error message when there is no cassette.
- The new Faraday release includes my fix for the handling of an empty response by its Net::HTTP adapter.
eb91c8a
@myronmarston Excon 0.16 is out and works fine with VCR. d748f06
Commits on Aug 18, 2012
@myronmarston My Faraday fix was in 0.8.3 but that got yanked and it's not in 0.8.4. 93aa595
Commits on Sep 05, 2012
@myronmarston Fix excon compatibility.
We need to remove the undesirable options from the connection's instance variable params, and not simply from the params that are passed to #request.

I suspect that there might have been edge case bugs before now with the old
logic.

Fixes #193.
f7beeed
Commits on Sep 07, 2012
@Jacobkg Jacobkg Merge pull request #186 from bendyworks/fix_scenario_outline
Fix scenario outline
a39a8e3
@Jacobkg Jacobkg Collapse cucumber scenario outline feature into cucumber feature. Ref…
…actor cucumber.rb naming code. Add spec.
b6815b5
@myronmarston Fix excon hook so it works on 1.8.7.
My use of splat args wasn't able to parse on 1.8.7.

Thanks to @jacobkg for pointing this out.
3cbd1d4
@myronmarston Update changelog. 4f3bf03
@myronmarston Thank @jacobkg for help with VCR maintenance. 6cbceea
Commits on Sep 08, 2012
@myronmarston 2.2.5 release. 7dfa240
Commits on Sep 25, 2012
@markburns markburns Fix typo in lib/vcr/errors.rb 1fde090
@myronmarston Add Mark to list of contributors. 02d31bd
Commits on Sep 27, 2012
@rhburrows rhburrows Make the uri parser configurable
Instead of using just Ruby's `URI` class to parse URIs, allow the
parser to be set through the configuration and just use `URI` as a
default. This allows the use of more permissive parser to, e.g. allow
subdomains with underscores in them
64b2edc
@rhburrows rhburrows Set the spec uri parser to enforce the URI interface
Set the `uri_parser` to a limited one wrapping the default `URI` for
use in the specs to ensure that the interface required by acceptable
uri parsers isn't accidentally expanded in the future.
7baf5f0
@rhburrows rhburrows Add `parsed_uri` convenience method to request 0aba90d
@myronmarston Improve uri_parser docs a bit. e06937b
@myronmarston Prefer `should eq` to `should ==`. c53c42d
@myronmarston Fix up `uri` requires.
- It should be required from `configuration` since that's the one place it's used now.
- request_matcher_registry_spec and structs_spec should be runnable in isolation.
e3db39c
@myronmarston Add missing yard doc. 031e54d
@myronmarston Update changelog. b8d402d
Commits on Oct 12, 2012
@myronmarston Build all branches.
[ci skip]
85fbe14
Commits on Oct 29, 2012
Pascal Van Hecke Excluding Rubymine project config files from repo 126c5af
Pascal Van Hecke Only use the first line of the cuke scenario name in the cassette name.
Just like features, scenarios can have multiline preambles. When
using the :use_scenario_name option, VCR will only use the first line
of the scenario name as the directory for the cassette. This change
is modeled after commit 034bdaf
978f932
Commits on Oct 30, 2012
@myronmarston Merge pull request #203 from pascalvanhecke/feature/scenario_name_in_…
…case_of_multiline_scenario_description

Feature/scenario name in case of multiline scenario description
7d59ed7
@i0rek i0rek Update typhoeus code to work with Typheous 0.5. 11e310e
@myronmarston Typhoeus 0.9 has merged my fix that was causing this failure. 06ede93
@myronmarston Make Gemfile compatible with appraisals.
- It wasn't picking up gems in a group.
- I got an undefined method error from `platforms`.
e4969f5
@myronmarston Add back support for Typhoeus 0.4. ec845e2
@myronmarston Don't print a warning for Faraday 0.9. 01b5a09
@myronmarston Put Typhoeus 0.4 specs first.
The coverage check runs at the end and should run against the code coverage from the full spec build.
49718c3
@myronmarston Words. 61280c0
@myronmarston Don't use 1.9 hash syntax. 7563715
@myronmarston Don't use a forking server - use threads instead.
I think this may help solve the travis CI build problems--the forked process may be exiting with another status code causing a failed spec run even though no specs failed.

The forked process approach was needed for Patron in the past but that appears to be fixed.
3057b66
@myronmarston Add -x flag so it gives me more info.
I can't repro the travis failure locally so hopefully this'll provide the missing info.
bf8e5c9
@myronmarston Skip strange 1.9.2 warning I'm getting on Travis CI. eda62d7
@myronmarston Switch to debugger gem for 1.9 1b4703d
@myronmarston Skip patron on 1.8.7.
The HTTP requests timeout (presumably due to switching to a threaded server instead of a forked one) on 1.8.7. We can safely skip them as there isn't any patron-specific logic in VCR.
a20ac40
@myronmarston Switch back to released faraday.
@i0rek moved the new typhoeus faraday adapter into typhoeus itself.
8043c32
@myronmarston Don't attempt to run typhoeus specs on non-MRI interpreters.
I'm having FFI problems on JRuby and Rubinius.
edf1edf
@myronmarston Skip cukes that have been intermittently failing on 1.8.7 on travis. 6575a7f
@myronmarston Update changelog.
[ci skip]
f5c4d9e
@myronmarston 2.3.0 release. 66e0577