Class: Utcp::ToolRepository

Inherits:
Object
  • Object
show all
Defined in:
lib/utcp/tool_repository.rb

Instance Method Summary collapse

Constructor Details

#initializeToolRepository



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_toolsObject



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

#providersObject



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