Class: Foobara::Agent::DescribeCommand
- Defined in:
- foobara-agent-0.0.5/src/foobara/agent/describe_command.rb
Constant Summary
Constants included from TruncatedInspect
Instance Attribute Summary collapse
-
#command_class ⇒ Object
Returns the value of attribute command_class.
Attributes included from CommandPatternImplementation::Concerns::Subcommands
Attributes included from CommandPatternImplementation::Concerns::Runtime
#exception, #outcome, #raw_result
Attributes included from CommandPatternImplementation::Concerns::Errors
Attributes included from CommandPatternImplementation::Concerns::Inputs
Instance Method Summary collapse
- #command_description ⇒ Object
- #execute ⇒ Object
- #find_command_class ⇒ Object
- #mark_command_as_described ⇒ Object
- #set_command_name ⇒ Object
- #set_description ⇒ Object
- #set_inputs_type ⇒ Object
- #set_result_type ⇒ Object
Methods inherited from Command
Methods included from Concern
foobara_class_methods_module_for, foobara_concern?, included
Methods included from CommandPatternImplementation::Concerns::Reflection
Methods included from CommandPatternImplementation::Concerns::DomainMappers
#domain_map, #domain_map!, #run_mapped_subcommand!
Methods included from CommandPatternImplementation::Concerns::Subcommands
#run_subcommand!, #subcommand?
Methods included from CommandPatternImplementation::Concerns::Entities
Methods included from CommandPatternImplementation::Concerns::Transactions
Methods included from NestedTransactionable
#auto_detect_current_transactions, #commit_transaction, #commit_transaction_if_open, #open_transaction, #opened_transactions, #relevant_entity_classes, relevant_entity_classes_for_type, #relevant_entity_classes_for_type, #rollback_transaction, #transactions, #use_transaction, with_needed_transactions_for_type
Methods included from CommandPatternImplementation::Concerns::StateMachine
Methods included from CommandPatternImplementation::Concerns::Runtime
#halt!, #run, #run!, #run_execute, #succeed, #success?, #validate, #validate_records
Methods included from CommandPatternImplementation::Concerns::Errors
Methods included from CommandPatternImplementation::Concerns::Inputs
#cast_and_validate_inputs, #initialize, #method_missing, #respond_to_missing?, #respond_to_missing_for_inputs?
Methods included from TruncatedInspect
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class Foobara::CommandPatternImplementation::Concerns::Inputs
Instance Attribute Details
#command_class ⇒ Object
Returns the value of attribute command_class.
24 25 26 |
# File 'foobara-agent-0.0.5/src/foobara/agent/describe_command.rb', line 24 def command_class @command_class end |
Instance Method Details
#command_description ⇒ Object
30 31 32 |
# File 'foobara-agent-0.0.5/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 'foobara-agent-0.0.5/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 'foobara-agent-0.0.5/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 'foobara-agent-0.0.5/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 'foobara-agent-0.0.5/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 'foobara-agent-0.0.5/src/foobara/agent/describe_command.rb', line 38 def set_description command_description[:description] = command_class.description end |
#set_inputs_type ⇒ Object
42 43 44 45 46 |
# File 'foobara-agent-0.0.5/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 'foobara-agent-0.0.5/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 |