Class: Blockbuster::Delta
Overview
Defined Under Namespace
Classes: NotEnabledError
Constant Summary
collapse
- INITIALIZING_NUMBER =
101_010_101
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from Packager
#create_cassette_file, #tar_file, #write_to_disk
Methods included from Extractor
#extract_cassettes, #save_to_disk, #untar_file
Constructor Details
#initialize(file_name, comparator, configuration) ⇒ Delta
Returns a new instance of Delta.
47
48
49
50
51
52
53
54
|
# File 'lib/blockbuster/delta.rb', line 47
def initialize(file_name, comparator, configuration)
raise NotEnabledError if configuration.deltas_disabled?
@configuration = configuration
@comparator = comparator
@file_name = file_name
@current = true if file_name_without_timestamp == configuration.current_delta_name
end
|
Instance Attribute Details
#configuration ⇒ Object
Returns the value of attribute configuration.
7
8
9
|
# File 'lib/blockbuster/delta.rb', line 7
def configuration
@configuration
end
|
#file_name ⇒ Object
Returns the value of attribute file_name.
7
8
9
|
# File 'lib/blockbuster/delta.rb', line 7
def file_name
@file_name
end
|
Class Method Details
.file_name_without_timestamp(file_name) ⇒ Object
43
44
45
|
# File 'lib/blockbuster/delta.rb', line 43
def self.file_name_without_timestamp(file_name)
file_name.sub(/^\d+_/, '')
end
|
.files(directory) ⇒ Object
18
19
20
|
# File 'lib/blockbuster/delta.rb', line 18
def self.files(directory)
Dir.glob("#{directory}/*.tar.gz").sort.map { |file| File.basename(file) }
end
|
.initialize_for_each(comparator, configuration) ⇒ Object
22
23
24
25
26
27
28
29
30
31
32
33
34
|
# File 'lib/blockbuster/delta.rb', line 22
def self.initialize_for_each(comparator, configuration)
setup_directory(configuration.full_delta_directory)
delta_files = files(configuration.full_delta_directory)
current_delta = configuration.current_delta_name
delta_files << "#{INITIALIZING_NUMBER}_#{current_delta}" unless delta_files.any? { |file| file_name_without_timestamp(file) == current_delta }
delta_files.map do |file|
new(file, comparator, configuration)
end
end
|
.setup_directory(directory) ⇒ Object
36
37
38
39
40
41
|
# File 'lib/blockbuster/delta.rb', line 36
def self.setup_directory(directory)
return if Dir.exist?(directory)
FileUtils.mkdir_p(directory)
FileUtils.touch("#{directory}/.keep")
end
|
Instance Method Details
#current ⇒ Object
Also known as:
current?
60
61
62
|
# File 'lib/blockbuster/delta.rb', line 60
def current
@current || false
end
|
#file_name_without_timestamp ⇒ Object
56
57
58
|
# File 'lib/blockbuster/delta.rb', line 56
def file_name_without_timestamp
self.class.file_name_without_timestamp(file_name)
end
|
#file_path ⇒ Object
66
67
68
|
# File 'lib/blockbuster/delta.rb', line 66
def file_path
File.join(configuration.full_delta_directory, file_name)
end
|
#target_path ⇒ Object
70
71
72
73
74
|
# File 'lib/blockbuster/delta.rb', line 70
def target_path
target = [Time.now.to_i, configuration.current_delta_name].join('_')
File.join(configuration.full_delta_directory, target)
end
|