Sha256: 78a888d0d9fef27e0e41e3ee9a38c1c86ccc68d5a879656c17de1d3adee3b555

Contents?: true

Size: 942 Bytes

Versions: 2

Compression:

Stored size: 942 Bytes

Contents

module VCR
  # Integrates VCR with RSpec.
  module RSpec
    # @private
    module Metadata
      extend self

      def configure!
        ::RSpec.configure do |config|
          vcr_cassette_name_for = lambda do |metadata|
            description = metadata[:description]

            if example_group = metadata[:example_group]
              [vcr_cassette_name_for[example_group], description].join('/')
            else
              description
            end
          end

          config.around(:each, :vcr => lambda { |v| !!v }) do |example|
            options = example.metadata[:vcr]
            options = options.is_a?(Hash) ? options.dup : {} # in case it's just :vcr => true

            cassette_name = options.delete(:cassette_name) ||
                            vcr_cassette_name_for[example.metadata]

            VCR.use_cassette(cassette_name, options, &example)
          end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
vcr-2.5.0 lib/vcr/test_frameworks/rspec.rb
vcr-2.4.0 lib/vcr/test_frameworks/rspec.rb