Class: Blockbuster::Manager

Inherits:
Object
  • Object
show all
Includes:
OutputHelpers
Defined in:
lib/blockbuster/manager.rb

Overview

Manages cassette packaging and unpackaging

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from OutputHelpers

#silent_puts

Constructor Details

#initialize(instance_configuration = Blockbuster::Configuration.new) {|configuration| ... } ⇒ Manager

Returns a new instance of Manager.

Yields:



8
9
10
11
12
13
14
15
# File 'lib/blockbuster/manager.rb', line 8

def initialize(instance_configuration = Blockbuster::Configuration.new)
  yield configuration if block_given?

  @configuration ||= instance_configuration

  @comparator      = Comparator.new(@configuration)
  @extraction_list = ExtractionList.new(@comparator, @configuration)
end

Instance Attribute Details

#comparatorObject

Returns the value of attribute comparator.



6
7
8
# File 'lib/blockbuster/manager.rb', line 6

def comparator
  @comparator
end

Instance Method Details

#configurationObject



17
18
19
# File 'lib/blockbuster/manager.rb', line 17

def configuration
  @configuration ||= Blockbuster::Configuration.new
end

#drop_off(force: false) ⇒ Object Also known as: teardown

repackages cassettes into a compressed tarball



42
43
44
45
46
47
# File 'lib/blockbuster/manager.rb', line 42

def drop_off(force: false)
  return unless comparator.rewind?(configuration.cassette_files) || force

  silent_puts "Recreating cassette file #{@extraction_list.primary.target_path}"
  @extraction_list.primary.create_cassette_file
end

#rentObject Also known as: setup

extracts cassettes from a tar.gz file

tracks a md5 hash of each file in the tarball



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/blockbuster/manager.rb', line 24

def rent
  master_file_path = @extraction_list.master.file_path

  unless File.exist?(master_file_path)
    silent_puts "File does not exist: #{master_file_path}."
    return false
  end

  remove_existing_cassette_directory if configuration.wipe_cassette_dir

  silent_puts "Extracting VCR cassettes to #{configuration.cassette_dir}"

  @extraction_list.extract_cassettes

  @comparator.store_current_delta_files if configuration.deltas_enabled?
end