Class: FileReplicator::Checksum

Inherits:
Object
  • Object
show all
Defined in:
lib/file_replicator/checksum.rb

Constant Summary collapse

SUPPORTED =
[:md5, :sha1, :sha224, :sha256, :sha384, :sha512]

Instance Method Summary collapse

Constructor Details

#initialize(alg) ⇒ Checksum

Returns a new instance of Checksum.



8
9
10
11
12
# File 'lib/file_replicator/checksum.rb', line 8

def initialize(alg)
  @alg          = alg
  @file_digest  = Digest.const_get(alg.upcase).new
  @chunk_digest = Digest.const_get(alg.upcase).new
end

Instance Method Details

#add_chunk(data) ⇒ Object



14
15
16
17
# File 'lib/file_replicator/checksum.rb', line 14

def add_chunk(data)
  @chunk_digest << data
  @file_digest << data
end

#append_chunk_checksumObject



29
30
31
# File 'lib/file_replicator/checksum.rb', line 29

def append_chunk_checksum
  append_to_checksum_file @chunk_digest.hexdigest, @chunk_file_name
end

#append_file_checksumObject



33
34
35
# File 'lib/file_replicator/checksum.rb', line 33

def append_file_checksum
  append_to_checksum_file @file_digest.hexdigest, @file_path
end

#start_new_chunk(chunk_file_name) ⇒ Object



24
25
26
27
# File 'lib/file_replicator/checksum.rb', line 24

def start_new_chunk(chunk_file_name)
  @chunk_file_name = File.basename(chunk_file_name)
  @chunk_digest.reset
end

#start_new_file(file_path) ⇒ Object



19
20
21
22
# File 'lib/file_replicator/checksum.rb', line 19

def start_new_file(file_path)
  @file_path = file_path
  @file_digest.reset
end