Module: VCR
- Extended by:
- VCR
- Includes:
- Errors, VariableArgsBlockCaller
- Included in:
- VCR
- Defined in:
- lib/vcr.rb,
lib/vcr/errors.rb,
lib/vcr/structs.rb,
lib/vcr/version.rb,
lib/vcr/cassette.rb,
lib/vcr/util/hooks.rb,
lib/vcr/util/logger.rb,
lib/vcr/deprecations.rb,
lib/vcr/configuration.rb,
lib/vcr/library_hooks.rb,
lib/vcr/middleware/rack.rb,
lib/vcr/request_handler.rb,
lib/vcr/request_ignorer.rb,
lib/vcr/middleware/excon.rb,
lib/vcr/cassette/migrator.rb,
lib/vcr/middleware/faraday.rb,
lib/vcr/cassette/persisters.rb,
lib/vcr/library_hooks/excon.rb,
lib/vcr/cassette/serializers.rb,
lib/vcr/util/version_checker.rb,
lib/vcr/cassette/erb_renderer.rb,
lib/vcr/library_hooks/fakeweb.rb,
lib/vcr/library_hooks/faraday.rb,
lib/vcr/library_hooks/webmock.rb,
lib/vcr/test_frameworks/rspec.rb,
lib/vcr/library_hooks/typhoeus.rb,
lib/vcr/request_matcher_registry.rb,
lib/vcr/test_frameworks/cucumber.rb,
lib/vcr/util/internet_connection.rb,
lib/vcr/cassette/serializers/json.rb,
lib/vcr/cassette/serializers/syck.rb,
lib/vcr/cassette/serializers/yaml.rb,
lib/vcr/cassette/serializers/psych.rb,
lib/vcr/library_hooks/typhoeus_0.4.rb,
lib/vcr/extensions/net_http_response.rb,
lib/vcr/cassette/http_interaction_list.rb,
lib/vcr/cassette/persisters/file_system.rb,
lib/vcr/middleware/excon/legacy_methods.rb,
lib/vcr/util/variable_args_block_caller.rb
Overview
This module is extended onto itself; thus, the methods listed here as instance methods are available directly off of VCR.
The main entry point for VCR.
Defined Under Namespace
Modules: Deprecations, Errors, Hooks, InternetConnection, Middleware, Net, Normalizers, OrderedHashSerializer, RSpec, VariableArgsBlockCaller Classes: Cassette, Configuration, CucumberTags, HTTPInteraction, LibraryHooks, Logger, Request, RequestHandler, RequestIgnorer, RequestMatcherRegistry, Response, ResponseStatus, VersionChecker
Class Method Summary collapse
Instance Method Summary collapse
- #cassette_persisters ⇒ Object
- #cassette_serializers ⇒ Object
-
#config ⇒ Object
deprecated
Deprecated.
Use #configure instead.
-
#configuration ⇒ VCR::Configuration
The VCR configuration.
-
#configure {|config| ... } ⇒ void
Used to configure VCR.
-
#cucumber_tags {|t| ... } ⇒ void
Sets up ‘Before` and `After` cucumber hooks in order to use VCR with particular cucumber tags.
-
#current_cassette ⇒ nil, VCR::Cassette
The currently active cassette.
-
#eject_cassette(options = {}) ⇒ VCR::Cassette?
Ejects the current cassette.
- #http_interactions ⇒ Object
-
#insert_cassette(name, options = {}) ⇒ VCR::Cassette
Inserts the named cassette using the given cassette options.
- #library_hooks ⇒ Object
- #real_http_connections_allowed? ⇒ Boolean
- #record_http_interaction(interaction) ⇒ Object
- #request_ignorer ⇒ Object
-
#request_matchers ⇒ RequestMatcherRegistry
The request matcher registry.
-
#turn_off!(options = {}) ⇒ void
Turns VCR off, so that it no longer handles every HTTP request.
-
#turn_on! ⇒ void
Turns on VCR, if it has previously been turned off.
-
#turned_off(options = {}) ⇒ void
Turns VCR off for the duration of a block.
-
#turned_on? ⇒ Boolean
Whether or not VCR is turned on.
-
#use_cassette(name, options = {}) {|cassette| ... } ⇒ void
Inserts a cassette using the given name and options, runs the given block, and ejects the cassette.
-
#version ⇒ String
The current VCR version.
Methods included from VariableArgsBlockCaller
Class Method Details
.const_missing(const) ⇒ Object
10 11 12 13 14 |
# File 'lib/vcr/deprecations.rb', line 10 def self.const_missing(const) return super unless const == :Config warn "WARNING: `VCR::Config` is deprecated. Use VCR.configuration instead." configuration end |
Instance Method Details
#cassette_persisters ⇒ Object
320 321 322 |
# File 'lib/vcr.rb', line 320 def cassette_persisters @cassette_persisters ||= Cassette::Persisters.new end |
#cassette_serializers ⇒ Object
315 316 317 |
# File 'lib/vcr.rb', line 315 def cassette_serializers @cassette_serializers ||= Cassette::Serializers.new end |
#config ⇒ Object
Use #configure instead.
4 5 6 7 |
# File 'lib/vcr/deprecations.rb', line 4 def config warn "WARNING: `VCR.config` is deprecated. Use VCR.configure instead." configure { |c| yield c } end |
#configuration ⇒ VCR::Configuration
Returns the VCR configuration.
203 204 205 |
# File 'lib/vcr.rb', line 203 def configuration @configuration ||= Configuration.new end |
#configure {|config| ... } ⇒ void
This method returns an undefined value.
Used to configure VCR.
198 199 200 |
# File 'lib/vcr.rb', line 198 def configure yield configuration end |
#cucumber_tags {|t| ... } ⇒ void
This method returns an undefined value.
Sets up ‘Before` and `After` cucumber hooks in order to use VCR with particular cucumber tags.
220 221 222 223 |
# File 'lib/vcr.rb', line 220 def (&block) main_object = eval('self', block.binding) yield VCR::CucumberTags.new(main_object) end |
#current_cassette ⇒ nil, VCR::Cassette
The currently active cassette.
42 43 44 |
# File 'lib/vcr.rb', line 42 def current_cassette cassettes.last end |
#eject_cassette(options = {}) ⇒ VCR::Cassette?
Ejects the current cassette. The cassette will no longer be used. In addition, any newly recorded HTTP interactions will be written to disk.
147 148 149 150 151 152 153 |
# File 'lib/vcr.rb', line 147 def eject_cassette( = {}) cassette = cassettes.last cassette.eject() if cassette cassette ensure cassettes.pop end |
#http_interactions ⇒ Object
288 289 290 291 |
# File 'lib/vcr.rb', line 288 def http_interactions return current_cassette.http_interactions if current_cassette VCR::Cassette::HTTPInteractionList::NullList end |
#insert_cassette(name, options = {}) ⇒ VCR::Cassette
If you use this method you must call ‘eject_cassette` when you are done. It is generally recommended that you use #use_cassette unless your code-under-test cannot be run as a block.
Inserts the named cassette using the given cassette options. New HTTP interactions, if allowed by the cassette’s ‘:record` option, will be recorded to the cassette. The cassette’s existing HTTP interactions will be used to stub requests, unless prevented by the cassete’s ‘:record` option.
120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 |
# File 'lib/vcr.rb', line 120 def insert_cassette(name, = {}) if turned_on? if cassettes.any? { |c| c.name == name } raise ArgumentError.new("There is already a cassette with the same name (#{name}). You cannot nest multiple cassettes with the same name.") end cassette = Cassette.new(name, ) cassettes.push(cassette) cassette elsif !ignore_cassettes? = "VCR is turned off. You must turn it on before you can insert a cassette. " + "Or you can use the `:ignore_cassettes => true` option to completely ignore cassette insertions." raise TurnedOffError.new() end end |
#library_hooks ⇒ Object
310 311 312 |
# File 'lib/vcr.rb', line 310 def library_hooks @library_hooks ||= LibraryHooks.new end |
#real_http_connections_allowed? ⇒ Boolean
294 295 296 297 |
# File 'lib/vcr.rb', line 294 def real_http_connections_allowed? return current_cassette.recording? if current_cassette !!(configuration.allow_http_connections_when_no_cassette? || @turned_off) end |
#record_http_interaction(interaction) ⇒ Object
325 326 327 328 329 330 |
# File 'lib/vcr.rb', line 325 def record_http_interaction(interaction) return unless cassette = current_cassette return if VCR.request_ignorer.ignore?(interaction.request) cassette.record_http_interaction(interaction) end |
#request_ignorer ⇒ Object
305 306 307 |
# File 'lib/vcr.rb', line 305 def request_ignorer @request_ignorer ||= RequestIgnorer.new end |
#request_matchers ⇒ RequestMatcherRegistry
Returns the request matcher registry.
300 301 302 |
# File 'lib/vcr.rb', line 300 def request_matchers @request_matchers ||= RequestMatcherRegistry.new end |
#turn_off!(options = {}) ⇒ void
This method returns an undefined value.
Turns VCR off, so that it no longer handles every HTTP request.
253 254 255 256 257 258 259 260 261 262 263 264 265 266 |
# File 'lib/vcr.rb', line 253 def turn_off!( = {}) if VCR.current_cassette raise CassetteInUseError, "A VCR cassette is currently in use (#{VCR.current_cassette.name}). " + "You must eject it before you can turn VCR off." end @ignore_cassettes = [:ignore_cassettes] = .keys - [:ignore_cassettes] if .any? raise ArgumentError.new("You passed some invalid options: #{invalid_options.inspect}") end @turned_off = true end |
#turn_on! ⇒ void
This method returns an undefined value.
Turns on VCR, if it has previously been turned off.
273 274 275 |
# File 'lib/vcr.rb', line 273 def turn_on! @turned_off = false end |
#turned_off(options = {}) ⇒ void
This method returns an undefined value.
Turns VCR off for the duration of a block.
233 234 235 236 237 238 239 240 241 |
# File 'lib/vcr.rb', line 233 def turned_off( = {}) turn_off!() begin yield ensure turn_on! end end |
#turned_on? ⇒ Boolean
Normally VCR is always turned on; it will only be off if you have explicitly turned it off.
Returns whether or not VCR is turned on.
283 284 285 |
# File 'lib/vcr.rb', line 283 def turned_on? !@turned_off end |
#use_cassette(name, options = {}) {|cassette| ... } ⇒ void
This method returns an undefined value.
Inserts a cassette using the given name and options, runs the given block, and ejects the cassette.
172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 |
# File 'lib/vcr.rb', line 172 def use_cassette(name, = {}, &block) unless block raise ArgumentError, "`VCR.use_cassette` requires a block. " + "If you cannot wrap your code in a block, use " + "`VCR.insert_cassette` / `VCR.eject_cassette` instead." end cassette = insert_cassette(name, ) begin call_block(block, cassette) ensure eject_cassette end end |
#version ⇒ String
This string also has singleton methods:
-
‘major` [Integer] The major version.
-
‘minor` [Integer] The minor version.
-
‘patch` [Integer] The patch version.
-
‘parts` [Array<Integer>] List of the version parts.
Returns the current VCR version.
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/vcr/version.rb', line 11 def version @version ||= begin string = '2.9.3' def string.parts split('.').map { |p| p.to_i } end def string.major parts[0] end def string.minor parts[1] end def string.patch parts[2] end string end end |