Class: RubyLLM::Skills::FilteredLoader

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby_llm/skills/chat_extensions.rb

Overview

Simple wrapper that filters skills by name.

Instance Method Summary collapse

Constructor Details

#initialize(loader, only) ⇒ FilteredLoader

Returns a new instance of FilteredLoader.



65
66
67
68
# File 'lib/ruby_llm/skills/chat_extensions.rb', line 65

def initialize(loader, only)
  @loader = loader
  @only = Array(only).map(&:to_s)
end

Instance Method Details

#exists?(name) ⇒ Boolean

Returns:

  • (Boolean)


84
85
86
# File 'lib/ruby_llm/skills/chat_extensions.rb', line 84

def exists?(name)
  @only.include?(name.to_s) && @loader.exists?(name)
end

#find(name) ⇒ Object



74
75
76
77
# File 'lib/ruby_llm/skills/chat_extensions.rb', line 74

def find(name)
  return nil unless @only.include?(name.to_s)
  @loader.find(name)
end

#get(name) ⇒ Object

Raises:



79
80
81
82
# File 'lib/ruby_llm/skills/chat_extensions.rb', line 79

def get(name)
  raise NotFoundError, "Skill not found: #{name}" unless @only.include?(name.to_s)
  @loader.get(name)
end

#list ⇒ Object



70
71
72
# File 'lib/ruby_llm/skills/chat_extensions.rb', line 70

def list
  @loader.list.select { |s| @only.include?(s.name) }
end

#reload! ⇒ Object



88
89
90
91
# File 'lib/ruby_llm/skills/chat_extensions.rb', line 88

def reload!
  @loader.reload!
  self
end