Run this test once, and VCR will record the http request to fixtures/vcr_cassettes/synopsis.yml. Run it again, and VCR
will replay the response from iana.org when the http request is made. This test is now fast (no real HTTP requests are
made anymore), deterministic (the test will continue to pass, even if you are offline, or iana.org goes down for
maintenance) and accurate (the response will contain the same headers and body you get from a real request).

Request matching is configurable based on HTTP method, URI, host, path, body and headers, or you can easily
implement a custom request matcher to handle any need.

The same request can receive different responses in different tests--just use different cassettes.

The recorded requests and responses are stored on disk in a serialization format of your choice
(currently YAML and JSON are built in, and you can easily implement your own custom serializer)
and can easily be inspected and edited.

Dynamic responses are supported using ERB.

Automatically re-records cassettes on a configurable regular interval to keep them fresh and current.

Disables all HTTP requests that you don't explicitly allow.

Simple cucumber integration is provided using tags.

Includes convenient RSpec macro and integration with RSpec 2 metadata.

Known to work well with many popular ruby libraries including RSpec 1 & 2, Cucumber, Test::Unit,
Capybara, Mechanize, Rest-Client and HTTParty.

Includes Rack and Faraday middleware.

Usage

Release Policy

VCR follows the principles of semantic versioning.
The cucumber features define
VCR's public API. Patch level releases contain only bug fixes. Minor
releases contain backward-compatible new features. Major new releases
contain backwards-incompatible changes to the public API.