Class: SkillBench::PackageVerifier

Inherits:
Object
  • Object
show all
Defined in:
lib/skill_bench/package_verifier.rb

Overview

Verifies that a built gem package includes the files required for release.

Defined Under Namespace

Classes: Error

Constant Summary collapse

REQUIRED_FILES =

Files that must be present for a usable evaluator gem package.

%w[
  README.md
  LICENSE
  bin/skill-bench
  docs/architecture.md
  docs/testing-guide.md
  lib/skill_bench.rb
  lib/skill_bench/config/applier.rb
  lib/skill_bench/config/defaults.rb
  lib/skill_bench/config/env_overrides.rb
  lib/skill_bench/config/facade_readers.rb
  lib/skill_bench/config/facade_writers.rb
  lib/skill_bench/config/json_loader.rb
  lib/skill_bench/config/store.rb
  lib/skill_bench/package_verifier.rb
  lib/skill_bench/source_path_resolver.rb
  lib/skill_bench/runner.rb
].freeze

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(package_path:, required_files: REQUIRED_FILES) ⇒ PackageVerifier

Initializes the verifier.

Parameters:

  • package_path (String)

    path to the built ‘.gem` file

  • required_files (Array<String>) (defaults to: REQUIRED_FILES)

    files that must be present in the gemspec payload



46
47
48
49
# File 'lib/skill_bench/package_verifier.rb', line 46

def initialize(package_path:, required_files: REQUIRED_FILES)
  @package_path = package_path
  @required_files = required_files
end

Class Method Details

.call(package_path:, required_files: REQUIRED_FILES) ⇒ Hash

Verifies that a gem package includes required release files.

Parameters:

  • package_path (String)

    path to the built ‘.gem` file

  • required_files (Array<String>) (defaults to: REQUIRED_FILES)

    files that must be present in the gemspec payload

Returns:

  • (Hash)

    result envelope with package verification details



37
38
39
# File 'lib/skill_bench/package_verifier.rb', line 37

def self.call(package_path:, required_files: REQUIRED_FILES)
  new(package_path:, required_files:).call
end

Instance Method Details

#callHash

Verifies that the configured package contains all required files.

Returns:

  • (Hash)

    result envelope with package verification details



54
55
56
57
58
59
60
61
62
63
# File 'lib/skill_bench/package_verifier.rb', line 54

def call
  files = packaged_files
  missing = @required_files - files
  return failure("Missing packaged files: #{missing.join(', ')}") if missing.any?

  { success: true, response: { missing_files: [], packaged_files: files } }
rescue StandardError => e
  SkillBench::ErrorLogger.log_error(e, 'PackageVerifier Error')
  failure(e.message)
end