brew/Library/Homebrew/checksum.rb
2024-04-25 17:00:02 -04:00

32 lines
607 B
Ruby

# typed: strict
# frozen_string_literal: true
# A formula's checksum.
#
# @api private
class Checksum
extend Forwardable
sig { returns(String) }
attr_reader :hexdigest
sig { params(hexdigest: String).void }
def initialize(hexdigest)
@hexdigest = T.let(hexdigest.downcase, String)
end
delegate [:empty?, :to_s, :length, :[]] => :@hexdigest
sig { params(other: T.any(String, Checksum, Symbol)).returns(T::Boolean) }
def ==(other)
case other
when String
to_s == other.downcase
when Checksum
hexdigest == other.hexdigest
else
false
end
end
end