brew/Library/Homebrew/checksum.rb

30 lines
590 B
Ruby
Raw Normal View History

2024-04-25 17:00:02 -04:00
# typed: strict
# frozen_string_literal: true
2020-08-17 02:58:03 +02:00
# A formula's checksum.
class Checksum
extend Forwardable
2024-04-25 17:00:02 -04:00
sig { returns(String) }
attr_reader :hexdigest
2024-04-25 17:00:02 -04:00
sig { params(hexdigest: String).void }
def initialize(hexdigest)
2024-04-25 17:00:02 -04:00
@hexdigest = T.let(hexdigest.downcase, String)
end
2020-11-19 18:12:16 +01:00
delegate [:empty?, :to_s, :length, :[]] => :@hexdigest
2024-04-25 17:00:02 -04:00
sig { params(other: T.any(String, Checksum, Symbol)).returns(T::Boolean) }
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
hexdigest == other.hexdigest
2020-11-19 18:12:16 +01:00
else
false
end
end
end