Class: Girb::Tools::InspectObject

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

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

available?, to_gemini_tool, tool_name

Class Method Details

.descriptionObject



9
10
11
# File 'lib/girb/tools/inspect_object.rb', line 9

def description
  "Inspect a variable or expression in the current context. Returns detailed information about the object."
end

.parametersObject



13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/girb/tools/inspect_object.rb', line 13

def parameters
  {
    type: "object",
    properties: {
      expression: {
        type: "string",
        description: "The variable name or Ruby expression to inspect (e.g., 'user', 'user.errors', '@items.first')"
      }
    },
    required: ["expression"]
  }
end

Instance Method Details

#execute(binding, expression:) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/girb/tools/inspect_object.rb', line 27

def execute(binding, expression:)
  result = binding.eval(expression)
  {
    expression: expression,
    class: result.class.name,
    value: safe_inspect(result),
    instance_variables: extract_instance_variables(result),
    methods_count: result.methods.count
  }
rescue SyntaxError => e
  { error: "Syntax error: #{e.message}" }
rescue StandardError => e
  { error: "#{e.class}: #{e.message}" }
end