class VCR::LinkedCassette::CassetteList

An enumerable lazily wrapping a list of cassettes that a context is using

Public Class Methods

new(cassettes, linked_cassettes) click to toggle source

Creates a new list of context-owned cassettes and linked cassettes @param cassettes [Array] context-owned cassettes @param linked_cassettes [Array] context-unowned (linked) cassettes

# File lib/vcr/linked_cassette.rb, line 14
def initialize(cassettes, linked_cassettes)
  @cassettes = cassettes
  @linked_cassettes = linked_cassettes
end

Public Instance Methods

each() { |wrap(cassette)| ... } click to toggle source

Yields linked cassettes first, and then context-owned cassettes

# File lib/vcr/linked_cassette.rb, line 20
def each
  @linked_cassettes.each do |cassette|
    yield wrap(cassette)
  end

  @cassettes.each do |cassette|
    yield cassette
  end
end
last() click to toggle source

Provide last implementation, which is not provided by Enumerable

# File lib/vcr/linked_cassette.rb, line 31
def last
  cassette = @cassettes.last
  return cassette if cassette

  cassette = @linked_cassettes.last
  wrap(cassette) if cassette
end
size() click to toggle source

Provide size implementation, which is not provided by Enumerable

# File lib/vcr/linked_cassette.rb, line 40
def size
  @cassettes.size + @linked_cassettes.size
end

Protected Instance Methods

wrap(cassette) click to toggle source
# File lib/vcr/linked_cassette.rb, line 45
def wrap(cassette)
  if cassette.linked?
    cassette
  else
    LinkedCassette.new(cassette)
  end
end