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 Mar 03, 2012
@myronmarston Clarify a few things in the Upgrade doc. 1e1b5b0
Commits on Mar 05, 2012
@myronmarston Update limited red to version that doesn't abort if the .limited_red …
…file isn't present.
0183d44
Commits on Mar 08, 2012
@myronmarston Add link to REST-assured and re-organize library links. ca6abe8
Commits on Mar 09, 2012
Omer Rauchwerger support for naming cassettes automatically according to the current s…
…cenario's name using the :use_scenario_name option when creating Cucumber tags
d0eb335
@myronmarston Give credit where credit's due. 0d01bfd
@myronmarston Fix ruby warnings ("useless use of == in void context").
This should hopefully make the build green again.
cc4f6cf
@myronmarston Some file systems (like linux) aren't case sensitive.
OS X is though, so this passed for me but failed on travis.
18b449f
Commits on Mar 10, 2012
@myronmarston Fix another place where case-sensitivity matters on Linux. 748d6c2
Commits on Mar 13, 2012
@mislav mislav allow bundler 1.1 9e49c5b
@mislav mislav add cassette option to decode compressed response before recording
When the option is used, "gzip" and "deflate" respones are decompressed
using Zlib before recording, making the serialized data readable and
editable.

Example

  VCR.use_cassette(:example, :decode_compressed_response => true) do
    # ...
  end
ca7cfed
@myronmarston Got decompress.feature to pass on 1.9.2.
- An extra line break is needed; otherwise, the appended content gets smashed against the "end" from the existing content, with no line break.
- Normalize quotes to singles ('). On 1.9.2p290 I was getting a failure because psych was serializing content length as `"43"` rather than `'43'`.
44e91ec
@myronmarston Use a vcr error for unknown content encoding. c1a4f55
@myronmarston Document new :decode_compressed_response option. a08448c
@myronmarston Update Changelog. a96f0aa
@myronmarston Add missing require.
Other things in VCR load this but when I ran this spec file on its own it failed because it wasn't loaded.
e8c53e6
Commits on Mar 14, 2012
@myronmarston Lock em-http-request to version that works with WebMock 1.8.2.
em-http-request 1.0.2, just released today, breaks WebMock's em-http-request adapter.  There's a pull request to get it fixed in WebMock[1], but for now it's simplest to lock to 1.0.1.

[1] bblimke/webmock#168
a17b4b9
@myronmarston limited_red can't install on 1.8.7 due to being build with psych. edf58a2
@myronmarston Upgrade to rspec 2.9.0rc2. 8ef5b0e
@myronmarston Get structs_spec.rb to pass on 1.8.7. 114e6bc
@myronmarston Set file type of a few cuke sections for syntax highlighting on relish. 986557c
@myronmarston Use syck since psych on 1.9.3p125 emits ASCII-8BIT strings as binary.
That was causing these scenarios to fail on travis on 1.9.3.
b5aea12
@myronmarston Revert "Upgrade to rspec 2.9.0rc2."
This reverts commit 8ef5b0e.

VCR's specs aren't passing on 2.9.0.rc2 :(.
1c5217b
@myronmarston Handle limited red not being installed. e0034eb
Commits on Mar 15, 2012
@myronmarston Re-upgrade to rspec 2.9.0.rc2.
On 2.9, metadata filter lambdas are only invoked if the named key is present in the metadata hash, so the old way we made :skip_vcr_reset work is no longer supported.
4cd88e1
@myronmarston Upgrade to limited red 0.3.9, which fixes the 1.8.7 issues. 07ad209
Commits on Mar 16, 2012
@myronmarston Test against new webmock, excon and em-http-request releases. 4a3ed8b
Commits on Mar 19, 2012
@myronmarston Don't try to encode to a nil encoding.
This should allow cassettes recorded on 1.8 to work on 1.9.

Closes #149.
45b3fcf
@myronmarston Update Changelog.
[ci skip]
193c6c1
@myronmarston Ignore rubinius artifacts. 9765851
@myronmarston Work around rubinius bug. f26ac93
Commits on Mar 23, 2012
@myronmarston We need the rubinius fix here in the cukes, too. 022a010
@myronmarston Just force encode to ASCII-8BIT.
Encoding to ASCII-8BIT is nonsensical since it just means "binary".
deea152
@myronmarston RSpec 2.9.0 is out. 4872438
@myronmarston Only uses simplecov on MRI 1.9.
Rubinius in 1.9 mode has problems with it:

rubinius/rubinius#1575
ce67f9b
@myronmarston Excon 0.13 is out and VCR works fine with it. cbacaaa
@myronmarston Travis tweaks.
- rbx 18 mode is passing consistently now.
- Don't bother with ruby head; I'm not paying attention to it and it just wastes travis resources

[ci skip]
a936557
Commits on Mar 28, 2012
@myronmarston Fix faraday middleware so that it plays back parallel requests properly. 2098a95
Commits on Mar 30, 2012
@myronmarston Remove unneeded .document file. 9c0caee
Commits on Apr 01, 2012
@ezkl ezkl Remove explicit definition of parallel_manager 835be52
Commits on Apr 02, 2012
@myronmarston Add @ezkl to list of contributors in the readme. 0714dbd
Commits on Apr 03, 2012
@myronmarston Raise a helpful message if #use_cassette is called with no block.
Previously, doing so would raise a confusing error:

  NoMethodError: undefined method `arity' for nil:NilClass
4f900a7
Commits on Apr 06, 2012
@myronmarston Remove unused method. 5677f88
Commits on Apr 19, 2012
@myronmarston Add link to codeclimate. b5f78ea
@myronmarston Update Changelog to reflect 2.0.1 release. 1977f87
@myronmarston Fix readme.
[ci skip]
67c1823
@myronmarston 2.1.0 release.
[ci skip]
23fe0d7
Commits on Apr 23, 2012
@myronmarston Fix :use_scenario_name option so that it works for multiple scenarios.
Closes #156.
751783e
@myronmarston Update Changelog. dbe142d
Commits on Apr 24, 2012
@myronmarston Only use the first line of the cuke feature name in the cassette name.
Closes #157.
034bdaf
@myronmarston Update changelog.
[ci skip]
92da531
Commits on Apr 25, 2012
@myronmarston 2.1.1 release. 4858f4e
Chris Le Refactored cassette to use a storage backend 5a7021b
@myronmarston Remove DB storage backend.
VCR's only going to provide a file system implementation of a storage backend. Any other storage backends will need to be implemented by end users.
7667c7a
@myronmarston Remove unused variable. f7fb0ba
@myronmarston Remove unused method. daee674
@myronmarston Use a shorter variable name. 93f3c1a
@myronmarston Use an attr_reader rather than an explicit method. ff972d1
@myronmarston Add specs for StorageBackends. 6c6a3b3
Commits on Apr 26, 2012
@myronmarston Implement FileSystem read/write interface. d44afaa
Commits on Apr 27, 2012
@myronmarston Change Cassette::Reader to Cassette::ERBRenderer.
This moves the responsibility for reading the file back into VCR::Cassette, which will pave the way for using the new storage backends.
67a9cf0
@myronmarston Use the storage backend rather than direct file calls. 488042c
@myronmarston Rename raw_yaml_content to raw_cassette_bytes
...since other (non-yaml) serializers are supported now.
37ed57f
@myronmarston VCR::Configuration doesn't use fileutils anymore. ef459e4
@myronmarston Pass the cassette name to the ERBRenderer.
This allows it to use it in error messages.
7e03d4c
@myronmarston Move the file name sanitization into the FileSystem backend.
This sanitization is designed for file names, so it belongs there.
56c6c19
Commits on Apr 28, 2012
@myronmarston Allow a custom storage backend to be used. fd6bbaa
@myronmarston Change :storage_backend option to :persist_with.
I like this a bit better and it lines up nicely with the :serialize_with option.
e0b63b8
@myronmarston Add yard docs for new persister feature. 924e703
@myronmarston Fix failing cuke.
The new persist_with option gets logged.
d79146d
@myronmarston Gracefully handle the case where the template is nil. c9766f5
@myronmarston Words. 7af62f4
Commits on May 01, 2012
@playupchris playupchris Modify after_http_request scenario to fail 9e2d24e
@playupchris playupchris BUGFIX for calling "to procable" filters in hooks
eg. VCR.configure.after_http_request(:stubbed?)
db7f0bc
@myronmarston Slightly more robust fix for the after_http_request symbol filter pro…
…blem.

I don't think it's the right general behavior to have hook filters only forward 1 argument to the filter when the filter uses splat args.  Symbols are a special case for after_http_request filters where we only want to forward the request argument (since they are arg-less predicate methods on the request).
262393a
@myronmarston Words.
[ci skip]
4fecdff
@myronmarston Cassette#file is only valid when the FileSystem persister is used. 6e1359c
Commits on May 02, 2012
@myronmarston Shift things around to make yard 0.8 happy. 3193708
@myronmarston Print out the yard coverage info (including warnings) even when the t…
…ask passes.
c0836b6
@myronmarston Deal with some YARD warnings. 8bc984f
@myronmarston Refactor cassette initialization. 76c1e35
@myronmarston Add link to nock.
[ci skip]
9f68800
Commits on May 03, 2012
@ingemar ingemar Pass the given URI to ::FakeWeb.allow_net_connect? when VCR is turned…
… off

[fixes #160]
cef9f9d
@myronmarston Prefer eq matcher to ==.
Using should == generates warnings.
bface04
@gordoncww gordoncww WebMock's :allow filters work now bd6a9ce
@myronmarston Words. e564ec3
Commits on May 04, 2012
@myronmarston Remove old scripts I no longer use.
[ci skip]
4d2066a
@myronmarston Fix/cleanup webmock spec version/adapter checking code.
It had `library` but that's an undefined variable and it was causing jruby/rbx to abort.
1bdaa8c
@myronmarston Cut rake out of rspec/cucumber for CI builds.
When something environmental fails (i.e. not in an individual spec, but when the spec files are being loaded), the rake tasks craps out but does not include the backtrace of what failed.  It's really annoying and hard to troubleshoot.  This should work better.
2ac7a03
Commits on May 07, 2012
@myronmarston Add link to NSURLConnectionVCR.
...and re-arrange links alphabetically while I'm at it.

[ci skip]
6723279
@myronmarston Print a warning when a non-standard Faraday stack is used.
When the Faraday stack includes a middleware after the HTTP adapter it gets "first dibs" on modifying the response and thus can prevent VCR from recording the response properly.  This is a problem with the instagram gem.

For #159.
e536a51
@myronmarston Raise an error if a response is recorded with an invalid body.
This can occur when a non-standard Faraday stack is used, where a response-modifying middleware comes after the HTTP adapter.

For #159.
d924f66
Commits on May 11, 2012
@myronmarston Fix documentation typo. f5bb8a0
Commits on May 14, 2012
@myronmarston Relax httpclient version constraint.
This should pick up the latest, to run the build for #168.
8575ba5
Commits on May 23, 2012
@myronmarston Fix HTTPInteraction filtering to handle integers (e.g. port) correctly.
Previously, we would get an error:
  TypeError: can't convert Fixnum into String

Closes #167.
04cd243
@myronmarston Gracefully handle a faraday stack w/ no explicit adapter.
Closes #170.
30549e8
@myronmarston Update changelog. 90dacb2
Commits on May 26, 2012
@myronmarston Work around bug in WebMock's em-http-request adapter.
When the :redirects option is used with em-http-request,
WebMock's after_request hook gets invoked twice for a
single request. It appears to be doing it one for the original
request and once for the following redirect request. However,
the second time it does not actually have the new URL, and,
furthermore, the globally_stub_request hook is only invoked
once. As a result, the @__typed_vcr_request ivar has already
been removed, and we were getting nil on the second after_request
hook invocation.

Our fix is to make our WebMock library hook tolerant of the
@__typed_vcr_request hook not being present. Some things
(such as filtering an after_http_request hook based on request
type) will not work properly but the main VCR functionality can
work this way.

Closes #171.
b161e10
@myronmarston Ensure our injected instance variable gets removed. aa087c1
@myronmarston Fix 1.8.7 compatibility.
- On 1.8, #instance_variables returns an array of strings.
- On 1.9, #instance_variables returns an array of symbols.
524ac1c
@myronmarston Remove guard...I haven't used guard in a while. ea84bfb
Commits on May 27, 2012
@myronmarston Uninstall JSON gem before running the Travis build.
Some of the VMs appear to have JSON 1.7.1 installed and it's causing weird breakage:

http://travis-ci.org/#!/myronmarston/vcr/jobs/1443136/L145
e1ca679
@myronmarston Work around weird rubinius issue on travis. 50c6ef5
@myronmarston Require spec support files relative to load path.
This should prevent any of them from being loaded twice as long as we use the relative form everywhere.
139ac6b
Commits on May 28, 2012
@myronmarston Fix cukes failing on rubinius.
Rubinius now includes some extra leading spaces on some kinds of errors, for some reason.
99bd91a
@myronmarston Fix failing specs on rubinius.
I'm not sure why there's this different behavior for MRI vs RBX, but this fixes it.
0885843
@myronmarston Skip some tests on JRuby that don't apply.
JRuby handles YAML and JSON a bit different from MRI.
Also, JRuby keeps #type in 1.9 mode even though MRI does not (but has it on 1.8).
fe4f152
@myronmarston 1.9 mode on rbx doesn't have the same serialization errors. 04ed9df
@myronmarston Rubinius 1.9 mode doesn't raise encoding errors like it should :(. f8cfae3
@myronmarston Rubinius 1.9 mode has a gzip issue, too... 42babb2
Commits on May 29, 2012
@myronmarston Allow requests to be stubbed by external libraries (e.g. WebMock or F…
…akeWeb).

Previously, direct WebMock/FakeWeb/Typhoeus stubs would be ignored
unless VCR was turned off. However, some users have requested that
VCR use these stubs if they are set. This enables that.

Part of this changes the VCR::Request::Typed interface a little bit;
#stubbed? now returns true regardless of how it was stubbed, and
#stubbed_by_vcr? should be used to test if VCR stubbed it (vs.
#externally_stubbed?).

Note that I consider this a bit experimental. I'm not sure I've thought
through all the repercussions of this, and I consider this only
"semi supported".

Closes #146.
499646a
@tylerhunt tylerhunt Fix multipart POST requests with Faraday. cec9fe3
Commits on May 30, 2012
@myronmarston Some improvements to @tylerhunt's faraday multipart upload fix.
- Add tests.
- Move the body reading out of #vcr_request and into a helper method--
  we don't want it to happen multiple times and #vcr_request is memoized
  for a reason.
- Refactor the body reading a bit.
- Use it for the response body, too. I don't really understand it, but
  for some reason the multipart request body becomes the response body
  when no HTTP adapter is set, and due to the change I made in
  d924f66, an error was raised.

Closes #172.
4752496
@myronmarston Remove limited red...I'm not actually using it. b364c82
@myronmarston Reformat changelog.
[ci skip]
aff7f48
@challengee challengee Added allow_episode_skipping option notion c7a5b09
@challengee challengee Assert if a list can be stopped using properly; Custom error when req…
…uests have been skipped
58ddbb0
@challengee challengee Renamed option; made has_unused_interactions? private; don't mix opti…
…on in with http interaction list; Added default option
75d64a7
Commits on May 31, 2012
@myronmarston Finish the allow_unused_http_interactions feature.
- Add cuke.
- Add #assert_no_unused_interactions! call from Cassette#eject.
- Rename error class to match option.
- Various other small fixes.
d6e9610
@myronmarston Update changelog.
[ci skip]
729292e
@myronmarston Make cuke tolerant of slight interpreter discrepancies.
JRuby and Rubinius print errors a bit different (e.g.
extra spacing, different placement of error class
relative to the error message w/ a multiline message).
9c686c9
@myronmarston Add links to other VCR ports. 9795ddb
@myronmarston 2.2.0 release. e1e0b62
Commits on Jun 05, 2012
@myronmarston Documentation fixes.
[ci skip]
2deeb50
Commits on Jun 07, 2012
@myronmarston A few relish fixes. 3883d50
Commits on Jun 12, 2012
@myronmarston Fix #uri_without_params so that it handles URIs w/ no query properly.
Previously, #partial_uri_from would return nil for a URI that lacked a query, which meant that it would automatically match any other URI w/o a query, even if they were wildly different.
f0b7715
Commits on Jun 13, 2012
@myronmarston Fix comment formatting. 26a544a
@myronmarston Add spec for consistent handling of empty body responses.
The fix for this is dependent upon pull requests I've opened
with FakeWeb, WebMock and Faraday:

- chrisk/fakeweb#32
- bblimke/webmock#190
- https://github.com/technoweenie/faraday/pull/168

Closes #173.
b5b1350
@i0rek i0rek Update Typhoeus links. be71eda
@myronmarston Merge pull request #174 from i0rek/typhoeus_links
Update Typhoeus links.
99fc556
@myronmarston 2.2.1 release. 5e9dcb8
Commits on Jun 14, 2012
@myronmarston Include cassette name in error message. 819cdfb
Commits on Jun 15, 2012
@myronmarston Fix a few yard formatting issues.
[ci skip]
c3ab6af
@myronmarston Fix VCR.eject_cassette so that it always pops the cassette off the st…
…ack.

Previously, if there was an error while ejecting the cassette, the cassette would remain as the current cassette.

Closes #175.
2bff070
@myronmarston 2.2.2 release. 7f03f6b
@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