brew/Library/Homebrew/checksum.rb
2024-04-26 19:04:20 +02:00

30 lines
590 B
Ruby

# typed: strict
# frozen_string_literal: true
# A formula's checksum.
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