Class: Girb::Tools::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/girb/tools/base.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.available?Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/girb/tools/base.rb', line 27

def available?
  true
end

.descriptionObject

Raises:

  • (NotImplementedError)


11
12
13
# File 'lib/girb/tools/base.rb', line 11

def description
  raise NotImplementedError, "#{name} must implement .description"
end

.parametersObject

Raises:

  • (NotImplementedError)


15
16
17
# File 'lib/girb/tools/base.rb', line 15

def parameters
  raise NotImplementedError, "#{name} must implement .parameters"
end

.to_gemini_toolObject



19
20
21
22
23
24
25
# File 'lib/girb/tools/base.rb', line 19

def to_gemini_tool
  {
    name: tool_name,
    description: description,
    parameters: parameters
  }
end

.tool_nameObject



7
8
9
# File 'lib/girb/tools/base.rb', line 7

def tool_name
  name.split("::").last.gsub(/([A-Z])/) { "_#{$1.downcase}" }.sub(/^_/, "")
end

Instance Method Details

#execute(binding, **params) ⇒ Object

Raises:

  • (NotImplementedError)


32
33
34
# File 'lib/girb/tools/base.rb', line 32

def execute(binding, **params)
  raise NotImplementedError, "#{self.class.name} must implement #execute"
end