class VCR::LinkedCassette::CassetteList

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

def each

Yields linked cassettes first, and then context-owned cassettes
def each
  @linked_cassettes.each do |cassette|
    yield wrap(cassette)
  end
  @cassettes.each do |cassette|
    yield cassette
  end
end

def initialize(cassettes, linked_cassettes)

Parameters:
  • linked_cassettes (Array) -- context-unowned (linked) cassettes
  • cassettes (Array) -- context-owned cassettes
def initialize(cassettes, linked_cassettes)
  @cassettes = cassettes
  @linked_cassettes = linked_cassettes
end

def last

Provide last implementation, which is not provided by Enumerable
def last
  cassette = @cassettes.last
  return cassette if cassette
  cassette = @linked_cassettes.last
  wrap(cassette) if cassette
end

def size

Provide size implementation, which is not provided by Enumerable
def size
  @cassettes.size + @linked_cassettes.size
end

def wrap(cassette)

def wrap(cassette)
  if cassette.linked?
    cassette
  else
    LinkedCassette.new(cassette)
  end
end