brew/Library/Homebrew/checksum.rb

32 lines
556 B
Ruby
Raw Normal View History

2020-10-10 14:16:11 +02:00
# typed: true
# frozen_string_literal: true
2020-08-17 02:58:03 +02:00
# A formula's checksum.
#
# @api private
class Checksum
extend Forwardable
attr_reader :hash_type, :hexdigest
TYPES = [:sha256].freeze
2013-04-07 00:49:56 -05:00
def initialize(hash_type, hexdigest)
@hash_type = hash_type
2020-11-19 18:12:16 +01:00
@hexdigest = hexdigest.downcase
end
2020-11-19 18:12:16 +01:00
delegate [:empty?, :to_s, :length, :[]] => :@hexdigest
2013-04-07 00:49:56 -05:00
def ==(other)
2020-11-19 18:12:16 +01:00
case other
when String
to_s == other.downcase
when Checksum
hash_type == other.hash_type && hexdigest == other.hexdigest
else
false
end
end
end