Class: Utcp::ToolRepository
- Inherits:
-
Object
- Object
- Utcp::ToolRepository
- Defined in:
- lib/utcp/tool_repository.rb
Instance Method Summary collapse
- #all_tools ⇒ Object
- #find(full_tool_name) ⇒ Object
-
#initialize ⇒ ToolRepository
constructor
A new instance of ToolRepository.
- #providers ⇒ Object
- #remove_provider(provider_name) ⇒ Object
- #save_provider_with_tools(provider_name, tools) ⇒ Object
Constructor Details
#initialize ⇒ ToolRepository
6 7 8 9 |
# File 'lib/utcp/tool_repository.rb', line 6 def initialize @tools = {} # full_name => Tool @by_provider = {} # provider_name => [Tool] end |
Instance Method Details
#all_tools ⇒ Object
26 27 28 |
# File 'lib/utcp/tool_repository.rb', line 26 def all_tools @tools.values end |
#find(full_tool_name) ⇒ Object
22 23 24 |
# File 'lib/utcp/tool_repository.rb', line 22 def find(full_tool_name) @tools[full_tool_name] or raise NotFoundError, "Tool not found: #{full_tool_name}" end |
#providers ⇒ Object
18 19 20 |
# File 'lib/utcp/tool_repository.rb', line 18 def providers @by_provider.keys end |
#remove_provider(provider_name) ⇒ Object
30 31 32 33 |
# File 'lib/utcp/tool_repository.rb', line 30 def remove_provider(provider_name) list = @by_provider.delete(provider_name) || [] list.each { |t| @tools.delete("#{provider_name}.#{t.name}") } end |
#save_provider_with_tools(provider_name, tools) ⇒ Object
11 12 13 14 15 16 |
# File 'lib/utcp/tool_repository.rb', line 11 def save_provider_with_tools(provider_name, tools) @by_provider[provider_name] = tools tools.each do |t| @tools["#{provider_name}.#{t.name}"] = t end end |