README.md in vcr-2.0.0.rc1 vs README.md in vcr-2.0.0.rc2
- old
+ new
@@ -50,21 +50,23 @@
* [Typhoeus](https://github.com/dbalatero/typhoeus) (Typhoeus::Hydra, but not Typhoeus::Easy or Typhoeus::Multi)
* [Excon](https://github.com/geemus/excon)
* [Faraday](https://github.com/technoweenie/faraday)
* And of course any library built on Net::HTTP, such as [Mechanize](http://github.com/tenderlove/mechanize),
[HTTParty](http://github.com/jnunemaker/httparty) or [Rest Client](http://github.com/archiloque/rest-client).
-* Request matching is configurable based on HTTP method, URI, host, path, body and headers.
+* 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 as YAML and can easily be inspected and edited.
+* 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.
+* 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.
-* Extensively tested on 7 different ruby interpretters.
* Includes Rack and Faraday middleware.
## Usage
Browse the [documentation](http://relishapp.com/myronmarston/vcr) for usage info.
@@ -85,43 +87,29 @@
VCR has been tested on the following ruby interpreters:
* MRI 1.8.7
* MRI 1.9.2
* REE 1.8.7
-* JRuby 1.5.6
-* Rubinius 1.2.1
+* JRuby
+* Rubinius
-## Known Issues
-
-* VCR uses YAML to serialize the HTTP interactions to disk in a
- human-readable, human-editable format. Unfortunately there are bugs
- in Syck, Ruby's default YAML engine, that cause it to modify strings
- when serializing them. It appears the the bug is limited to entire
- lines of whitespace. A string such as `"1\n \n2"` will get changed
- to `"1\n\n2"` (see [this gist](https://gist.github.com/815754) for
- example code). In practice, this usually isn't so bad, but it can
- occassionally cause problems, especially when the recorded
- response includes a `content_length` header and you are using an
- HTTP client that relies on this. Mechanize will raise an `EOFError`
- when the `content_length` header does not match the response body
- length. One solution is to use Psych, the new YAML engine included
- in Ruby 1.9. VCR attempts to use Psych if possible, but you may have
- to [re-compile ruby 1.9](http://rhnh.net/2011/01/31/psych-yaml-in-ruby-1-9-2-with-rvm-and-snow-leopard-osx)
- to use it. See [this issue](https://github.com/myronmarston/vcr/issues#issue/43)
- for more info. You can also use the `:update_content_length_header`
- cassette option to ensure the header has the correct value.
-
## Development
* Source hosted on [GitHub](http://github.com/myronmarston/vcr).
* Direct questions and discussions to the [mailing list](http://groups.google.com/group/vcr-ruby).
* Report issues on [GitHub Issues](http://github.com/myronmarston/vcr/issues).
* Pull requests are very welcome! Please include spec and/or feature coverage for every patch,
and create a topic branch for every separate change you make.
* See the [Contributing](https://github.com/myronmarston/vcr/blob/master/CONTRIBUTING.md)
guide for instructions on running the specs and features.
+* Documentation is generated with [YARD](http://yardoc.org/) ([cheat sheet](http://cheat.errtheblog.com/s/yard/)).
+ To generate while developing:
+```
+yard server --reload
+```
+
If you find VCR useful, please recommend me on [working with rails](http://workingwithrails.com/person/16590-myron-marston).
## Thanks
* [Aslak Hellesøy](http://github.com/aslakhellesoy) for [Cucumber](http://github.com/aslakhellesoy/cucumber).
@@ -137,30 +125,37 @@
Thanks also to the following people who have contributed patches or helpful suggestions:
* [Aaron Brethorst](http://github.com/aaronbrethorst)
* [Avdi Grimm](https://github.com/avdi)
* [Bartosz Blimke](http://github.com/bblimke)
+* [Benjamin Oakes](https://github.com/benjaminoakes)
* [Ben Hutton](http://github.com/benhutton)
* [Bradley Isotope](https://github.com/bradleyisotope)
* [Carlos Kirkconnell](https://github.com/kirkconnell)
* [Eric Allam](http://github.com/rubymaverick)
* [Flaviu Simihaian](https://github.com/closedbracket)
+* [Jeff Pollard](https://github.com/Fluxx)
* [Justin Smestad](https://github.com/jsmestad)
* [Karl Baum](https://github.com/kbaum)
+* [Michael Lavrisha](https://github.com/vrish88)
* [Nathaniel Bibler](https://github.com/nbibler)
* [Oliver Searle-Barnes](https://github.com/opsb)
* [Paco Guzmán](https://github.com/pacoguzman)
* [Ryan Bates](https://github.com/ryanb)
* [Sathya Sekaran](https://github.com/sfsekaran)
* [Wesley Beary](https://github.com/geemus)
## Similar Libraries
* [Betamax](https://github.com/robfletcher/betamax) (Groovy)
-* [Ephemeral Response](https://github.com/sandro/ephemeral_response) (Ruby)
+* [VCR.js](https://github.com/elcuervo/vcr.js) (JavaScript)
+* [TapeDeck.js](https://github.com/EndangeredMassa/TapeDeck.js) (JavaScript)
* [Mimic](https://github.com/acoulton/mimic) (PHP/Kohana)
+* [Ephemeral Response](https://github.com/sandro/ephemeral_response) (Ruby)
+* [Net::HTTP Spy](http://github.com/martinbtt/net-http-spy) (Ruby)
* [NetRecorder](https://github.com/chrisyoung/netrecorder) (Ruby)
* [Stale Fish](https://github.com/jsmestad/stale_fish) (Ruby)
+* [WebFixtures](http://github.com/trydionel/web_fixtures) (Ruby)
## Copyright
-Copyright (c) 2010-2011 Myron Marston. See LICENSE for details.
+Copyright (c) 2010-2012 Myron Marston. See LICENSE for details.