tasker-engine 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (605) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +22 -0
  3. data/README.md +443 -0
  4. data/Rakefile +10 -0
  5. data/app/controllers/tasker/analytics_controller.rb +179 -0
  6. data/app/controllers/tasker/application_controller.rb +45 -0
  7. data/app/controllers/tasker/graphql_controller.rb +193 -0
  8. data/app/controllers/tasker/handlers_controller.rb +217 -0
  9. data/app/controllers/tasker/health_controller.rb +229 -0
  10. data/app/controllers/tasker/metrics_controller.rb +111 -0
  11. data/app/controllers/tasker/page_sort.rb +97 -0
  12. data/app/controllers/tasker/task_diagrams_controller.rb +30 -0
  13. data/app/controllers/tasker/tasks_controller.rb +123 -0
  14. data/app/controllers/tasker/workflow_steps_controller.rb +69 -0
  15. data/app/graphql/examples/all_tasks.graphql +22 -0
  16. data/app/graphql/examples/pending_tasks.graphql +23 -0
  17. data/app/graphql/tasker/graph_ql_types/annotation_type.rb +14 -0
  18. data/app/graphql/tasker/graph_ql_types/base_argument.rb +9 -0
  19. data/app/graphql/tasker/graph_ql_types/base_connection.rb +11 -0
  20. data/app/graphql/tasker/graph_ql_types/base_edge.rb +10 -0
  21. data/app/graphql/tasker/graph_ql_types/base_enum.rb +9 -0
  22. data/app/graphql/tasker/graph_ql_types/base_field.rb +10 -0
  23. data/app/graphql/tasker/graph_ql_types/base_input_object.rb +10 -0
  24. data/app/graphql/tasker/graph_ql_types/base_interface.rb +14 -0
  25. data/app/graphql/tasker/graph_ql_types/base_object.rb +10 -0
  26. data/app/graphql/tasker/graph_ql_types/base_scalar.rb +9 -0
  27. data/app/graphql/tasker/graph_ql_types/base_union.rb +11 -0
  28. data/app/graphql/tasker/graph_ql_types/dependent_system_object_map_type.rb +18 -0
  29. data/app/graphql/tasker/graph_ql_types/dependent_system_type.rb +13 -0
  30. data/app/graphql/tasker/graph_ql_types/mutation_type.rb +16 -0
  31. data/app/graphql/tasker/graph_ql_types/named_step_type.rb +16 -0
  32. data/app/graphql/tasker/graph_ql_types/named_task_type.rb +14 -0
  33. data/app/graphql/tasker/graph_ql_types/named_tasks_named_step_type.rb +19 -0
  34. data/app/graphql/tasker/graph_ql_types/node_type.rb +12 -0
  35. data/app/graphql/tasker/graph_ql_types/query_type.rb +20 -0
  36. data/app/graphql/tasker/graph_ql_types/task_annotation_type.rb +17 -0
  37. data/app/graphql/tasker/graph_ql_types/task_interface.rb +17 -0
  38. data/app/graphql/tasker/graph_ql_types/task_type.rb +26 -0
  39. data/app/graphql/tasker/graph_ql_types/workflow_step_type.rb +154 -0
  40. data/app/graphql/tasker/graph_ql_types.rb +42 -0
  41. data/app/graphql/tasker/mutations/base_mutation.rb +13 -0
  42. data/app/graphql/tasker/mutations/cancel_step.rb +29 -0
  43. data/app/graphql/tasker/mutations/cancel_task.rb +29 -0
  44. data/app/graphql/tasker/mutations/create_task.rb +52 -0
  45. data/app/graphql/tasker/mutations/update_step.rb +36 -0
  46. data/app/graphql/tasker/mutations/update_task.rb +41 -0
  47. data/app/graphql/tasker/queries/all_annotation_types.rb +17 -0
  48. data/app/graphql/tasker/queries/all_tasks.rb +23 -0
  49. data/app/graphql/tasker/queries/base_query.rb +9 -0
  50. data/app/graphql/tasker/queries/helpers.rb +16 -0
  51. data/app/graphql/tasker/queries/one_step.rb +24 -0
  52. data/app/graphql/tasker/queries/one_task.rb +18 -0
  53. data/app/graphql/tasker/queries/tasks_by_annotation.rb +31 -0
  54. data/app/graphql/tasker/queries/tasks_by_status.rb +30 -0
  55. data/app/graphql/tasker/tasker_rails_schema.rb +52 -0
  56. data/app/jobs/tasker/application_job.rb +8 -0
  57. data/app/jobs/tasker/metrics_export_job.rb +252 -0
  58. data/app/jobs/tasker/task_runner_job.rb +224 -0
  59. data/app/models/tasker/annotation_type.rb +26 -0
  60. data/app/models/tasker/application_record.rb +70 -0
  61. data/app/models/tasker/dependent_system.rb +26 -0
  62. data/app/models/tasker/dependent_system_object_map.rb +64 -0
  63. data/app/models/tasker/diagram/edge.rb +106 -0
  64. data/app/models/tasker/diagram/flowchart.rb +137 -0
  65. data/app/models/tasker/diagram/node.rb +99 -0
  66. data/app/models/tasker/named_step.rb +41 -0
  67. data/app/models/tasker/named_task.rb +121 -0
  68. data/app/models/tasker/named_tasks_named_step.rb +82 -0
  69. data/app/models/tasker/step_dag_relationship.rb +65 -0
  70. data/app/models/tasker/step_readiness_status.rb +59 -0
  71. data/app/models/tasker/task.rb +424 -0
  72. data/app/models/tasker/task_annotation.rb +36 -0
  73. data/app/models/tasker/task_diagram.rb +332 -0
  74. data/app/models/tasker/task_execution_context.rb +29 -0
  75. data/app/models/tasker/task_namespace.rb +41 -0
  76. data/app/models/tasker/task_transition.rb +235 -0
  77. data/app/models/tasker/workflow_step.rb +461 -0
  78. data/app/models/tasker/workflow_step_edge.rb +94 -0
  79. data/app/models/tasker/workflow_step_transition.rb +434 -0
  80. data/app/serializers/tasker/annotation_type_serializer.rb +8 -0
  81. data/app/serializers/tasker/handler_serializer.rb +109 -0
  82. data/app/serializers/tasker/task_annotation_serializer.rb +32 -0
  83. data/app/serializers/tasker/task_serializer.rb +168 -0
  84. data/app/serializers/tasker/workflow_step_serializer.rb +27 -0
  85. data/app/services/tasker/analytics_service.rb +409 -0
  86. data/app/views/tasker/task/_diagram.html.erb +32 -0
  87. data/config/initializers/dry_struct.rb +11 -0
  88. data/config/initializers/statesman.rb +6 -0
  89. data/config/initializers/tasker_orchestration.rb +17 -0
  90. data/config/initializers/time_formats.rb +4 -0
  91. data/config/routes.rb +34 -0
  92. data/config/tasker/subscriptions/example_integrations.yml +67 -0
  93. data/config/tasker/system_events.yml +305 -0
  94. data/db/functions/calculate_dependency_levels_v01.sql +45 -0
  95. data/db/functions/get_analytics_metrics_v01.sql +137 -0
  96. data/db/functions/get_slowest_steps_v01.sql +82 -0
  97. data/db/functions/get_slowest_tasks_v01.sql +96 -0
  98. data/db/functions/get_step_readiness_status_batch_v01.sql +140 -0
  99. data/db/functions/get_step_readiness_status_v01.sql +139 -0
  100. data/db/functions/get_system_health_counts_v01.sql +108 -0
  101. data/db/functions/get_task_execution_context_v01.sql +108 -0
  102. data/db/functions/get_task_execution_contexts_batch_v01.sql +104 -0
  103. data/db/init/schema.sql +2277 -0
  104. data/db/migrate/20250701165431_initial_tasker_schema.rb +116 -0
  105. data/db/views/tasker_step_dag_relationships_v01.sql +69 -0
  106. data/docs/APPLICATION_GENERATOR.md +384 -0
  107. data/docs/AUTH.md +1780 -0
  108. data/docs/CIRCUIT_BREAKER.md +224 -0
  109. data/docs/DEVELOPER_GUIDE.md +2665 -0
  110. data/docs/EVENT_SYSTEM.md +637 -0
  111. data/docs/EXECUTION_CONFIGURATION.md +341 -0
  112. data/docs/FLOW_CHART.md +149 -0
  113. data/docs/HEALTH.md +542 -0
  114. data/docs/METRICS.md +731 -0
  115. data/docs/OPTIMIZATION_PLAN.md +1479 -0
  116. data/docs/OVERVIEW.md +552 -0
  117. data/docs/QUICK_START.md +270 -0
  118. data/docs/REGISTRY_SYSTEMS.md +373 -0
  119. data/docs/REST_API.md +632 -0
  120. data/docs/ROADMAP.md +221 -0
  121. data/docs/SQL_FUNCTIONS.md +1408 -0
  122. data/docs/TASK_DIAGRAM.md +252 -0
  123. data/docs/TASK_EXECUTION_CONTROL_FLOW.md +237 -0
  124. data/docs/TELEMETRY.md +795 -0
  125. data/docs/TROUBLESHOOTING.md +756 -0
  126. data/docs/TaskHandlerGenerator.html +255 -0
  127. data/docs/Tasker/Analysis/RuntimeGraphAnalyzer.html +907 -0
  128. data/docs/Tasker/Analysis/TemplateGraphAnalyzer.html +1236 -0
  129. data/docs/Tasker/Analysis.html +117 -0
  130. data/docs/Tasker/AnalyticsController.html +450 -0
  131. data/docs/Tasker/AnalyticsService/BottleneckAnalytics.html +816 -0
  132. data/docs/Tasker/AnalyticsService/PerformanceAnalytics.html +586 -0
  133. data/docs/Tasker/AnalyticsService.html +2221 -0
  134. data/docs/Tasker/AnnotationType.html +137 -0
  135. data/docs/Tasker/AnnotationTypeSerializer.html +124 -0
  136. data/docs/Tasker/ApplicationController.html +147 -0
  137. data/docs/Tasker/ApplicationJob.html +128 -0
  138. data/docs/Tasker/ApplicationRecord.html +378 -0
  139. data/docs/Tasker/Authentication/AuthenticationError.html +124 -0
  140. data/docs/Tasker/Authentication/ConfigurationError.html +124 -0
  141. data/docs/Tasker/Authentication/Coordinator.html +242 -0
  142. data/docs/Tasker/Authentication/Interface.html +560 -0
  143. data/docs/Tasker/Authentication/InterfaceError.html +124 -0
  144. data/docs/Tasker/Authentication/NoneAuthenticator.html +338 -0
  145. data/docs/Tasker/Authentication.html +119 -0
  146. data/docs/Tasker/Authorization/AuthorizationError.html +139 -0
  147. data/docs/Tasker/Authorization/BaseCoordinator.html +927 -0
  148. data/docs/Tasker/Authorization/ConfigurationError.html +153 -0
  149. data/docs/Tasker/Authorization/ResourceConstants/ACTIONS.html +428 -0
  150. data/docs/Tasker/Authorization/ResourceConstants/RESOURCES.html +365 -0
  151. data/docs/Tasker/Authorization/ResourceConstants.html +146 -0
  152. data/docs/Tasker/Authorization/ResourceRegistry.html +882 -0
  153. data/docs/Tasker/Authorization/UnauthorizedError.html +153 -0
  154. data/docs/Tasker/Authorization.html +582 -0
  155. data/docs/Tasker/CacheCapabilities.html +167 -0
  156. data/docs/Tasker/CacheStrategy.html +1297 -0
  157. data/docs/Tasker/Concerns/Authenticatable.html +116 -0
  158. data/docs/Tasker/Concerns/Authorizable/AdminStatusChecker.html +256 -0
  159. data/docs/Tasker/Concerns/Authorizable.html +816 -0
  160. data/docs/Tasker/Concerns/ControllerAuthorizable.html +157 -0
  161. data/docs/Tasker/Concerns/EventPublisher.html +4023 -0
  162. data/docs/Tasker/Concerns/IdempotentStateTransitions.html +806 -0
  163. data/docs/Tasker/Concerns/LifecycleEventHelpers.html +129 -0
  164. data/docs/Tasker/Concerns/OrchestrationPublisher.html +129 -0
  165. data/docs/Tasker/Concerns/StateMachineBase/ClassMethods.html +1075 -0
  166. data/docs/Tasker/Concerns/StateMachineBase/StateMachineBase/ClassMethods.html +191 -0
  167. data/docs/Tasker/Concerns/StateMachineBase/StateMachineBase.html +126 -0
  168. data/docs/Tasker/Concerns/StateMachineBase.html +153 -0
  169. data/docs/Tasker/Concerns/StructuredLogging.html +1413 -0
  170. data/docs/Tasker/Concerns.html +117 -0
  171. data/docs/Tasker/Configuration/AuthConfiguration.html +1023 -0
  172. data/docs/Tasker/Configuration/ConfigurationProxy.html +581 -0
  173. data/docs/Tasker/Configuration/DatabaseConfiguration.html +475 -0
  174. data/docs/Tasker/Configuration/EngineConfiguration.html +1265 -0
  175. data/docs/Tasker/Configuration/HealthConfiguration.html +791 -0
  176. data/docs/Tasker/Configuration/TelemetryConfiguration.html +1308 -0
  177. data/docs/Tasker/Configuration/TelemetryConfigurationProxy.html +388 -0
  178. data/docs/Tasker/Configuration.html +1669 -0
  179. data/docs/Tasker/ConfigurationError.html +143 -0
  180. data/docs/Tasker/ConfiguredTask.html +514 -0
  181. data/docs/Tasker/Constants/EventDefinitions.html +590 -0
  182. data/docs/Tasker/Constants/LifecycleEvents.html +137 -0
  183. data/docs/Tasker/Constants/ObservabilityEvents/Step.html +152 -0
  184. data/docs/Tasker/Constants/ObservabilityEvents/Task.html +142 -0
  185. data/docs/Tasker/Constants/ObservabilityEvents.html +126 -0
  186. data/docs/Tasker/Constants/RegistryEvents.html +285 -0
  187. data/docs/Tasker/Constants/StepEvents.html +177 -0
  188. data/docs/Tasker/Constants/TaskEvents.html +167 -0
  189. data/docs/Tasker/Constants/TaskExecution/ExecutionStatus.html +207 -0
  190. data/docs/Tasker/Constants/TaskExecution/HealthStatus.html +191 -0
  191. data/docs/Tasker/Constants/TaskExecution/RecommendedAction.html +207 -0
  192. data/docs/Tasker/Constants/TaskExecution.html +126 -0
  193. data/docs/Tasker/Constants/TaskFinalization/ErrorMessages.html +132 -0
  194. data/docs/Tasker/Constants/TaskFinalization/PendingReasons.html +207 -0
  195. data/docs/Tasker/Constants/TaskFinalization/ReenqueueReasons.html +239 -0
  196. data/docs/Tasker/Constants/TaskFinalization.html +126 -0
  197. data/docs/Tasker/Constants/TaskStatuses.html +223 -0
  198. data/docs/Tasker/Constants/TestEvents.html +163 -0
  199. data/docs/Tasker/Constants/WorkflowEvents.html +222 -0
  200. data/docs/Tasker/Constants/WorkflowStepStatuses.html +223 -0
  201. data/docs/Tasker/Constants.html +561 -0
  202. data/docs/Tasker/DependentSystem.html +137 -0
  203. data/docs/Tasker/DependentSystemObjectMap.html +250 -0
  204. data/docs/Tasker/DetectorRegistry.html +598 -0
  205. data/docs/Tasker/Diagram/Edge.html +1191 -0
  206. data/docs/Tasker/Diagram/Flowchart.html +1539 -0
  207. data/docs/Tasker/Diagram/Node.html +1165 -0
  208. data/docs/Tasker/Diagram.html +117 -0
  209. data/docs/Tasker/Engine.html +215 -0
  210. data/docs/Tasker/Error.html +139 -0
  211. data/docs/Tasker/Events/Bus.html +1226 -0
  212. data/docs/Tasker/Events/Catalog/CatalogPrinter.html +258 -0
  213. data/docs/Tasker/Events/Catalog/CustomEventRegistrar.html +276 -0
  214. data/docs/Tasker/Events/Catalog/ExamplePayloadGenerator.html +294 -0
  215. data/docs/Tasker/Events/Catalog.html +1291 -0
  216. data/docs/Tasker/Events/CustomRegistry.html +943 -0
  217. data/docs/Tasker/Events/DefinitionLoader.html +575 -0
  218. data/docs/Tasker/Events/EventPayloadBuilder/ErrorInfoExtractor.html +286 -0
  219. data/docs/Tasker/Events/EventPayloadBuilder/StepPayloadBuilder.html +312 -0
  220. data/docs/Tasker/Events/EventPayloadBuilder.html +664 -0
  221. data/docs/Tasker/Events/Publisher.html +365 -0
  222. data/docs/Tasker/Events/Subscribers/BaseSubscriber/ErrorCategorizer/ErrorTypeClassifier.html +1128 -0
  223. data/docs/Tasker/Events/Subscribers/BaseSubscriber/ErrorCategorizer.html +270 -0
  224. data/docs/Tasker/Events/Subscribers/BaseSubscriber/MetricTagsExtractor.html +266 -0
  225. data/docs/Tasker/Events/Subscribers/BaseSubscriber.html +2556 -0
  226. data/docs/Tasker/Events/Subscribers/MetricsSubscriber.html +723 -0
  227. data/docs/Tasker/Events/Subscribers/TelemetrySubscriber.html +2251 -0
  228. data/docs/Tasker/Events/Subscribers.html +117 -0
  229. data/docs/Tasker/Events/SubscriptionLoader.html +493 -0
  230. data/docs/Tasker/Events.html +294 -0
  231. data/docs/Tasker/EventsGenerator.html +459 -0
  232. data/docs/Tasker/Functions/FunctionBasedAnalyticsMetrics/AnalyticsMetrics.html +135 -0
  233. data/docs/Tasker/Functions/FunctionBasedAnalyticsMetrics.html +412 -0
  234. data/docs/Tasker/Functions/FunctionBasedDependencyLevels.html +598 -0
  235. data/docs/Tasker/Functions/FunctionBasedSlowestSteps/SlowestStep.html +135 -0
  236. data/docs/Tasker/Functions/FunctionBasedSlowestSteps.html +453 -0
  237. data/docs/Tasker/Functions/FunctionBasedSlowestTasks/SlowestTask.html +135 -0
  238. data/docs/Tasker/Functions/FunctionBasedSlowestTasks.html +453 -0
  239. data/docs/Tasker/Functions/FunctionBasedStepReadinessStatus.html +1457 -0
  240. data/docs/Tasker/Functions/FunctionBasedSystemHealthCounts/HealthMetrics.html +135 -0
  241. data/docs/Tasker/Functions/FunctionBasedSystemHealthCounts.html +370 -0
  242. data/docs/Tasker/Functions/FunctionBasedTaskExecutionContext.html +1250 -0
  243. data/docs/Tasker/Functions/FunctionWrapper.html +479 -0
  244. data/docs/Tasker/Functions.html +117 -0
  245. data/docs/Tasker/Generators/AuthenticatorGenerator/UsageInstructionsFormatter.html +244 -0
  246. data/docs/Tasker/Generators/AuthenticatorGenerator.html +373 -0
  247. data/docs/Tasker/Generators/AuthorizationCoordinatorGenerator.html +430 -0
  248. data/docs/Tasker/Generators/SubscriberGenerator.html +377 -0
  249. data/docs/Tasker/Generators/TaskHandlerGenerator.html +263 -0
  250. data/docs/Tasker/Generators.html +117 -0
  251. data/docs/Tasker/GraphQLTypes/AnnotationType.html +132 -0
  252. data/docs/Tasker/GraphQLTypes/BaseArgument.html +124 -0
  253. data/docs/Tasker/GraphQLTypes/BaseConnection.html +124 -0
  254. data/docs/Tasker/GraphQLTypes/BaseEdge.html +130 -0
  255. data/docs/Tasker/GraphQLTypes/BaseEnum.html +124 -0
  256. data/docs/Tasker/GraphQLTypes/BaseField.html +124 -0
  257. data/docs/Tasker/GraphQLTypes/BaseInputObject.html +124 -0
  258. data/docs/Tasker/GraphQLTypes/BaseInterface.html +116 -0
  259. data/docs/Tasker/GraphQLTypes/BaseObject.html +128 -0
  260. data/docs/Tasker/GraphQLTypes/BaseScalar.html +124 -0
  261. data/docs/Tasker/GraphQLTypes/BaseUnion.html +124 -0
  262. data/docs/Tasker/GraphQLTypes/DependentSystemObjectMapType.html +132 -0
  263. data/docs/Tasker/GraphQLTypes/DependentSystemType.html +132 -0
  264. data/docs/Tasker/GraphQLTypes/MutationType.html +132 -0
  265. data/docs/Tasker/GraphQLTypes/NamedStepType.html +132 -0
  266. data/docs/Tasker/GraphQLTypes/NamedTaskType.html +132 -0
  267. data/docs/Tasker/GraphQLTypes/NamedTasksNamedStepType.html +132 -0
  268. data/docs/Tasker/GraphQLTypes/NodeType.html +118 -0
  269. data/docs/Tasker/GraphQLTypes/QueryType.html +139 -0
  270. data/docs/Tasker/GraphQLTypes/TaskAnnotationType.html +132 -0
  271. data/docs/Tasker/GraphQLTypes/TaskInterface.html +111 -0
  272. data/docs/Tasker/GraphQLTypes/TaskType.html +201 -0
  273. data/docs/Tasker/GraphQLTypes/WorkflowStepType.html +694 -0
  274. data/docs/Tasker/GraphQLTypes.html +130 -0
  275. data/docs/Tasker/GraphqlController.html +251 -0
  276. data/docs/Tasker/HandlerFactory.html +1518 -0
  277. data/docs/Tasker/HandlerSerializer.html +682 -0
  278. data/docs/Tasker/HandlersController.html +574 -0
  279. data/docs/Tasker/HashIdentityStrategy.html +278 -0
  280. data/docs/Tasker/Health/ReadinessChecker.html +712 -0
  281. data/docs/Tasker/Health/StatusChecker.html +653 -0
  282. data/docs/Tasker/Health.html +117 -0
  283. data/docs/Tasker/HealthController.html +523 -0
  284. data/docs/Tasker/IdentityStrategy.html +276 -0
  285. data/docs/Tasker/InvalidTaskHandlerConfig.html +135 -0
  286. data/docs/Tasker/LifecycleEvents/Events/Step.html +162 -0
  287. data/docs/Tasker/LifecycleEvents/Events/Task.html +162 -0
  288. data/docs/Tasker/LifecycleEvents/Events.html +204 -0
  289. data/docs/Tasker/LifecycleEvents/Publisher.html +132 -0
  290. data/docs/Tasker/LifecycleEvents.html +799 -0
  291. data/docs/Tasker/Logging/CorrelationIdGenerator.html +688 -0
  292. data/docs/Tasker/Logging.html +115 -0
  293. data/docs/Tasker/MetricsController.html +293 -0
  294. data/docs/Tasker/MetricsExportJob.html +414 -0
  295. data/docs/Tasker/Mutations/BaseMutation.html +128 -0
  296. data/docs/Tasker/Mutations/CancelStep.html +219 -0
  297. data/docs/Tasker/Mutations/CancelTask.html +221 -0
  298. data/docs/Tasker/Mutations/CreateTask.html +243 -0
  299. data/docs/Tasker/Mutations/UpdateStep.html +243 -0
  300. data/docs/Tasker/Mutations/UpdateTask.html +243 -0
  301. data/docs/Tasker/Mutations.html +117 -0
  302. data/docs/Tasker/NamedStep.html +216 -0
  303. data/docs/Tasker/NamedTask.html +910 -0
  304. data/docs/Tasker/NamedTasksNamedStep.html +435 -0
  305. data/docs/Tasker/Orchestration/BackoffCalculator.html +404 -0
  306. data/docs/Tasker/Orchestration/ConnectionBuilder/ConfigValidator.html +258 -0
  307. data/docs/Tasker/Orchestration/ConnectionBuilder.html +435 -0
  308. data/docs/Tasker/Orchestration/ConnectionPoolIntelligence.html +513 -0
  309. data/docs/Tasker/Orchestration/Coordinator.html +641 -0
  310. data/docs/Tasker/Orchestration/FutureStateAnalyzer.html +1045 -0
  311. data/docs/Tasker/Orchestration/Orchestrator.html +679 -0
  312. data/docs/Tasker/Orchestration/PluginIntegration.html +1127 -0
  313. data/docs/Tasker/Orchestration/ResponseProcessor.html +504 -0
  314. data/docs/Tasker/Orchestration/RetryHeaderParser.html +304 -0
  315. data/docs/Tasker/Orchestration/StepExecutor.html +995 -0
  316. data/docs/Tasker/Orchestration/StepSequenceFactory.html +644 -0
  317. data/docs/Tasker/Orchestration/TaskFinalizer/BlockageChecker.html +264 -0
  318. data/docs/Tasker/Orchestration/TaskFinalizer/ContextManager.html +254 -0
  319. data/docs/Tasker/Orchestration/TaskFinalizer/DelayCalculator.html +556 -0
  320. data/docs/Tasker/Orchestration/TaskFinalizer/FinalizationDecisionMaker.html +348 -0
  321. data/docs/Tasker/Orchestration/TaskFinalizer/FinalizationProcessor.html +286 -0
  322. data/docs/Tasker/Orchestration/TaskFinalizer/ReasonDeterminer.html +432 -0
  323. data/docs/Tasker/Orchestration/TaskFinalizer/ReenqueueManager.html +296 -0
  324. data/docs/Tasker/Orchestration/TaskFinalizer/UnclearStateHandler.html +314 -0
  325. data/docs/Tasker/Orchestration/TaskFinalizer.html +1212 -0
  326. data/docs/Tasker/Orchestration/TaskInitializer.html +766 -0
  327. data/docs/Tasker/Orchestration/TaskReenqueuer.html +506 -0
  328. data/docs/Tasker/Orchestration/ViableStepDiscovery.html +442 -0
  329. data/docs/Tasker/Orchestration/WorkflowCoordinator.html +510 -0
  330. data/docs/Tasker/Orchestration.html +130 -0
  331. data/docs/Tasker/PageSort/PageSortParamsBuilder.html +296 -0
  332. data/docs/Tasker/PageSort.html +247 -0
  333. data/docs/Tasker/PermanentError.html +518 -0
  334. data/docs/Tasker/ProceduralError.html +147 -0
  335. data/docs/Tasker/Queries/AllAnnotationTypes.html +217 -0
  336. data/docs/Tasker/Queries/AllTasks.html +221 -0
  337. data/docs/Tasker/Queries/BaseQuery.html +128 -0
  338. data/docs/Tasker/Queries/Helpers.html +187 -0
  339. data/docs/Tasker/Queries/OneStep.html +225 -0
  340. data/docs/Tasker/Queries/OneTask.html +217 -0
  341. data/docs/Tasker/Queries/TasksByAnnotation.html +231 -0
  342. data/docs/Tasker/Queries/TasksByStatus.html +233 -0
  343. data/docs/Tasker/Queries.html +119 -0
  344. data/docs/Tasker/Railtie.html +124 -0
  345. data/docs/Tasker/Registry/BaseRegistry.html +1690 -0
  346. data/docs/Tasker/Registry/EventPublisher.html +667 -0
  347. data/docs/Tasker/Registry/InterfaceValidator.html +569 -0
  348. data/docs/Tasker/Registry/RegistrationError.html +132 -0
  349. data/docs/Tasker/Registry/RegistryError.html +139 -0
  350. data/docs/Tasker/Registry/StatisticsCollector.html +841 -0
  351. data/docs/Tasker/Registry/SubscriberRegistry.html +1504 -0
  352. data/docs/Tasker/Registry/ValidationError.html +132 -0
  353. data/docs/Tasker/Registry.html +119 -0
  354. data/docs/Tasker/RetryableError.html +515 -0
  355. data/docs/Tasker/StateMachine/Compatibility.html +282 -0
  356. data/docs/Tasker/StateMachine/InvalidStateTransition.html +135 -0
  357. data/docs/Tasker/StateMachine/StepStateMachine/StandardizedPayloadBuilder.html +260 -0
  358. data/docs/Tasker/StateMachine/StepStateMachine.html +2215 -0
  359. data/docs/Tasker/StateMachine/TaskStateMachine.html +734 -0
  360. data/docs/Tasker/StateMachine.html +602 -0
  361. data/docs/Tasker/StepDagRelationship.html +657 -0
  362. data/docs/Tasker/StepHandler/Api/Config.html +1091 -0
  363. data/docs/Tasker/StepHandler/Api.html +884 -0
  364. data/docs/Tasker/StepHandler/AutomaticEventPublishing.html +321 -0
  365. data/docs/Tasker/StepHandler/Base.html +970 -0
  366. data/docs/Tasker/StepHandler.html +119 -0
  367. data/docs/Tasker/StepReadinessStatus.html +836 -0
  368. data/docs/Tasker/Task.html +2575 -0
  369. data/docs/Tasker/TaskAnnotation.html +137 -0
  370. data/docs/Tasker/TaskAnnotationSerializer.html +124 -0
  371. data/docs/Tasker/TaskBuilder/StepNameValidator.html +264 -0
  372. data/docs/Tasker/TaskBuilder/StepTemplateDefiner.html +264 -0
  373. data/docs/Tasker/TaskBuilder.html +764 -0
  374. data/docs/Tasker/TaskDiagram/StepToStepEdgeBuilder.html +260 -0
  375. data/docs/Tasker/TaskDiagram/TaskToRootStepEdgeBuilder.html +290 -0
  376. data/docs/Tasker/TaskDiagram.html +548 -0
  377. data/docs/Tasker/TaskDiagramsController.html +240 -0
  378. data/docs/Tasker/TaskExecutionContext.html +469 -0
  379. data/docs/Tasker/TaskHandler/ClassMethods/StepTemplateDefiner/ClassBasedEventRegistrar.html +238 -0
  380. data/docs/Tasker/TaskHandler/ClassMethods/StepTemplateDefiner/YamlEventRegistrar.html +254 -0
  381. data/docs/Tasker/TaskHandler/ClassMethods/StepTemplateDefiner.html +988 -0
  382. data/docs/Tasker/TaskHandler/ClassMethods.html +357 -0
  383. data/docs/Tasker/TaskHandler/InstanceMethods.html +1396 -0
  384. data/docs/Tasker/TaskHandler/StepGroup.html +1748 -0
  385. data/docs/Tasker/TaskHandler.html +271 -0
  386. data/docs/Tasker/TaskNamespace.html +312 -0
  387. data/docs/Tasker/TaskRunnerJob.html +406 -0
  388. data/docs/Tasker/TaskSerializer.html +474 -0
  389. data/docs/Tasker/TaskTransition.html +1517 -0
  390. data/docs/Tasker/TaskWorkflowSummary.html +988 -0
  391. data/docs/Tasker/TaskerRailsSchema/InvalidObjectTypeError.html +132 -0
  392. data/docs/Tasker/TaskerRailsSchema/TypeResolutionError.html +139 -0
  393. data/docs/Tasker/TaskerRailsSchema/UnknownInterfaceError.html +132 -0
  394. data/docs/Tasker/TaskerRailsSchema.html +384 -0
  395. data/docs/Tasker/TasksController.html +595 -0
  396. data/docs/Tasker/Telemetry/EventMapping.html +1307 -0
  397. data/docs/Tasker/Telemetry/EventRouter.html +2178 -0
  398. data/docs/Tasker/Telemetry/Events/ExportEvents.html +246 -0
  399. data/docs/Tasker/Telemetry/Events.html +115 -0
  400. data/docs/Tasker/Telemetry/ExportCoordinator/DistributedLockTimeoutError.html +135 -0
  401. data/docs/Tasker/Telemetry/ExportCoordinator.html +2137 -0
  402. data/docs/Tasker/Telemetry/IntelligentCacheManager.html +1083 -0
  403. data/docs/Tasker/Telemetry/LogBackend.html +1088 -0
  404. data/docs/Tasker/Telemetry/MetricTypes/Counter.html +1054 -0
  405. data/docs/Tasker/Telemetry/MetricTypes/Gauge.html +1270 -0
  406. data/docs/Tasker/Telemetry/MetricTypes/Histogram.html +1492 -0
  407. data/docs/Tasker/Telemetry/MetricTypes.html +153 -0
  408. data/docs/Tasker/Telemetry/MetricsBackend.html +2510 -0
  409. data/docs/Tasker/Telemetry/MetricsExportService.html +578 -0
  410. data/docs/Tasker/Telemetry/PluginRegistry.html +1774 -0
  411. data/docs/Tasker/Telemetry/Plugins/BaseExporter.html +1835 -0
  412. data/docs/Tasker/Telemetry/Plugins/CsvExporter.html +768 -0
  413. data/docs/Tasker/Telemetry/Plugins/JsonExporter.html +747 -0
  414. data/docs/Tasker/Telemetry/Plugins.html +117 -0
  415. data/docs/Tasker/Telemetry/PrometheusExporter.html +481 -0
  416. data/docs/Tasker/Telemetry/TraceBackend.html +891 -0
  417. data/docs/Tasker/Telemetry.html +130 -0
  418. data/docs/Tasker/Types/AuthConfig.html +886 -0
  419. data/docs/Tasker/Types/BackoffConfig.html +1063 -0
  420. data/docs/Tasker/Types/BaseConfig.html +227 -0
  421. data/docs/Tasker/Types/CacheConfig.html +1731 -0
  422. data/docs/Tasker/Types/DatabaseConfig.html +388 -0
  423. data/docs/Tasker/Types/DependencyGraph.html +526 -0
  424. data/docs/Tasker/Types/DependencyGraphConfig.html +753 -0
  425. data/docs/Tasker/Types/EngineConfig.html +1181 -0
  426. data/docs/Tasker/Types/ExecutionConfig.html +1963 -0
  427. data/docs/Tasker/Types/GraphEdge.html +517 -0
  428. data/docs/Tasker/Types/GraphMetadata.html +781 -0
  429. data/docs/Tasker/Types/GraphNode.html +694 -0
  430. data/docs/Tasker/Types/HealthConfig.html +784 -0
  431. data/docs/Tasker/Types/StepSequence.html +353 -0
  432. data/docs/Tasker/Types/StepTemplate.html +1193 -0
  433. data/docs/Tasker/Types/TaskRequest.html +1179 -0
  434. data/docs/Tasker/Types/TelemetryConfig.html +2746 -0
  435. data/docs/Tasker/Types.html +154 -0
  436. data/docs/Tasker/WorkflowStep/StepFinder.html +282 -0
  437. data/docs/Tasker/WorkflowStep.html +2724 -0
  438. data/docs/Tasker/WorkflowStepEdge.html +304 -0
  439. data/docs/Tasker/WorkflowStepSerializer.html +305 -0
  440. data/docs/Tasker/WorkflowStepTransition/TransitionDescriptionFormatter.html +282 -0
  441. data/docs/Tasker/WorkflowStepTransition.html +2201 -0
  442. data/docs/Tasker/WorkflowStepsController.html +462 -0
  443. data/docs/Tasker.html +452 -0
  444. data/docs/VISION.md +584 -0
  445. data/docs/WHY.md +21 -0
  446. data/docs/_index.html +2375 -0
  447. data/docs/class_list.html +54 -0
  448. data/docs/css/common.css +1 -0
  449. data/docs/css/full_list.css +58 -0
  450. data/docs/css/style.css +503 -0
  451. data/docs/events/migration_plan_outcomes.md +80 -0
  452. data/docs/file.README.html +541 -0
  453. data/docs/file_list.html +59 -0
  454. data/docs/frames.html +22 -0
  455. data/docs/index.html +541 -0
  456. data/docs/js/app.js +344 -0
  457. data/docs/js/full_list.js +242 -0
  458. data/docs/js/jquery.js +4 -0
  459. data/docs/method_list.html +9182 -0
  460. data/docs/top-level-namespace.html +110 -0
  461. data/lib/generators/tasker/authenticator_generator.rb +301 -0
  462. data/lib/generators/tasker/authorization_coordinator_generator.rb +139 -0
  463. data/lib/generators/tasker/events_generator.rb +91 -0
  464. data/lib/generators/tasker/subscriber_generator.rb +107 -0
  465. data/lib/generators/tasker/task_handler_generator.rb +138 -0
  466. data/lib/generators/tasker/templates/api_token_authenticator.rb.erb +113 -0
  467. data/lib/generators/tasker/templates/api_token_authenticator_spec.rb.erb +144 -0
  468. data/lib/generators/tasker/templates/authorization_coordinator.rb.erb +95 -0
  469. data/lib/generators/tasker/templates/authorization_coordinator_spec.rb.erb +142 -0
  470. data/lib/generators/tasker/templates/custom_authenticator.rb.erb +108 -0
  471. data/lib/generators/tasker/templates/custom_authenticator_spec.rb.erb +162 -0
  472. data/lib/generators/tasker/templates/custom_events.yml.erb +62 -0
  473. data/lib/generators/tasker/templates/custom_subscriber.rb.erb +72 -0
  474. data/lib/generators/tasker/templates/devise_authenticator.rb.erb +101 -0
  475. data/lib/generators/tasker/templates/devise_authenticator_spec.rb.erb +126 -0
  476. data/lib/generators/tasker/templates/initialize.rb.erb +202 -0
  477. data/lib/generators/tasker/templates/jwt_authenticator.rb.erb +144 -0
  478. data/lib/generators/tasker/templates/jwt_authenticator_spec.rb.erb +298 -0
  479. data/lib/generators/tasker/templates/metrics_subscriber.rb.erb +258 -0
  480. data/lib/generators/tasker/templates/metrics_subscriber_spec.rb.erb +308 -0
  481. data/lib/generators/tasker/templates/omniauth_authenticator.rb.erb +135 -0
  482. data/lib/generators/tasker/templates/omniauth_authenticator_spec.rb.erb +196 -0
  483. data/lib/generators/tasker/templates/opentelemetry_initializer.rb +52 -0
  484. data/lib/generators/tasker/templates/subscriber.rb.erb +64 -0
  485. data/lib/generators/tasker/templates/subscriber_spec.rb.erb +80 -0
  486. data/lib/generators/tasker/templates/task_config.yaml.erb +117 -0
  487. data/lib/generators/tasker/templates/task_handler.rb.erb +59 -0
  488. data/lib/generators/tasker/templates/task_handler_spec.rb.erb +159 -0
  489. data/lib/tasker/analysis/runtime_graph_analyzer.rb +1168 -0
  490. data/lib/tasker/analysis/template_graph_analyzer.rb +328 -0
  491. data/lib/tasker/authentication/coordinator.rb +78 -0
  492. data/lib/tasker/authentication/errors.rb +9 -0
  493. data/lib/tasker/authentication/interface.rb +36 -0
  494. data/lib/tasker/authentication/none_authenticator.rb +26 -0
  495. data/lib/tasker/authorization/base_coordinator.rb +112 -0
  496. data/lib/tasker/authorization/errors.rb +26 -0
  497. data/lib/tasker/authorization/resource_constants.rb +74 -0
  498. data/lib/tasker/authorization/resource_registry.rb +143 -0
  499. data/lib/tasker/authorization.rb +75 -0
  500. data/lib/tasker/cache_capabilities.rb +131 -0
  501. data/lib/tasker/cache_strategy.rb +469 -0
  502. data/lib/tasker/concerns/authenticatable.rb +41 -0
  503. data/lib/tasker/concerns/authorizable.rb +204 -0
  504. data/lib/tasker/concerns/controller_authorizable.rb +124 -0
  505. data/lib/tasker/concerns/event_publisher.rb +716 -0
  506. data/lib/tasker/concerns/idempotent_state_transitions.rb +128 -0
  507. data/lib/tasker/concerns/state_machine_base.rb +218 -0
  508. data/lib/tasker/concerns/structured_logging.rb +387 -0
  509. data/lib/tasker/configuration.rb +325 -0
  510. data/lib/tasker/constants/event_definitions.rb +147 -0
  511. data/lib/tasker/constants/registry_events.rb +54 -0
  512. data/lib/tasker/constants.rb +417 -0
  513. data/lib/tasker/engine.rb +90 -0
  514. data/lib/tasker/errors.rb +90 -0
  515. data/lib/tasker/events/catalog.rb +432 -0
  516. data/lib/tasker/events/custom_registry.rb +175 -0
  517. data/lib/tasker/events/definition_loader.rb +199 -0
  518. data/lib/tasker/events/event_payload_builder.rb +461 -0
  519. data/lib/tasker/events/publisher.rb +149 -0
  520. data/lib/tasker/events/subscribers/base_subscriber.rb +601 -0
  521. data/lib/tasker/events/subscribers/metrics_subscriber.rb +120 -0
  522. data/lib/tasker/events/subscribers/telemetry_subscriber.rb +462 -0
  523. data/lib/tasker/events/subscription_loader.rb +161 -0
  524. data/lib/tasker/events.rb +37 -0
  525. data/lib/tasker/functions/function_based_analytics_metrics.rb +103 -0
  526. data/lib/tasker/functions/function_based_dependency_levels.rb +54 -0
  527. data/lib/tasker/functions/function_based_slowest_steps.rb +84 -0
  528. data/lib/tasker/functions/function_based_slowest_tasks.rb +84 -0
  529. data/lib/tasker/functions/function_based_step_readiness_status.rb +183 -0
  530. data/lib/tasker/functions/function_based_system_health_counts.rb +94 -0
  531. data/lib/tasker/functions/function_based_task_execution_context.rb +148 -0
  532. data/lib/tasker/functions/function_wrapper.rb +42 -0
  533. data/lib/tasker/functions.rb +12 -0
  534. data/lib/tasker/handler_factory.rb +322 -0
  535. data/lib/tasker/health/readiness_checker.rb +186 -0
  536. data/lib/tasker/health/status_checker.rb +203 -0
  537. data/lib/tasker/identity_strategy.rb +38 -0
  538. data/lib/tasker/logging/correlation_id_generator.rb +120 -0
  539. data/lib/tasker/orchestration/backoff_calculator.rb +184 -0
  540. data/lib/tasker/orchestration/connection_builder.rb +122 -0
  541. data/lib/tasker/orchestration/connection_pool_intelligence.rb +177 -0
  542. data/lib/tasker/orchestration/coordinator.rb +119 -0
  543. data/lib/tasker/orchestration/future_state_analyzer.rb +137 -0
  544. data/lib/tasker/orchestration/plugin_integration.rb +124 -0
  545. data/lib/tasker/orchestration/response_processor.rb +168 -0
  546. data/lib/tasker/orchestration/retry_header_parser.rb +78 -0
  547. data/lib/tasker/orchestration/step_executor.rb +941 -0
  548. data/lib/tasker/orchestration/step_sequence_factory.rb +67 -0
  549. data/lib/tasker/orchestration/task_finalizer.rb +564 -0
  550. data/lib/tasker/orchestration/task_initializer.rb +140 -0
  551. data/lib/tasker/orchestration/task_reenqueuer.rb +71 -0
  552. data/lib/tasker/orchestration/viable_step_discovery.rb +65 -0
  553. data/lib/tasker/orchestration/workflow_coordinator.rb +294 -0
  554. data/lib/tasker/orchestration.rb +45 -0
  555. data/lib/tasker/railtie.rb +9 -0
  556. data/lib/tasker/registry/base_registry.rb +177 -0
  557. data/lib/tasker/registry/event_publisher.rb +91 -0
  558. data/lib/tasker/registry/interface_validator.rb +140 -0
  559. data/lib/tasker/registry/statistics_collector.rb +381 -0
  560. data/lib/tasker/registry/subscriber_registry.rb +285 -0
  561. data/lib/tasker/registry.rb +22 -0
  562. data/lib/tasker/state_machine/step_state_machine.rb +508 -0
  563. data/lib/tasker/state_machine/task_state_machine.rb +192 -0
  564. data/lib/tasker/state_machine.rb +83 -0
  565. data/lib/tasker/step_handler/api.rb +410 -0
  566. data/lib/tasker/step_handler/base.rb +206 -0
  567. data/lib/tasker/task_builder.rb +432 -0
  568. data/lib/tasker/task_handler/class_methods.rb +324 -0
  569. data/lib/tasker/task_handler/instance_methods.rb +293 -0
  570. data/lib/tasker/task_handler/step_group.rb +182 -0
  571. data/lib/tasker/task_handler.rb +43 -0
  572. data/lib/tasker/telemetry/event_mapping.rb +126 -0
  573. data/lib/tasker/telemetry/event_router.rb +318 -0
  574. data/lib/tasker/telemetry/events/export_events.rb +38 -0
  575. data/lib/tasker/telemetry/export_coordinator.rb +497 -0
  576. data/lib/tasker/telemetry/intelligent_cache_manager.rb +508 -0
  577. data/lib/tasker/telemetry/log_backend.rb +224 -0
  578. data/lib/tasker/telemetry/metric_types.rb +368 -0
  579. data/lib/tasker/telemetry/metrics_backend.rb +1227 -0
  580. data/lib/tasker/telemetry/metrics_export_service.rb +392 -0
  581. data/lib/tasker/telemetry/plugin_registry.rb +333 -0
  582. data/lib/tasker/telemetry/plugins/base_exporter.rb +246 -0
  583. data/lib/tasker/telemetry/plugins/csv_exporter.rb +198 -0
  584. data/lib/tasker/telemetry/plugins/json_exporter.rb +141 -0
  585. data/lib/tasker/telemetry/prometheus_exporter.rb +249 -0
  586. data/lib/tasker/telemetry/trace_backend.rb +186 -0
  587. data/lib/tasker/telemetry.rb +59 -0
  588. data/lib/tasker/types/auth_config.rb +81 -0
  589. data/lib/tasker/types/backoff_config.rb +142 -0
  590. data/lib/tasker/types/cache_config.rb +257 -0
  591. data/lib/tasker/types/database_config.rb +39 -0
  592. data/lib/tasker/types/dependency_graph.rb +225 -0
  593. data/lib/tasker/types/dependency_graph_config.rb +149 -0
  594. data/lib/tasker/types/engine_config.rb +131 -0
  595. data/lib/tasker/types/execution_config.rb +289 -0
  596. data/lib/tasker/types/health_config.rb +84 -0
  597. data/lib/tasker/types/step_sequence.rb +24 -0
  598. data/lib/tasker/types/step_template.rb +63 -0
  599. data/lib/tasker/types/task_request.rb +60 -0
  600. data/lib/tasker/types/telemetry_config.rb +273 -0
  601. data/lib/tasker/types.rb +64 -0
  602. data/lib/tasker/version.rb +7 -0
  603. data/lib/tasker.rb +82 -0
  604. data/lib/tasks/tasker_tasks.rake +302 -0
  605. metadata +958 -0
@@ -0,0 +1,1396 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>
7
+ Module: Tasker::TaskHandler::InstanceMethods
8
+
9
+ &mdash; Documentation by YARD 0.9.37
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="../../css/style.css" type="text/css" />
14
+
15
+ <link rel="stylesheet" href="../../css/common.css" type="text/css" />
16
+
17
+ <script type="text/javascript">
18
+ pathId = "Tasker::TaskHandler::InstanceMethods";
19
+ relpath = '../../';
20
+ </script>
21
+
22
+
23
+ <script type="text/javascript" charset="utf-8" src="../../js/jquery.js"></script>
24
+
25
+ <script type="text/javascript" charset="utf-8" src="../../js/app.js"></script>
26
+
27
+
28
+ </head>
29
+ <body>
30
+ <div class="nav_wrap">
31
+ <iframe id="nav" src="../../class_list.html?1"></iframe>
32
+ <div id="resizer"></div>
33
+ </div>
34
+
35
+ <div id="main" tabindex="-1">
36
+ <div id="header">
37
+ <div id="menu">
38
+
39
+ <a href="../../_index.html">Index (I)</a> &raquo;
40
+ <span class='title'><span class='object_link'><a href="../../Tasker.html" title="Tasker (module)">Tasker</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../TaskHandler.html" title="Tasker::TaskHandler (module)">TaskHandler</a></span></span>
41
+ &raquo;
42
+ <span class="title">InstanceMethods</span>
43
+
44
+ </div>
45
+
46
+ <div id="search">
47
+
48
+ <a class="full_list_link" id="class_list_link"
49
+ href="../../class_list.html">
50
+
51
+ <svg width="24" height="24">
52
+ <rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
53
+ <rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
54
+ <rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
55
+ </svg>
56
+ </a>
57
+
58
+ </div>
59
+ <div class="clear"></div>
60
+ </div>
61
+
62
+ <div id="content"><h1>Module: Tasker::TaskHandler::InstanceMethods
63
+
64
+
65
+
66
+ </h1>
67
+ <div class="box_info">
68
+
69
+
70
+
71
+
72
+
73
+
74
+ <dl>
75
+ <dt>Includes:</dt>
76
+ <dd><span class='object_link'><a href="../Concerns/EventPublisher.html" title="Tasker::Concerns::EventPublisher (module)">Concerns::EventPublisher</a></span></dd>
77
+ </dl>
78
+
79
+
80
+
81
+
82
+
83
+
84
+ <dl>
85
+ <dt>Defined in:</dt>
86
+ <dd>lib/tasker/task_handler/instance_methods.rb</dd>
87
+ </dl>
88
+
89
+ </div>
90
+
91
+ <h2>Overview</h2><div class="docstring">
92
+ <div class="discussion">
93
+
94
+ <p>Instance methods for task handlers</p>
95
+
96
+ <p>Provides the core task processing logic including the main execution loop, step handling, and finalization. Delegates to orchestration components for implementation details while maintaining proven loop-based approach.</p>
97
+
98
+
99
+ </div>
100
+ </div>
101
+ <div class="tags">
102
+
103
+ <p class="tag_title">Author:</p>
104
+ <ul class="author">
105
+
106
+ <li>
107
+
108
+
109
+
110
+
111
+
112
+ <div class='inline'>
113
+ <p>TaskHandler Authors</p>
114
+ </div>
115
+
116
+ </li>
117
+
118
+ </ul>
119
+
120
+ </div>
121
+
122
+ <h2>
123
+ Constant Summary
124
+ <small><a href="#" class="constants_summary_toggle">collapse</a></small>
125
+ </h2>
126
+
127
+ <dl class="constants">
128
+
129
+ <dt id="TASK_REQUEST_ATTRIBUTES-constant" class="">TASK_REQUEST_ATTRIBUTES =
130
+ <div class="docstring">
131
+ <div class="discussion">
132
+
133
+ <p>List of attributes to pass from the task request to the task</p>
134
+
135
+ <p>These are the attributes that will be copied from the task request to the task when initializing a new task.</p>
136
+
137
+
138
+ </div>
139
+ </div>
140
+ <div class="tags">
141
+
142
+ <p class="tag_title">Returns:</p>
143
+ <ul class="return">
144
+
145
+ <li>
146
+
147
+
148
+ <span class='type'>(<tt>Array&lt;Symbol&gt;</tt>)</span>
149
+
150
+
151
+
152
+ &mdash;
153
+ <div class='inline'>
154
+ <p>List of attribute names</p>
155
+ </div>
156
+
157
+ </li>
158
+
159
+ </ul>
160
+
161
+ </div>
162
+ </dt>
163
+ <dd><pre class="code"><span class='qsymbols_beg'>%i[</span><span class='tstring_content'>name</span><span class='words_sep'> </span><span class='tstring_content'>context</span><span class='words_sep'> </span><span class='tstring_content'>initiator</span><span class='words_sep'> </span><span class='tstring_content'>reason</span><span class='words_sep'> </span><span class='tstring_content'>source_system</span><span class='tstring_end'>]</span></span><span class='period'>.</span><span class='id identifier rubyid_freeze'>freeze</span></pre></dd>
164
+
165
+ </dl>
166
+
167
+
168
+
169
+
170
+
171
+
172
+
173
+
174
+
175
+ <h2>
176
+ Instance Method Summary
177
+ <small><a href="#" class="summary_toggle">collapse</a></small>
178
+ </h2>
179
+
180
+ <ul class="summary">
181
+
182
+ <li class="public ">
183
+ <span class="summary_signature">
184
+
185
+ <a href="#dependency_graph-instance_method" title="#dependency_graph (instance method)">#<strong>dependency_graph</strong> &#x21d2; Hash </a>
186
+
187
+
188
+
189
+ </span>
190
+
191
+
192
+
193
+
194
+
195
+
196
+
197
+
198
+
199
+ <span class="summary_desc"><div class='inline'>
200
+ <p>Get dependency graph analysis for this task handler’s step templates.</p>
201
+ </div></span>
202
+
203
+ </li>
204
+
205
+
206
+ <li class="public ">
207
+ <span class="summary_signature">
208
+
209
+ <a href="#establish_step_dependencies_and_defaults-instance_method" title="#establish_step_dependencies_and_defaults (instance method)">#<strong>establish_step_dependencies_and_defaults</strong>(task, steps) &#x21d2; void </a>
210
+
211
+
212
+
213
+ </span>
214
+
215
+
216
+
217
+
218
+
219
+
220
+
221
+
222
+
223
+ <span class="summary_desc"><div class='inline'>
224
+ <p>Establish step dependencies and defaults.</p>
225
+ </div></span>
226
+
227
+ </li>
228
+
229
+
230
+ <li class="public ">
231
+ <span class="summary_signature">
232
+
233
+ <a href="#get_sequence-instance_method" title="#get_sequence (instance method)">#<strong>get_sequence</strong>(task) &#x21d2; Tasker::Types::StepSequence </a>
234
+
235
+
236
+
237
+ </span>
238
+
239
+
240
+
241
+
242
+
243
+
244
+
245
+
246
+
247
+ <span class="summary_desc"><div class='inline'>
248
+ <p>Get the step sequence for a task.</p>
249
+ </div></span>
250
+
251
+ </li>
252
+
253
+
254
+ <li class="public ">
255
+ <span class="summary_signature">
256
+
257
+ <a href="#get_step_handler-instance_method" title="#get_step_handler (instance method)">#<strong>get_step_handler</strong>(step) &#x21d2; Object </a>
258
+
259
+
260
+
261
+ </span>
262
+
263
+
264
+
265
+
266
+
267
+
268
+
269
+
270
+
271
+ <span class="summary_desc"><div class='inline'>
272
+ <p>Get a step handler for a specific step.</p>
273
+ </div></span>
274
+
275
+ </li>
276
+
277
+
278
+ <li class="public ">
279
+ <span class="summary_signature">
280
+
281
+ <a href="#handle-instance_method" title="#handle (instance method)">#<strong>handle</strong>(task) &#x21d2; void </a>
282
+
283
+
284
+
285
+ </span>
286
+
287
+
288
+
289
+
290
+
291
+
292
+
293
+
294
+
295
+ <span class="summary_desc"><div class='inline'>
296
+ <p>Handle a task’s execution.</p>
297
+ </div></span>
298
+
299
+ </li>
300
+
301
+
302
+ <li class="public ">
303
+ <span class="summary_signature">
304
+
305
+ <a href="#handle_one_step-instance_method" title="#handle_one_step (instance method)">#<strong>handle_one_step</strong>(task, sequence, step) &#x21d2; Tasker::WorkflowStep </a>
306
+
307
+
308
+
309
+ </span>
310
+
311
+
312
+
313
+
314
+
315
+
316
+
317
+
318
+
319
+ <span class="summary_desc"><div class='inline'>
320
+ <p>Handle execution of a single step.</p>
321
+ </div></span>
322
+
323
+ </li>
324
+
325
+
326
+ <li class="public ">
327
+ <span class="summary_signature">
328
+
329
+ <a href="#initialize_task!-instance_method" title="#initialize_task! (instance method)">#<strong>initialize_task!</strong>(task_request) &#x21d2; Tasker::Task </a>
330
+
331
+
332
+
333
+ </span>
334
+
335
+
336
+
337
+
338
+
339
+
340
+
341
+
342
+
343
+ <span class="summary_desc"><div class='inline'>
344
+ <p>Initialize a task.</p>
345
+ </div></span>
346
+
347
+ </li>
348
+
349
+
350
+ <li class="public ">
351
+ <span class="summary_signature">
352
+
353
+ <a href="#reenqueuer_strategy=-instance_method" title="#reenqueuer_strategy= (instance method)">#<strong>reenqueuer_strategy=</strong>(strategy) &#x21d2; Object </a>
354
+
355
+
356
+
357
+ </span>
358
+
359
+
360
+
361
+
362
+
363
+
364
+
365
+
366
+
367
+ <span class="summary_desc"><div class='inline'>
368
+ <p>Set the reenqueuer strategy (for testing).</p>
369
+ </div></span>
370
+
371
+ </li>
372
+
373
+
374
+ <li class="public ">
375
+ <span class="summary_signature">
376
+
377
+ <a href="#start_task-instance_method" title="#start_task (instance method)">#<strong>start_task</strong>(task) &#x21d2; Boolean </a>
378
+
379
+
380
+
381
+ </span>
382
+
383
+
384
+
385
+
386
+
387
+
388
+
389
+
390
+
391
+ <span class="summary_desc"><div class='inline'>
392
+ <p>Start a task’s execution.</p>
393
+ </div></span>
394
+
395
+ </li>
396
+
397
+
398
+ <li class="public ">
399
+ <span class="summary_signature">
400
+
401
+ <a href="#update_annotations-instance_method" title="#update_annotations (instance method)">#<strong>update_annotations</strong>(task, sequence, steps) &#x21d2; void </a>
402
+
403
+
404
+
405
+ </span>
406
+
407
+
408
+
409
+
410
+
411
+
412
+
413
+
414
+
415
+ <span class="summary_desc"><div class='inline'>
416
+ <p>Update annotations based on processed steps.</p>
417
+ </div></span>
418
+
419
+ </li>
420
+
421
+
422
+ <li class="public ">
423
+ <span class="summary_signature">
424
+
425
+ <a href="#workflow_coordinator_strategy=-instance_method" title="#workflow_coordinator_strategy= (instance method)">#<strong>workflow_coordinator_strategy=</strong>(strategy) &#x21d2; Object </a>
426
+
427
+
428
+
429
+ </span>
430
+
431
+
432
+
433
+
434
+
435
+
436
+
437
+
438
+
439
+ <span class="summary_desc"><div class='inline'>
440
+ <p>Set the workflow coordinator strategy (for testing).</p>
441
+ </div></span>
442
+
443
+ </li>
444
+
445
+
446
+ </ul>
447
+
448
+
449
+
450
+
451
+
452
+
453
+
454
+
455
+
456
+
457
+
458
+ <h3 class="inherited">Methods included from <span class='object_link'><a href="../Concerns/EventPublisher.html" title="Tasker::Concerns::EventPublisher (module)">Concerns::EventPublisher</a></span></h3>
459
+ <p class="inherited"><span class='object_link'><a href="../Concerns/EventPublisher.html#infer_step_event_type_from_state-instance_method" title="Tasker::Concerns::EventPublisher#infer_step_event_type_from_state (method)">#infer_step_event_type_from_state</a></span>, <span class='object_link'><a href="../Concerns/EventPublisher.html#publish_custom_event-instance_method" title="Tasker::Concerns::EventPublisher#publish_custom_event (method)">#publish_custom_event</a></span>, <span class='object_link'><a href="../Concerns/EventPublisher.html#publish_no_viable_steps-instance_method" title="Tasker::Concerns::EventPublisher#publish_no_viable_steps (method)">#publish_no_viable_steps</a></span>, <span class='object_link'><a href="../Concerns/EventPublisher.html#publish_step_backoff-instance_method" title="Tasker::Concerns::EventPublisher#publish_step_backoff (method)">#publish_step_backoff</a></span>, <span class='object_link'><a href="../Concerns/EventPublisher.html#publish_step_before_handle-instance_method" title="Tasker::Concerns::EventPublisher#publish_step_before_handle (method)">#publish_step_before_handle</a></span>, <span class='object_link'><a href="../Concerns/EventPublisher.html#publish_step_cancelled-instance_method" title="Tasker::Concerns::EventPublisher#publish_step_cancelled (method)">#publish_step_cancelled</a></span>, <span class='object_link'><a href="../Concerns/EventPublisher.html#publish_step_completed-instance_method" title="Tasker::Concerns::EventPublisher#publish_step_completed (method)">#publish_step_completed</a></span>, <span class='object_link'><a href="../Concerns/EventPublisher.html#publish_step_event_for_context-instance_method" title="Tasker::Concerns::EventPublisher#publish_step_event_for_context (method)">#publish_step_event_for_context</a></span>, <span class='object_link'><a href="../Concerns/EventPublisher.html#publish_step_failed-instance_method" title="Tasker::Concerns::EventPublisher#publish_step_failed (method)">#publish_step_failed</a></span>, <span class='object_link'><a href="../Concerns/EventPublisher.html#publish_step_retry_requested-instance_method" title="Tasker::Concerns::EventPublisher#publish_step_retry_requested (method)">#publish_step_retry_requested</a></span>, <span class='object_link'><a href="../Concerns/EventPublisher.html#publish_step_started-instance_method" title="Tasker::Concerns::EventPublisher#publish_step_started (method)">#publish_step_started</a></span>, <span class='object_link'><a href="../Concerns/EventPublisher.html#publish_steps_execution_completed-instance_method" title="Tasker::Concerns::EventPublisher#publish_steps_execution_completed (method)">#publish_steps_execution_completed</a></span>, <span class='object_link'><a href="../Concerns/EventPublisher.html#publish_steps_execution_started-instance_method" title="Tasker::Concerns::EventPublisher#publish_steps_execution_started (method)">#publish_steps_execution_started</a></span>, <span class='object_link'><a href="../Concerns/EventPublisher.html#publish_task_completed-instance_method" title="Tasker::Concerns::EventPublisher#publish_task_completed (method)">#publish_task_completed</a></span>, <span class='object_link'><a href="../Concerns/EventPublisher.html#publish_task_enqueue-instance_method" title="Tasker::Concerns::EventPublisher#publish_task_enqueue (method)">#publish_task_enqueue</a></span>, <span class='object_link'><a href="../Concerns/EventPublisher.html#publish_task_failed-instance_method" title="Tasker::Concerns::EventPublisher#publish_task_failed (method)">#publish_task_failed</a></span>, <span class='object_link'><a href="../Concerns/EventPublisher.html#publish_task_finalization_completed-instance_method" title="Tasker::Concerns::EventPublisher#publish_task_finalization_completed (method)">#publish_task_finalization_completed</a></span>, <span class='object_link'><a href="../Concerns/EventPublisher.html#publish_task_finalization_started-instance_method" title="Tasker::Concerns::EventPublisher#publish_task_finalization_started (method)">#publish_task_finalization_started</a></span>, <span class='object_link'><a href="../Concerns/EventPublisher.html#publish_task_pending_transition-instance_method" title="Tasker::Concerns::EventPublisher#publish_task_pending_transition (method)">#publish_task_pending_transition</a></span>, <span class='object_link'><a href="../Concerns/EventPublisher.html#publish_task_reenqueue_delayed-instance_method" title="Tasker::Concerns::EventPublisher#publish_task_reenqueue_delayed (method)">#publish_task_reenqueue_delayed</a></span>, <span class='object_link'><a href="../Concerns/EventPublisher.html#publish_task_reenqueue_failed-instance_method" title="Tasker::Concerns::EventPublisher#publish_task_reenqueue_failed (method)">#publish_task_reenqueue_failed</a></span>, <span class='object_link'><a href="../Concerns/EventPublisher.html#publish_task_reenqueue_requested-instance_method" title="Tasker::Concerns::EventPublisher#publish_task_reenqueue_requested (method)">#publish_task_reenqueue_requested</a></span>, <span class='object_link'><a href="../Concerns/EventPublisher.html#publish_task_reenqueue_started-instance_method" title="Tasker::Concerns::EventPublisher#publish_task_reenqueue_started (method)">#publish_task_reenqueue_started</a></span>, <span class='object_link'><a href="../Concerns/EventPublisher.html#publish_task_retry_requested-instance_method" title="Tasker::Concerns::EventPublisher#publish_task_retry_requested (method)">#publish_task_retry_requested</a></span>, <span class='object_link'><a href="../Concerns/EventPublisher.html#publish_task_started-instance_method" title="Tasker::Concerns::EventPublisher#publish_task_started (method)">#publish_task_started</a></span>, <span class='object_link'><a href="../Concerns/EventPublisher.html#publish_viable_steps_discovered-instance_method" title="Tasker::Concerns::EventPublisher#publish_viable_steps_discovered (method)">#publish_viable_steps_discovered</a></span>, <span class='object_link'><a href="../Concerns/EventPublisher.html#publish_workflow_state_unclear-instance_method" title="Tasker::Concerns::EventPublisher#publish_workflow_state_unclear (method)">#publish_workflow_state_unclear</a></span>, <span class='object_link'><a href="../Concerns/EventPublisher.html#publish_workflow_step_completed-instance_method" title="Tasker::Concerns::EventPublisher#publish_workflow_step_completed (method)">#publish_workflow_step_completed</a></span>, <span class='object_link'><a href="../Concerns/EventPublisher.html#publish_workflow_task_started-instance_method" title="Tasker::Concerns::EventPublisher#publish_workflow_task_started (method)">#publish_workflow_task_started</a></span></p>
460
+
461
+
462
+
463
+ <div id="instance_method_details" class="method_details_list">
464
+ <h2>Instance Method Details</h2>
465
+
466
+
467
+ <div class="method_details first">
468
+ <h3 class="signature first" id="dependency_graph-instance_method">
469
+
470
+ #<strong>dependency_graph</strong> &#x21d2; <tt>Hash</tt>
471
+
472
+
473
+
474
+
475
+
476
+ </h3><div class="docstring">
477
+ <div class="discussion">
478
+
479
+ <p>Get dependency graph analysis for this task handler’s step templates</p>
480
+
481
+ <p>Provides comprehensive analysis of step dependencies, including cycle detection, topological ordering, and dependency visualization. Useful for troubleshooting and understanding workflow structure.</p>
482
+
483
+
484
+ </div>
485
+ </div>
486
+ <div class="tags">
487
+
488
+ <p class="tag_title">Returns:</p>
489
+ <ul class="return">
490
+
491
+ <li>
492
+
493
+
494
+ <span class='type'>(<tt>Hash</tt>)</span>
495
+
496
+
497
+
498
+ &mdash;
499
+ <div class='inline'>
500
+ <p>Comprehensive dependency analysis containing: - :nodes - Array of step information with dependencies - :edges - Array of dependency relationships - :topology - Topologically sorted step names - :cycles - Array of detected circular dependencies - :levels - Hash mapping steps to their dependency depth levels - :roots - Array of steps with no dependencies - :leaves - Array of steps with no dependents</p>
501
+ </div>
502
+
503
+ </li>
504
+
505
+ </ul>
506
+
507
+ </div><table class="source_code">
508
+ <tr>
509
+ <td>
510
+ <pre class="lines">
511
+
512
+
513
+ 148
514
+ 149
515
+ 150</pre>
516
+ </td>
517
+ <td>
518
+ <pre class="code"><span class="info file"># File 'lib/tasker/task_handler/instance_methods.rb', line 148</span>
519
+
520
+ <span class='kw'>def</span> <span class='id identifier rubyid_dependency_graph'>dependency_graph</span>
521
+ <span class='id identifier rubyid_template_analyzer'>template_analyzer</span><span class='period'>.</span><span class='id identifier rubyid_analyze'>analyze</span>
522
+ <span class='kw'>end</span></pre>
523
+ </td>
524
+ </tr>
525
+ </table>
526
+ </div>
527
+
528
+ <div class="method_details ">
529
+ <h3 class="signature " id="establish_step_dependencies_and_defaults-instance_method">
530
+
531
+ #<strong>establish_step_dependencies_and_defaults</strong>(task, steps) &#x21d2; <tt>void</tt>
532
+
533
+
534
+
535
+
536
+
537
+ </h3><div class="docstring">
538
+ <div class="discussion">
539
+ <p class="note returns_void">This method returns an undefined value.</p>
540
+ <p>Establish step dependencies and defaults</p>
541
+
542
+ <p>This is a hook method that can be overridden by implementing classes. This method is public so that orchestration components can call it.</p>
543
+
544
+
545
+ </div>
546
+ </div>
547
+ <div class="tags">
548
+ <p class="tag_title">Parameters:</p>
549
+ <ul class="param">
550
+
551
+ <li>
552
+
553
+ <span class='name'>task</span>
554
+
555
+
556
+ <span class='type'>(<tt><span class='object_link'><a href="../Task.html" title="Tasker::Task (class)">Tasker::Task</a></span></tt>)</span>
557
+
558
+
559
+
560
+ &mdash;
561
+ <div class='inline'>
562
+ <p>The task being processed</p>
563
+ </div>
564
+
565
+ </li>
566
+
567
+ <li>
568
+
569
+ <span class='name'>steps</span>
570
+
571
+
572
+ <span class='type'>(<tt>Array&lt;<span class='object_link'><a href="../WorkflowStep.html" title="Tasker::WorkflowStep (class)">Tasker::WorkflowStep</a></span>&gt;</tt>)</span>
573
+
574
+
575
+
576
+ &mdash;
577
+ <div class='inline'>
578
+ <p>The steps to establish dependencies for</p>
579
+ </div>
580
+
581
+ </li>
582
+
583
+ </ul>
584
+
585
+
586
+ </div><table class="source_code">
587
+ <tr>
588
+ <td>
589
+ <pre class="lines">
590
+
591
+
592
+ 90</pre>
593
+ </td>
594
+ <td>
595
+ <pre class="code"><span class="info file"># File 'lib/tasker/task_handler/instance_methods.rb', line 90</span>
596
+
597
+ <span class='kw'>def</span> <span class='id identifier rubyid_establish_step_dependencies_and_defaults'>establish_step_dependencies_and_defaults</span><span class='lparen'>(</span><span class='id identifier rubyid_task'>task</span><span class='comma'>,</span> <span class='id identifier rubyid_steps'>steps</span><span class='rparen'>)</span><span class='semicolon'>;</span> <span class='kw'>end</span></pre>
598
+ </td>
599
+ </tr>
600
+ </table>
601
+ </div>
602
+
603
+ <div class="method_details ">
604
+ <h3 class="signature " id="get_sequence-instance_method">
605
+
606
+ #<strong>get_sequence</strong>(task) &#x21d2; <tt><span class='object_link'><a href="../Types/StepSequence.html" title="Tasker::Types::StepSequence (class)">Tasker::Types::StepSequence</a></span></tt>
607
+
608
+
609
+
610
+
611
+
612
+ </h3><div class="docstring">
613
+ <div class="discussion">
614
+
615
+ <p>Get the step sequence for a task</p>
616
+
617
+ <p>Retrieves all workflow steps for the task and establishes their dependencies. Delegates to StepSequenceFactory for implementation + observability events.</p>
618
+
619
+
620
+ </div>
621
+ </div>
622
+ <div class="tags">
623
+ <p class="tag_title">Parameters:</p>
624
+ <ul class="param">
625
+
626
+ <li>
627
+
628
+ <span class='name'>task</span>
629
+
630
+
631
+ <span class='type'>(<tt><span class='object_link'><a href="../Task.html" title="Tasker::Task (class)">Tasker::Task</a></span></tt>)</span>
632
+
633
+
634
+
635
+ &mdash;
636
+ <div class='inline'>
637
+ <p>The task to get the sequence for</p>
638
+ </div>
639
+
640
+ </li>
641
+
642
+ </ul>
643
+
644
+ <p class="tag_title">Returns:</p>
645
+ <ul class="return">
646
+
647
+ <li>
648
+
649
+
650
+ <span class='type'>(<tt><span class='object_link'><a href="../Types/StepSequence.html" title="Tasker::Types::StepSequence (class)">Tasker::Types::StepSequence</a></span></tt>)</span>
651
+
652
+
653
+
654
+ &mdash;
655
+ <div class='inline'>
656
+ <p>The sequence of workflow steps</p>
657
+ </div>
658
+
659
+ </li>
660
+
661
+ </ul>
662
+
663
+ </div><table class="source_code">
664
+ <tr>
665
+ <td>
666
+ <pre class="lines">
667
+
668
+
669
+ 50
670
+ 51
671
+ 52
672
+ 53</pre>
673
+ </td>
674
+ <td>
675
+ <pre class="code"><span class="info file"># File 'lib/tasker/task_handler/instance_methods.rb', line 50</span>
676
+
677
+ <span class='kw'>def</span> <span class='id identifier rubyid_get_sequence'>get_sequence</span><span class='lparen'>(</span><span class='id identifier rubyid_task'>task</span><span class='rparen'>)</span>
678
+ <span class='comment'># Delegate to orchestration system for implementation + events
679
+ </span> <span class='const'><span class='object_link'><a href="../../Tasker.html" title="Tasker (module)">Tasker</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Orchestration.html" title="Tasker::Orchestration (module)">Orchestration</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Orchestration/StepSequenceFactory.html" title="Tasker::Orchestration::StepSequenceFactory (class)">StepSequenceFactory</a></span></span><span class='period'>.</span><span class='id identifier rubyid_get_sequence'><span class='object_link'><a href="../Orchestration/StepSequenceFactory.html#get_sequence-class_method" title="Tasker::Orchestration::StepSequenceFactory.get_sequence (method)">get_sequence</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_task'>task</span><span class='comma'>,</span> <span class='kw'>self</span><span class='rparen'>)</span>
680
+ <span class='kw'>end</span></pre>
681
+ </td>
682
+ </tr>
683
+ </table>
684
+ </div>
685
+
686
+ <div class="method_details ">
687
+ <h3 class="signature " id="get_step_handler-instance_method">
688
+
689
+ #<strong>get_step_handler</strong>(step) &#x21d2; <tt>Object</tt>
690
+
691
+
692
+
693
+
694
+
695
+ </h3><div class="docstring">
696
+ <div class="discussion">
697
+
698
+ <p>Get a step handler for a specific step</p>
699
+
700
+ <p>This method is public so that orchestration components can access step handlers.</p>
701
+
702
+
703
+ </div>
704
+ </div>
705
+ <div class="tags">
706
+ <p class="tag_title">Parameters:</p>
707
+ <ul class="param">
708
+
709
+ <li>
710
+
711
+ <span class='name'>step</span>
712
+
713
+
714
+ <span class='type'>(<tt><span class='object_link'><a href="../WorkflowStep.html" title="Tasker::WorkflowStep (class)">Tasker::WorkflowStep</a></span></tt>)</span>
715
+
716
+
717
+
718
+ &mdash;
719
+ <div class='inline'>
720
+ <p>The step to get a handler for</p>
721
+ </div>
722
+
723
+ </li>
724
+
725
+ </ul>
726
+
727
+ <p class="tag_title">Returns:</p>
728
+ <ul class="return">
729
+
730
+ <li>
731
+
732
+
733
+ <span class='type'>(<tt>Object</tt>)</span>
734
+
735
+
736
+
737
+ &mdash;
738
+ <div class='inline'>
739
+ <p>The step handler</p>
740
+ </div>
741
+
742
+ </li>
743
+
744
+ </ul>
745
+ <p class="tag_title">Raises:</p>
746
+ <ul class="raise">
747
+
748
+ <li>
749
+
750
+
751
+ <span class='type'>(<tt><span class='object_link'><a href="../ProceduralError.html" title="Tasker::ProceduralError (class)">Tasker::ProceduralError</a></span></tt>)</span>
752
+
753
+
754
+
755
+ &mdash;
756
+ <div class='inline'>
757
+ <p>If no handler is registered for the step</p>
758
+ </div>
759
+
760
+ </li>
761
+
762
+ </ul>
763
+
764
+ </div><table class="source_code">
765
+ <tr>
766
+ <td>
767
+ <pre class="lines">
768
+
769
+
770
+ 110
771
+ 111
772
+ 112
773
+ 113
774
+ 114
775
+ 115
776
+ 116
777
+ 117
778
+ 118
779
+ 119</pre>
780
+ </td>
781
+ <td>
782
+ <pre class="code"><span class="info file"># File 'lib/tasker/task_handler/instance_methods.rb', line 110</span>
783
+
784
+ <span class='kw'>def</span> <span class='id identifier rubyid_get_step_handler'>get_step_handler</span><span class='lparen'>(</span><span class='id identifier rubyid_step'>step</span><span class='rparen'>)</span>
785
+ <span class='id identifier rubyid_raise'>raise</span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="../../Tasker.html" title="Tasker (module)">Tasker</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../ProceduralError.html" title="Tasker::ProceduralError (class)">ProceduralError</a></span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>No registered class for </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_step'>step</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='kw'>unless</span> <span class='id identifier rubyid_step_handler_class_map'>step_handler_class_map</span><span class='lbracket'>[</span><span class='id identifier rubyid_step'>step</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span><span class='rbracket'>]</span>
786
+
787
+ <span class='id identifier rubyid_handler_config'>handler_config</span> <span class='op'>=</span> <span class='id identifier rubyid_step_handler_config_map'>step_handler_config_map</span><span class='lbracket'>[</span><span class='id identifier rubyid_step'>step</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span><span class='rbracket'>]</span>
788
+ <span class='id identifier rubyid_handler_class'>handler_class</span> <span class='op'>=</span> <span class='id identifier rubyid_step_handler_class_map'>step_handler_class_map</span><span class='lbracket'>[</span><span class='id identifier rubyid_step'>step</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='period'>.</span><span class='id identifier rubyid_camelize'>camelize</span><span class='period'>.</span><span class='id identifier rubyid_constantize'>constantize</span>
789
+
790
+ <span class='kw'>return</span> <span class='id identifier rubyid_handler_class'>handler_class</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span> <span class='kw'>if</span> <span class='id identifier rubyid_handler_config'>handler_config</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
791
+
792
+ <span class='id identifier rubyid_handler_class'>handler_class</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='label'>config:</span> <span class='id identifier rubyid_handler_config'>handler_config</span><span class='rparen'>)</span>
793
+ <span class='kw'>end</span></pre>
794
+ </td>
795
+ </tr>
796
+ </table>
797
+ </div>
798
+
799
+ <div class="method_details ">
800
+ <h3 class="signature " id="handle-instance_method">
801
+
802
+ #<strong>handle</strong>(task) &#x21d2; <tt>void</tt>
803
+
804
+
805
+
806
+
807
+
808
+ </h3><div class="docstring">
809
+ <div class="discussion">
810
+ <p class="note returns_void">This method returns an undefined value.</p>
811
+ <p>Handle a task’s execution</p>
812
+
813
+ <p>This is the main entry point for processing a task. Delegates to WorkflowCoordinator for the execution loop to enable strategy composition.</p>
814
+
815
+
816
+ </div>
817
+ </div>
818
+ <div class="tags">
819
+ <p class="tag_title">Parameters:</p>
820
+ <ul class="param">
821
+
822
+ <li>
823
+
824
+ <span class='name'>task</span>
825
+
826
+
827
+ <span class='type'>(<tt><span class='object_link'><a href="../Task.html" title="Tasker::Task (class)">Tasker::Task</a></span></tt>)</span>
828
+
829
+
830
+
831
+ &mdash;
832
+ <div class='inline'>
833
+ <p>The task to handle</p>
834
+ </div>
835
+
836
+ </li>
837
+
838
+ </ul>
839
+
840
+
841
+ </div><table class="source_code">
842
+ <tr>
843
+ <td>
844
+ <pre class="lines">
845
+
846
+
847
+ 74
848
+ 75
849
+ 76
850
+ 77
851
+ 78
852
+ 79
853
+ 80</pre>
854
+ </td>
855
+ <td>
856
+ <pre class="code"><span class="info file"># File 'lib/tasker/task_handler/instance_methods.rb', line 74</span>
857
+
858
+ <span class='kw'>def</span> <span class='id identifier rubyid_handle'>handle</span><span class='lparen'>(</span><span class='id identifier rubyid_task'>task</span><span class='rparen'>)</span>
859
+ <span class='id identifier rubyid_start_task'>start_task</span><span class='lparen'>(</span><span class='id identifier rubyid_task'>task</span><span class='rparen'>)</span>
860
+
861
+ <span class='comment'># DELEGATE: Use WorkflowCoordinator for execution loop
862
+ </span> <span class='comment'># This enables strategy pattern composition for testing
863
+ </span> <span class='id identifier rubyid_workflow_coordinator'>workflow_coordinator</span><span class='period'>.</span><span class='id identifier rubyid_execute_workflow'>execute_workflow</span><span class='lparen'>(</span><span class='id identifier rubyid_task'>task</span><span class='comma'>,</span> <span class='kw'>self</span><span class='rparen'>)</span>
864
+ <span class='kw'>end</span></pre>
865
+ </td>
866
+ </tr>
867
+ </table>
868
+ </div>
869
+
870
+ <div class="method_details ">
871
+ <h3 class="signature " id="handle_one_step-instance_method">
872
+
873
+ #<strong>handle_one_step</strong>(task, sequence, step) &#x21d2; <tt><span class='object_link'><a href="../WorkflowStep.html" title="Tasker::WorkflowStep (class)">Tasker::WorkflowStep</a></span></tt>
874
+
875
+
876
+
877
+
878
+
879
+ </h3><div class="docstring">
880
+ <div class="discussion">
881
+
882
+ <p>Handle execution of a single step</p>
883
+
884
+ <p>This is a convenience method for testing that executes a single step. Delegates to StepExecutor for consistent behavior.</p>
885
+
886
+
887
+ </div>
888
+ </div>
889
+ <div class="tags">
890
+ <p class="tag_title">Parameters:</p>
891
+ <ul class="param">
892
+
893
+ <li>
894
+
895
+ <span class='name'>task</span>
896
+
897
+
898
+ <span class='type'>(<tt><span class='object_link'><a href="../Task.html" title="Tasker::Task (class)">Tasker::Task</a></span></tt>)</span>
899
+
900
+
901
+
902
+ &mdash;
903
+ <div class='inline'>
904
+ <p>The task being processed</p>
905
+ </div>
906
+
907
+ </li>
908
+
909
+ <li>
910
+
911
+ <span class='name'>sequence</span>
912
+
913
+
914
+ <span class='type'>(<tt><span class='object_link'><a href="../Types/StepSequence.html" title="Tasker::Types::StepSequence (class)">Tasker::Types::StepSequence</a></span></tt>)</span>
915
+
916
+
917
+
918
+ &mdash;
919
+ <div class='inline'>
920
+ <p>The step sequence</p>
921
+ </div>
922
+
923
+ </li>
924
+
925
+ <li>
926
+
927
+ <span class='name'>step</span>
928
+
929
+
930
+ <span class='type'>(<tt><span class='object_link'><a href="../WorkflowStep.html" title="Tasker::WorkflowStep (class)">Tasker::WorkflowStep</a></span></tt>)</span>
931
+
932
+
933
+
934
+ &mdash;
935
+ <div class='inline'>
936
+ <p>The step to execute</p>
937
+ </div>
938
+
939
+ </li>
940
+
941
+ </ul>
942
+
943
+ <p class="tag_title">Returns:</p>
944
+ <ul class="return">
945
+
946
+ <li>
947
+
948
+
949
+ <span class='type'>(<tt><span class='object_link'><a href="../WorkflowStep.html" title="Tasker::WorkflowStep (class)">Tasker::WorkflowStep</a></span></tt>)</span>
950
+
951
+
952
+
953
+ &mdash;
954
+ <div class='inline'>
955
+ <p>The processed step</p>
956
+ </div>
957
+
958
+ </li>
959
+
960
+ </ul>
961
+
962
+ </div><table class="source_code">
963
+ <tr>
964
+ <td>
965
+ <pre class="lines">
966
+
967
+
968
+ 130
969
+ 131
970
+ 132</pre>
971
+ </td>
972
+ <td>
973
+ <pre class="code"><span class="info file"># File 'lib/tasker/task_handler/instance_methods.rb', line 130</span>
974
+
975
+ <span class='kw'>def</span> <span class='id identifier rubyid_handle_one_step'>handle_one_step</span><span class='lparen'>(</span><span class='id identifier rubyid_task'>task</span><span class='comma'>,</span> <span class='id identifier rubyid_sequence'>sequence</span><span class='comma'>,</span> <span class='id identifier rubyid_step'>step</span><span class='rparen'>)</span>
976
+ <span class='id identifier rubyid_step_executor'>step_executor</span><span class='period'>.</span><span class='id identifier rubyid_execute_single_step'>execute_single_step</span><span class='lparen'>(</span><span class='id identifier rubyid_task'>task</span><span class='comma'>,</span> <span class='id identifier rubyid_sequence'>sequence</span><span class='comma'>,</span> <span class='id identifier rubyid_step'>step</span><span class='comma'>,</span> <span class='kw'>self</span><span class='rparen'>)</span>
977
+ <span class='kw'>end</span></pre>
978
+ </td>
979
+ </tr>
980
+ </table>
981
+ </div>
982
+
983
+ <div class="method_details ">
984
+ <h3 class="signature " id="initialize_task!-instance_method">
985
+
986
+ #<strong>initialize_task!</strong>(task_request) &#x21d2; <tt><span class='object_link'><a href="../Task.html" title="Tasker::Task (class)">Tasker::Task</a></span></tt>
987
+
988
+
989
+
990
+
991
+
992
+ </h3><div class="docstring">
993
+ <div class="discussion">
994
+
995
+ <p>Initialize a task</p>
996
+
997
+ <p>Validates input and creates initial workflow steps via orchestration.</p>
998
+
999
+
1000
+ </div>
1001
+ </div>
1002
+ <div class="tags">
1003
+ <p class="tag_title">Parameters:</p>
1004
+ <ul class="param">
1005
+
1006
+ <li>
1007
+
1008
+ <span class='name'>task_request</span>
1009
+
1010
+
1011
+ <span class='type'>(<tt>TaskRequest</tt>)</span>
1012
+
1013
+
1014
+
1015
+ &mdash;
1016
+ <div class='inline'>
1017
+ <p>The task request to initialize</p>
1018
+ </div>
1019
+
1020
+ </li>
1021
+
1022
+ </ul>
1023
+
1024
+ <p class="tag_title">Returns:</p>
1025
+ <ul class="return">
1026
+
1027
+ <li>
1028
+
1029
+
1030
+ <span class='type'>(<tt><span class='object_link'><a href="../Task.html" title="Tasker::Task (class)">Tasker::Task</a></span></tt>)</span>
1031
+
1032
+
1033
+
1034
+ &mdash;
1035
+ <div class='inline'>
1036
+ <p>The initialized task</p>
1037
+ </div>
1038
+
1039
+ </li>
1040
+
1041
+ </ul>
1042
+
1043
+ </div><table class="source_code">
1044
+ <tr>
1045
+ <td>
1046
+ <pre class="lines">
1047
+
1048
+
1049
+ 38
1050
+ 39
1051
+ 40
1052
+ 41</pre>
1053
+ </td>
1054
+ <td>
1055
+ <pre class="code"><span class="info file"># File 'lib/tasker/task_handler/instance_methods.rb', line 38</span>
1056
+
1057
+ <span class='kw'>def</span> <span class='id identifier rubyid_initialize_task!'>initialize_task!</span><span class='lparen'>(</span><span class='id identifier rubyid_task_request'>task_request</span><span class='rparen'>)</span>
1058
+ <span class='comment'># Delegate to orchestration system
1059
+ </span> <span class='const'><span class='object_link'><a href="../../Tasker.html" title="Tasker (module)">Tasker</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Orchestration.html" title="Tasker::Orchestration (module)">Orchestration</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Orchestration/TaskInitializer.html" title="Tasker::Orchestration::TaskInitializer (class)">TaskInitializer</a></span></span><span class='period'>.</span><span class='id identifier rubyid_initialize_task!'><span class='object_link'><a href="../Orchestration/TaskInitializer.html#initialize_task!-class_method" title="Tasker::Orchestration::TaskInitializer.initialize_task! (method)">initialize_task!</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_task_request'>task_request</span><span class='comma'>,</span> <span class='kw'>self</span><span class='rparen'>)</span>
1060
+ <span class='kw'>end</span></pre>
1061
+ </td>
1062
+ </tr>
1063
+ </table>
1064
+ </div>
1065
+
1066
+ <div class="method_details ">
1067
+ <h3 class="signature " id="reenqueuer_strategy=-instance_method">
1068
+
1069
+ #<strong>reenqueuer_strategy=</strong>(strategy) &#x21d2; <tt>Object</tt>
1070
+
1071
+
1072
+
1073
+
1074
+
1075
+ </h3><div class="docstring">
1076
+ <div class="discussion">
1077
+
1078
+ <p>Set the reenqueuer strategy (for testing)</p>
1079
+
1080
+
1081
+ </div>
1082
+ </div>
1083
+ <div class="tags">
1084
+ <p class="tag_title">Parameters:</p>
1085
+ <ul class="param">
1086
+
1087
+ <li>
1088
+
1089
+ <span class='name'>strategy</span>
1090
+
1091
+
1092
+ <span class='type'>(<tt>Class</tt>)</span>
1093
+
1094
+
1095
+
1096
+ &mdash;
1097
+ <div class='inline'>
1098
+ <p>The reenqueuer strategy class</p>
1099
+ </div>
1100
+
1101
+ </li>
1102
+
1103
+ </ul>
1104
+
1105
+
1106
+ </div><table class="source_code">
1107
+ <tr>
1108
+ <td>
1109
+ <pre class="lines">
1110
+
1111
+
1112
+ 202
1113
+ 203
1114
+ 204
1115
+ 205</pre>
1116
+ </td>
1117
+ <td>
1118
+ <pre class="code"><span class="info file"># File 'lib/tasker/task_handler/instance_methods.rb', line 202</span>
1119
+
1120
+ <span class='kw'>def</span> <span class='id identifier rubyid_reenqueuer_strategy='>reenqueuer_strategy=</span><span class='lparen'>(</span><span class='id identifier rubyid_strategy'>strategy</span><span class='rparen'>)</span>
1121
+ <span class='ivar'>@reenqueuer_strategy</span> <span class='op'>=</span> <span class='id identifier rubyid_strategy'>strategy</span>
1122
+ <span class='ivar'>@workflow_coordinator</span> <span class='op'>=</span> <span class='kw'>nil</span> <span class='comment'># Reset memoized instance
1123
+ </span><span class='kw'>end</span></pre>
1124
+ </td>
1125
+ </tr>
1126
+ </table>
1127
+ </div>
1128
+
1129
+ <div class="method_details ">
1130
+ <h3 class="signature " id="start_task-instance_method">
1131
+
1132
+ #<strong>start_task</strong>(task) &#x21d2; <tt>Boolean</tt>
1133
+
1134
+
1135
+
1136
+
1137
+
1138
+ </h3><div class="docstring">
1139
+ <div class="discussion">
1140
+
1141
+ <p>Start a task’s execution</p>
1142
+
1143
+ <p>Updates the task status to IN_PROGRESS and fires the appropriate event.</p>
1144
+
1145
+
1146
+ </div>
1147
+ </div>
1148
+ <div class="tags">
1149
+ <p class="tag_title">Parameters:</p>
1150
+ <ul class="param">
1151
+
1152
+ <li>
1153
+
1154
+ <span class='name'>task</span>
1155
+
1156
+
1157
+ <span class='type'>(<tt><span class='object_link'><a href="../Task.html" title="Tasker::Task (class)">Tasker::Task</a></span></tt>)</span>
1158
+
1159
+
1160
+
1161
+ &mdash;
1162
+ <div class='inline'>
1163
+ <p>The task to start</p>
1164
+ </div>
1165
+
1166
+ </li>
1167
+
1168
+ </ul>
1169
+
1170
+ <p class="tag_title">Returns:</p>
1171
+ <ul class="return">
1172
+
1173
+ <li>
1174
+
1175
+
1176
+ <span class='type'>(<tt>Boolean</tt>)</span>
1177
+
1178
+
1179
+
1180
+ &mdash;
1181
+ <div class='inline'>
1182
+ <p>True if the task was started successfully</p>
1183
+ </div>
1184
+
1185
+ </li>
1186
+
1187
+ </ul>
1188
+ <p class="tag_title">Raises:</p>
1189
+ <ul class="raise">
1190
+
1191
+ <li>
1192
+
1193
+
1194
+ <span class='type'>(<tt><span class='object_link'><a href="../ProceduralError.html" title="Tasker::ProceduralError (class)">Tasker::ProceduralError</a></span></tt>)</span>
1195
+
1196
+
1197
+
1198
+ &mdash;
1199
+ <div class='inline'>
1200
+ <p>If the task is already complete or not pending</p>
1201
+ </div>
1202
+
1203
+ </li>
1204
+
1205
+ </ul>
1206
+
1207
+ </div><table class="source_code">
1208
+ <tr>
1209
+ <td>
1210
+ <pre class="lines">
1211
+
1212
+
1213
+ 62
1214
+ 63
1215
+ 64
1216
+ 65</pre>
1217
+ </td>
1218
+ <td>
1219
+ <pre class="code"><span class="info file"># File 'lib/tasker/task_handler/instance_methods.rb', line 62</span>
1220
+
1221
+ <span class='kw'>def</span> <span class='id identifier rubyid_start_task'>start_task</span><span class='lparen'>(</span><span class='id identifier rubyid_task'>task</span><span class='rparen'>)</span>
1222
+ <span class='comment'># Delegate to orchestration system
1223
+ </span> <span class='const'><span class='object_link'><a href="../../Tasker.html" title="Tasker (module)">Tasker</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Orchestration.html" title="Tasker::Orchestration (module)">Orchestration</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Orchestration/TaskInitializer.html" title="Tasker::Orchestration::TaskInitializer (class)">TaskInitializer</a></span></span><span class='period'>.</span><span class='id identifier rubyid_start_task!'><span class='object_link'><a href="../Orchestration/TaskInitializer.html#start_task!-class_method" title="Tasker::Orchestration::TaskInitializer.start_task! (method)">start_task!</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_task'>task</span><span class='rparen'>)</span>
1224
+ <span class='kw'>end</span></pre>
1225
+ </td>
1226
+ </tr>
1227
+ </table>
1228
+ </div>
1229
+
1230
+ <div class="method_details ">
1231
+ <h3 class="signature " id="update_annotations-instance_method">
1232
+
1233
+ #<strong>update_annotations</strong>(task, sequence, steps) &#x21d2; <tt>void</tt>
1234
+
1235
+
1236
+
1237
+
1238
+
1239
+ </h3><div class="docstring">
1240
+ <div class="discussion">
1241
+ <p class="note returns_void">This method returns an undefined value.</p>
1242
+ <p>Update annotations based on processed steps</p>
1243
+
1244
+ <p>This is a hook method that can be overridden by implementing classes. This method is public so that orchestration components can call it.</p>
1245
+
1246
+
1247
+ </div>
1248
+ </div>
1249
+ <div class="tags">
1250
+ <p class="tag_title">Parameters:</p>
1251
+ <ul class="param">
1252
+
1253
+ <li>
1254
+
1255
+ <span class='name'>task</span>
1256
+
1257
+
1258
+ <span class='type'>(<tt><span class='object_link'><a href="../Task.html" title="Tasker::Task (class)">Tasker::Task</a></span></tt>)</span>
1259
+
1260
+
1261
+
1262
+ &mdash;
1263
+ <div class='inline'>
1264
+ <p>The task being processed</p>
1265
+ </div>
1266
+
1267
+ </li>
1268
+
1269
+ <li>
1270
+
1271
+ <span class='name'>sequence</span>
1272
+
1273
+
1274
+ <span class='type'>(<tt><span class='object_link'><a href="../Types/StepSequence.html" title="Tasker::Types::StepSequence (class)">Tasker::Types::StepSequence</a></span></tt>)</span>
1275
+
1276
+
1277
+
1278
+ &mdash;
1279
+ <div class='inline'>
1280
+ <p>The sequence of steps</p>
1281
+ </div>
1282
+
1283
+ </li>
1284
+
1285
+ <li>
1286
+
1287
+ <span class='name'>steps</span>
1288
+
1289
+
1290
+ <span class='type'>(<tt>Array&lt;<span class='object_link'><a href="../WorkflowStep.html" title="Tasker::WorkflowStep (class)">Tasker::WorkflowStep</a></span>&gt;</tt>)</span>
1291
+
1292
+
1293
+
1294
+ &mdash;
1295
+ <div class='inline'>
1296
+ <p>The processed steps</p>
1297
+ </div>
1298
+
1299
+ </li>
1300
+
1301
+ </ul>
1302
+
1303
+
1304
+ </div><table class="source_code">
1305
+ <tr>
1306
+ <td>
1307
+ <pre class="lines">
1308
+
1309
+
1310
+ 101</pre>
1311
+ </td>
1312
+ <td>
1313
+ <pre class="code"><span class="info file"># File 'lib/tasker/task_handler/instance_methods.rb', line 101</span>
1314
+
1315
+ <span class='kw'>def</span> <span class='id identifier rubyid_update_annotations'>update_annotations</span><span class='lparen'>(</span><span class='id identifier rubyid_task'>task</span><span class='comma'>,</span> <span class='id identifier rubyid_sequence'>sequence</span><span class='comma'>,</span> <span class='id identifier rubyid_steps'>steps</span><span class='rparen'>)</span><span class='semicolon'>;</span> <span class='kw'>end</span></pre>
1316
+ </td>
1317
+ </tr>
1318
+ </table>
1319
+ </div>
1320
+
1321
+ <div class="method_details ">
1322
+ <h3 class="signature " id="workflow_coordinator_strategy=-instance_method">
1323
+
1324
+ #<strong>workflow_coordinator_strategy=</strong>(strategy) &#x21d2; <tt>Object</tt>
1325
+
1326
+
1327
+
1328
+
1329
+
1330
+ </h3><div class="docstring">
1331
+ <div class="discussion">
1332
+
1333
+ <p>Set the workflow coordinator strategy (for testing)</p>
1334
+
1335
+
1336
+ </div>
1337
+ </div>
1338
+ <div class="tags">
1339
+ <p class="tag_title">Parameters:</p>
1340
+ <ul class="param">
1341
+
1342
+ <li>
1343
+
1344
+ <span class='name'>strategy</span>
1345
+
1346
+
1347
+ <span class='type'>(<tt>Class</tt>)</span>
1348
+
1349
+
1350
+
1351
+ &mdash;
1352
+ <div class='inline'>
1353
+ <p>The workflow coordinator strategy class</p>
1354
+ </div>
1355
+
1356
+ </li>
1357
+
1358
+ </ul>
1359
+
1360
+
1361
+ </div><table class="source_code">
1362
+ <tr>
1363
+ <td>
1364
+ <pre class="lines">
1365
+
1366
+
1367
+ 194
1368
+ 195
1369
+ 196
1370
+ 197</pre>
1371
+ </td>
1372
+ <td>
1373
+ <pre class="code"><span class="info file"># File 'lib/tasker/task_handler/instance_methods.rb', line 194</span>
1374
+
1375
+ <span class='kw'>def</span> <span class='id identifier rubyid_workflow_coordinator_strategy='>workflow_coordinator_strategy=</span><span class='lparen'>(</span><span class='id identifier rubyid_strategy'>strategy</span><span class='rparen'>)</span>
1376
+ <span class='ivar'>@workflow_coordinator_strategy</span> <span class='op'>=</span> <span class='id identifier rubyid_strategy'>strategy</span>
1377
+ <span class='ivar'>@workflow_coordinator</span> <span class='op'>=</span> <span class='kw'>nil</span> <span class='comment'># Reset memoized instance
1378
+ </span><span class='kw'>end</span></pre>
1379
+ </td>
1380
+ </tr>
1381
+ </table>
1382
+ </div>
1383
+
1384
+ </div>
1385
+
1386
+ </div>
1387
+
1388
+ <div id="footer">
1389
+ Generated on Tue Jul 1 16:47:35 2025 by
1390
+ <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1391
+ 0.9.37 (ruby-3.2.4).
1392
+ </div>
1393
+
1394
+ </div>
1395
+ </body>
1396
+ </html>