class Bakelite::DSL::VerifyArchiveBuilder

Overview

Tier 2 Declarative Builder for configuring and running Bakelite.verify_archive. Wraps Bakelite::Core::IntegrityVerifier in a fluent block receiver DSL.

Defined in:

bakelite/dsl/verify_archive_builder.cr

Constructors

Instance Method Summary

Constructor Detail

def self.new(target_source : VerificationTarget | Nil = nil, raise_on_error : Bool = false) #

[View source]

Instance Method Detail

def archive(source : VerificationTarget) : self #

Sets the target archive, byte slice, stream, volume, or registry to verify.


[View source]
def assert_clean(val : Bool = true) : self #

[View source]
def assert_invariant(name : String = "invariant_#{@verifier.invariants.size + 1}", &block : Core::VerificationReport -> Bool) : self #

[View source]
def assert_valid(val : Bool = true) : self #

[View source]

[View source]
def bytes(slice : Bytes) : self #

[View source]
def digest(path : String, sha256 : String) : self #

[View source]
def expect_crc32(path : String, crc32 : UInt32) : self #

Declares an expected CRC32 checksum for a specific virtual file path.


[View source]
def expect_digest(path : String, sha256 : String) : self #

[View source]
def expect_manifest(digests : Hash(String, String), strict : Bool = false) : self #

Declares a map of expected virtual file paths to SHA-256 hex digests.


[View source]
def expect_manifest(manifest : Core::ArchiveManifest, strict : Bool = true) : self #

[View source]
def expect_manifest_sha256(digest : String) : self #

Declares the expected deterministic SHA-256 manifest digest of the entire archive/volume.


[View source]
def expect_sha256(path : String, sha256 : String) : self #

Declares an expected SHA-256 hex digest for a specific virtual file path.


[View source]
def fail_fast(val : Bool = true) : self #

[View source]
def invariant(name : String = "invariant_#{@verifier.invariants.size + 1}", &block : Core::VerificationReport -> Bool) : self #

Registers a custom verification invariant predicate.


[View source]
def manifest(digests : Hash(String, String), strict : Bool = false) : self #

[View source]
def manifest(manifest : Core::ArchiveManifest, strict : Bool = true) : self #

[View source]
def manifest_sha256(digest : String) : self #

[View source]
def max_decompressed_bytes(bytes : Int64 | Int32) : self #

[View source]
def raise_on_error(val : Bool = true) : self #

[View source]
def raise_on_error=(raise_on_error : Bool) #

[View source]
def registry(reg : FS::Registry) : self #

[View source]
def require_file(path : String) : self #

Declares one or more required virtual file paths that must exist in the archive.


[View source]
def require_files(paths : Enumerable(String)) : self #

[View source]
def require_files(*paths : String) : self #

[View source]

[View source]
def signature(digest : String) : self #

[View source]
def source(source : VerificationTarget) : self #

[View source]
def strict(val : Bool = true) : self #

[View source]
def strict_manifest(val : Bool = true) : self #

[View source]
def target(source : VerificationTarget) : self #

[View source]
def target_source : VerificationTarget | Nil #

[View source]
def target_source=(target_source : VerificationTarget | Nil) #

[View source]
def verifier : Core::IntegrityVerifier #

[View source]
def verify_chunks(val : Bool = true) : self #

[View source]
def verify_crc32(val : Bool = true) : self #

[View source]
def verify_sha256(val : Bool = true) : self #

[View source]
def volume(vol : Volume) : self #

Filters verification to a specific volume name, or sets a Volume instance as the target.


[View source]
def volume(name : Symbol | String) : self #

[View source]