class Blockbuster::Comparator
Data store for files, sources, states, and checksums
Constants
- CONTENT
- SOURCE
Attributes
configuration[R]
current_delta_files[R]
deleted[R]
edited[R]
inventory[R]
Public Class Methods
new(configuration)
click to toggle source
# File lib/blockbuster/comparator.rb, line 12 def initialize(configuration) @configuration = configuration @inventory = {} @edited = [] @current_delta_files = [] @deleted = [] end
Public Instance Methods
add(key, value, source)
click to toggle source
# File lib/blockbuster/comparator.rb, line 20 def add(key, value, source) inventory[key] = { CONTENT => value, SOURCE => source } end
any_deleted?()
click to toggle source
# File lib/blockbuster/comparator.rb, line 78 def any_deleted? if configuration.deltas_disabled? && !@deleted.empty? silent_puts "Cassettes deleted: #{@deleted}" return true elsif configuration.deltas_enabled? && !(current_delta_files & @deleted).empty? silent_puts "Cassettes deleted: #{@deleted}" return true end false end
compare(key, new_digest)
click to toggle source
# File lib/blockbuster/comparator.rb, line 47 def compare(key, new_digest) digest = inventory[key] if digest.nil? silent_puts "New cassette: #{key}" return true elsif digest[CONTENT] != new_digest silent_puts "Cassette changed: #{key}" return true end end
delete(key)
click to toggle source
# File lib/blockbuster/comparator.rb, line 24 def delete(key) inventory.delete(key) end
edited?(file)
click to toggle source
# File lib/blockbuster/comparator.rb, line 36 def edited?(file) (edited + current_delta_files).include?(file) end
keys()
click to toggle source
# File lib/blockbuster/comparator.rb, line 28 def keys inventory.keys end
present?()
click to toggle source
# File lib/blockbuster/comparator.rb, line 32 def present? !keys.empty? end
rewind?(files)
click to toggle source
# File lib/blockbuster/comparator.rb, line 59 def rewind?(files) # rubocop:disable Metrics/AbcSize base_files = [] files.each do |file| next unless File.file?(file) key = configuration.key_from_path(file) base_files << key edited << key if compare(key, file_digest(file)) end @deleted = keys - base_files return true if any_deleted? !edited.empty? end
store_current_delta_files()
click to toggle source
# File lib/blockbuster/comparator.rb, line 40 def store_current_delta_files inventory.each do |k, v| scrubbed = Blockbuster::Delta.file_name_without_timestamp(v[SOURCE]) current_delta_files << k if scrubbed == configuration.current_delta_name end end