Class: SkillBench::Services::VariantResolver

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

Overview

Resolves skill paths from variant specifications.

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(variant, skill_name, manifest_path: nil) ⇒ VariantResolver

Returns a new instance of VariantResolver.

Parameters:

  • variant (Hash)

    Parsed variant from VariantParser

  • skill_name (String)

    Name of the skill to resolve

  • manifest_path (String, nil) (defaults to: nil)

    Optional path to registry manifest



25
26
27
28
29
# File 'lib/skill_bench/services/variant_resolver.rb', line 25

def initialize(variant, skill_name, manifest_path: nil)
  @variant = variant
  @skill_name = skill_name
  @manifest_path = manifest_path
end

Class Method Details

.call(variant, skill_name, manifest_path: nil) ⇒ Array<String>

Resolves skill paths from a variant specification.

Parameters:

  • variant (Hash)

    Parsed variant from VariantParser

  • skill_name (String)

    Name of the skill to resolve

  • manifest_path (String, nil) (defaults to: nil)

    Optional path to registry manifest

Returns:

  • (Array<String>)

    Array of skill paths

Raises:

  • (ArgumentError)

    when skill cannot be resolved



18
19
20
# File 'lib/skill_bench/services/variant_resolver.rb', line 18

def self.call(variant, skill_name, manifest_path: nil)
  new(variant, skill_name, manifest_path: manifest_path).call
end

Instance Method Details

#callArray<String>

Resolves skill paths from the variant specification.

Returns:

  • (Array<String>)

    Array of skill paths

Raises:

  • (ArgumentError)

    when skill cannot be resolved or variant type is unknown



35
36
37
38
39
40
41
42
43
44
# File 'lib/skill_bench/services/variant_resolver.rb', line 35

def call
  case @variant[:type]
  when :pack
    resolve_pack_skill
  when :path
    [@variant[:path]]
  else
    raise ArgumentError, "Unknown variant type: #{@variant[:type]}, variant: #{@variant.inspect}"
  end
end