class Valkyrie::Shrine::Checksum::Base

Public Class Methods

digest_class() click to toggle source
# File lib/valkyrie/shrine/checksum/base.rb, line 7
def self.digest_class
  Digest::SHA256
end

Public Instance Methods

checksum_for(io) click to toggle source
# File lib/valkyrie/shrine/checksum/base.rb, line 19
def checksum_for(io)
  simple_digest(io)
end
digest_class() click to toggle source
# File lib/valkyrie/shrine/checksum/base.rb, line 11
def digest_class
  self.class.digest_class
end
simple_digest(io) click to toggle source
# File lib/valkyrie/shrine/checksum/base.rb, line 23
def simple_digest(io)
  digest_class.new.tap do |result|
    io.rewind
    while (chunk = io.read(16 * 1024))
      result << chunk
    end
  end
end
verify_checksum(io, result) click to toggle source
# File lib/valkyrie/shrine/checksum/base.rb, line 15
def verify_checksum(io, result)
  checksum_for(io) == calculate_checksum(result)
end