module RakeTasks::Checksum

Public Instance Methods

checksum_for(digest) click to toggle source
# File lib/rake_tasks/checksum.rb, line 17
def checksum_for(digest)
  lib =
    case digest
    when :sha256
      Digest::SHA256
    when :sha512
      Digest::SHA512
    when :md5
      Digest::MD5
    end

  hash = lib.file(Gem.gem_file)
  hash.hexdigest
end
checksums() click to toggle source
# File lib/rake_tasks/checksum.rb, line 6
def checksums
  save_checksum_for :md5
  save_checksum_for :sha256
  save_checksum_for :sha512
end
save_checksum_for(digest) click to toggle source
# File lib/rake_tasks/checksum.rb, line 12
def save_checksum_for(digest)
  checksum = checksum_for(digest)
  save_file_for digest, checksum
end

Private Instance Methods

save_file_for(digest, checksum) click to toggle source
# File lib/rake_tasks/checksum.rb, line 34
def save_file_for(digest, checksum)
  gem_file = File.basename(Gem.gem_file)
  path = "checksum/#{gem_file}.#{digest}"

  puts "--- #{digest.to_s.upcase} ---"
  puts checksum

  FileUtils.mkdir_p 'checksum' unless File.directory?('checksum')

  File.open(path, 'w') do |file|
    file.write checksum
  end
end