Class: Dratools::ChecksumVerifier

Inherits:
Object
  • Object
show all
Defined in:
lib/dratools/checksum_verifier.rb

Overview

ダウンロード済みファイルのチェックサムを検証する。

Digest::MD5.file はストリーム処理なので、巨大ファイルでも全体をメモリに載せない。

Instance Method Summary collapse

Instance Method Details

#md5_matches?(path, expected_md5) ⇒ Boolean

Returns:

  • (Boolean)


12
13
14
# File 'lib/dratools/checksum_verifier.rb', line 12

def md5_matches?(path, expected_md5)
  md5_for(path).casecmp?(normalize_md5(expected_md5))
end

#verify_md5!(path, expected_md5) ⇒ Object

Raises:



16
17
18
19
20
21
22
# File 'lib/dratools/checksum_verifier.rb', line 16

def verify_md5!(path, expected_md5)
  expected_md5 = normalize_md5(expected_md5)
  actual_md5 = md5_for(path)
  return true if actual_md5.casecmp?(expected_md5)

  raise ChecksumError, "MD5 mismatch for #{path}: expected #{expected_md5}, got #{actual_md5}"
end