class VCR::Middleware::Rack
@note This will record/replay outbound HTTP requests made by your rack app.
end
run MyRackApp
end
cassette.options :record => :new_episodes
cassette.name “rack/#{env}”
use VCR::Middleware::Rack do |cassette, env|
app = Rack::Builder.new do
@example
Rack middleware that uses a VCR cassette for each incoming HTTP request.
def call(env)
-
(Array(Integer, Hash, #each))
- the rack response
Parameters:
-
env
(Hash
) -- the rack env hash
def call(env) @mutex.synchronize do VCR.use_cassette(*cassette_arguments(env)) do @app.call(env) end end end
def cassette_arguments(env)
def cassette_arguments(env) arguments = CassetteArguments.new call_block(@cassette_arguments_block, arguments, env) [arguments.name, arguments.options] end
def initialize(app, &block)
-
(ArgumentError)
- if no configuration block is provided
Other tags:
- Yieldparam: env - the rack env hash
Yieldparam: cassette - the cassette configuration object
Other tags:
- Yield: - the cassette configuration block
Parameters:
-
app
(#call
) -- the rack app
def initialize(app, &block) raise ArgumentError.new("You must provide a block to set the cassette options") unless block @app, @cassette_arguments_block, @mutex = app, block, Mutex.new end