Class: Foobara::Agent::DescribeCommand
- Inherits:
-
Command
- Object
- Command
- Foobara::Agent::DescribeCommand
show all
- Defined in:
- foobara-agent-0.1.0/src/foobara/agent/describe_command.rb
Constant Summary
TruncatedInspect::MAX_LENGTH
Instance Attribute Summary collapse
Instance Method Summary
collapse
Methods inherited from Command
install!
#inspect, truncating
Methods included from Concern
foobara_class_methods_module_for, foobara_concern?, included
Instance Attribute Details
#command_class ⇒ Object
Returns the value of attribute command_class.
24
25
26
|
# File 'src/foobara/agent/describe_command.rb', line 24
def command_class
@command_class
end
|
Instance Method Details
#command_description ⇒ Object
30
31
32
|
# File 'src/foobara/agent/describe_command.rb', line 30
def command_description
@command_description ||= {}
end
|
#execute ⇒ Object
11
12
13
14
15
16
17
18
19
20
21
22
|
# File 'src/foobara/agent/describe_command.rb', line 11
def execute
find_command_class
set_command_name
set_description
set_inputs_type
set_result_type
mark_command_as_described
command_description
end
|
#find_command_class ⇒ Object
26
27
28
|
# File 'src/foobara/agent/describe_command.rb', line 26
def find_command_class
self.command_class = command_connector.transformed_command_from_name(command_name)
end
|
#mark_command_as_described ⇒ Object
54
55
56
|
# File 'src/foobara/agent/describe_command.rb', line 54
def mark_command_as_described
command_connector.current_accomplish_goal_command.described_commands << command_class.full_command_name
end
|
#set_command_name ⇒ Object
34
35
36
|
# File 'src/foobara/agent/describe_command.rb', line 34
def set_command_name
command_description[:full_command_name] = command_class.full_command_name
end
|
#set_description ⇒ Object
38
39
40
|
# File 'src/foobara/agent/describe_command.rb', line 38
def set_description
command_description[:description] = command_class.description
end
|
42
43
44
45
46
|
# File 'src/foobara/agent/describe_command.rb', line 42
def set_inputs_type
if command_class.inputs_type
command_description[:inputs_type] = JSON.parse(JsonSchemaGenerator.to_json_schema(command_class.inputs_type))
end
end
|
#set_result_type ⇒ Object
48
49
50
51
52
|
# File 'src/foobara/agent/describe_command.rb', line 48
def set_result_type
if command_class.result_type
command_description[:result_type] = JSON.parse(JsonSchemaGenerator.to_json_schema(command_class.result_type))
end
end
|