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,1181 @@
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
+ Class: Tasker::Types::EngineConfig
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::Types::EngineConfig";
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 (E)</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="../Types.html" title="Tasker::Types (module)">Types</a></span></span>
41
+ &raquo;
42
+ <span class="title">EngineConfig</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>Class: Tasker::Types::EngineConfig
63
+
64
+
65
+
66
+ </h1>
67
+ <div class="box_info">
68
+
69
+ <dl>
70
+ <dt>Inherits:</dt>
71
+ <dd>
72
+ <span class="inheritName"><span class='object_link'><a href="BaseConfig.html" title="Tasker::Types::BaseConfig (class)">BaseConfig</a></span></span>
73
+
74
+ <ul class="fullTree">
75
+ <li>Object</li>
76
+
77
+ <li class="next">Dry::Struct</li>
78
+
79
+ <li class="next"><span class='object_link'><a href="BaseConfig.html" title="Tasker::Types::BaseConfig (class)">BaseConfig</a></span></li>
80
+
81
+ <li class="next">Tasker::Types::EngineConfig</li>
82
+
83
+ </ul>
84
+ <a href="#" class="inheritanceTree">show all</a>
85
+
86
+ </dd>
87
+ </dl>
88
+
89
+
90
+
91
+
92
+
93
+
94
+
95
+
96
+
97
+
98
+
99
+ <dl>
100
+ <dt>Defined in:</dt>
101
+ <dd>lib/tasker/types/engine_config.rb</dd>
102
+ </dl>
103
+
104
+ </div>
105
+
106
+ <h2>Overview</h2><div class="docstring">
107
+ <div class="discussion">
108
+
109
+ <p>Configuration type for core engine settings</p>
110
+
111
+ <p>This configuration handles core Tasker engine settings including task handler directories, identity strategies, and custom event configurations. It provides the same functionality as the original EngineConfiguration but with dry-struct type safety and immutability.</p>
112
+
113
+
114
+ </div>
115
+ </div>
116
+ <div class="tags">
117
+
118
+ <div class="examples">
119
+ <h4 class="tag_title">Examples:</h4>
120
+
121
+
122
+ <h5 class="example_title"><div class='inline'>
123
+ <p>Basic usage</p>
124
+ </div></h5>
125
+
126
+ <pre class="example code"><code><span class='id identifier rubyid_config'>config</span> <span class='op'>=</span> <span class='const'>EngineConfig</span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="BaseConfig.html#initialize-instance_method" title="Tasker::Types::BaseConfig#initialize (method)">new</a></span></span><span class='lparen'>(</span>
127
+ <span class='label'>task_handler_directory:</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>app/tasks</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
128
+ <span class='label'>identity_strategy:</span> <span class='symbol'>:hash</span>
129
+ <span class='rparen'>)</span></code></pre>
130
+
131
+
132
+ <h5 class="example_title"><div class='inline'>
133
+ <p>Full configuration</p>
134
+ </div></h5>
135
+
136
+ <pre class="example code"><code><span class='id identifier rubyid_config'>config</span> <span class='op'>=</span> <span class='const'>EngineConfig</span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="BaseConfig.html#initialize-instance_method" title="Tasker::Types::BaseConfig#initialize (method)">new</a></span></span><span class='lparen'>(</span>
137
+ <span class='label'>task_handler_directory:</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>app/tasks</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
138
+ <span class='label'>task_config_directory:</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>config/tasks</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
139
+ <span class='label'>default_module_namespace:</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>MyApp::Tasks</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
140
+ <span class='label'>identity_strategy:</span> <span class='symbol'>:custom</span><span class='comma'>,</span>
141
+ <span class='label'>identity_strategy_class:</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>MyApp::CustomIdentityStrategy</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
142
+ <span class='label'>custom_events_directories:</span> <span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>config/events</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>lib/events</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span>
143
+ <span class='rparen'>)</span></code></pre>
144
+
145
+ </div>
146
+
147
+
148
+ </div>
149
+
150
+
151
+
152
+ <h2>Instance Attribute Summary <small><a href="#" class="summary_toggle">collapse</a></small></h2>
153
+ <ul class="summary">
154
+
155
+ <li class="public ">
156
+ <span class="summary_signature">
157
+
158
+ <a href="#custom_events_directories-instance_method" title="#custom_events_directories (instance method)">#<strong>custom_events_directories</strong> &#x21d2; Array&lt;String&gt; </a>
159
+
160
+
161
+
162
+ </span>
163
+
164
+
165
+
166
+
167
+ <span class="note title readonly">readonly</span>
168
+
169
+
170
+
171
+
172
+
173
+
174
+
175
+
176
+
177
+ <span class="summary_desc"><div class='inline'>
178
+ <p>Custom event directories.</p>
179
+ </div></span>
180
+
181
+ </li>
182
+
183
+
184
+ <li class="public ">
185
+ <span class="summary_signature">
186
+
187
+ <a href="#default_module_namespace-instance_method" title="#default_module_namespace (instance method)">#<strong>default_module_namespace</strong> &#x21d2; String<sup>?</sup> </a>
188
+
189
+
190
+
191
+ </span>
192
+
193
+
194
+
195
+
196
+ <span class="note title readonly">readonly</span>
197
+
198
+
199
+
200
+
201
+
202
+
203
+
204
+
205
+
206
+ <span class="summary_desc"><div class='inline'>
207
+ <p>Default module namespace for generated handlers.</p>
208
+ </div></span>
209
+
210
+ </li>
211
+
212
+
213
+ <li class="public ">
214
+ <span class="summary_signature">
215
+
216
+ <a href="#identity_strategy-instance_method" title="#identity_strategy (instance method)">#<strong>identity_strategy</strong> &#x21d2; Symbol </a>
217
+
218
+
219
+
220
+ </span>
221
+
222
+
223
+
224
+
225
+ <span class="note title readonly">readonly</span>
226
+
227
+
228
+
229
+
230
+
231
+
232
+
233
+
234
+
235
+ <span class="summary_desc"><div class='inline'>
236
+ <p>Identity strategy (:default, :hash, :custom).</p>
237
+ </div></span>
238
+
239
+ </li>
240
+
241
+
242
+ <li class="public ">
243
+ <span class="summary_signature">
244
+
245
+ <a href="#identity_strategy_class-instance_method" title="#identity_strategy_class (instance method)">#<strong>identity_strategy_class</strong> &#x21d2; String<sup>?</sup> </a>
246
+
247
+
248
+
249
+ </span>
250
+
251
+
252
+
253
+
254
+ <span class="note title readonly">readonly</span>
255
+
256
+
257
+
258
+
259
+
260
+
261
+
262
+
263
+
264
+ <span class="summary_desc"><div class='inline'>
265
+ <p>Custom identity strategy class name.</p>
266
+ </div></span>
267
+
268
+ </li>
269
+
270
+
271
+ <li class="public ">
272
+ <span class="summary_signature">
273
+
274
+ <a href="#task_config_directory-instance_method" title="#task_config_directory (instance method)">#<strong>task_config_directory</strong> &#x21d2; String </a>
275
+
276
+
277
+
278
+ </span>
279
+
280
+
281
+
282
+
283
+ <span class="note title readonly">readonly</span>
284
+
285
+
286
+
287
+
288
+
289
+
290
+
291
+
292
+
293
+ <span class="summary_desc"><div class='inline'>
294
+ <p>Task configuration directory path.</p>
295
+ </div></span>
296
+
297
+ </li>
298
+
299
+
300
+ <li class="public ">
301
+ <span class="summary_signature">
302
+
303
+ <a href="#task_handler_directory-instance_method" title="#task_handler_directory (instance method)">#<strong>task_handler_directory</strong> &#x21d2; String </a>
304
+
305
+
306
+
307
+ </span>
308
+
309
+
310
+
311
+
312
+ <span class="note title readonly">readonly</span>
313
+
314
+
315
+
316
+
317
+
318
+
319
+
320
+
321
+
322
+ <span class="summary_desc"><div class='inline'>
323
+ <p>Task handler directory path.</p>
324
+ </div></span>
325
+
326
+ </li>
327
+
328
+
329
+ </ul>
330
+
331
+
332
+
333
+
334
+
335
+ <h2>
336
+ Class Method Summary
337
+ <small><a href="#" class="summary_toggle">collapse</a></small>
338
+ </h2>
339
+
340
+ <ul class="summary">
341
+
342
+ <li class="public ">
343
+ <span class="summary_signature">
344
+
345
+ <a href="#default_custom_events_directories-class_method" title="default_custom_events_directories (class method)">.<strong>default_custom_events_directories</strong> &#x21d2; Array&lt;String&gt; </a>
346
+
347
+
348
+
349
+ </span>
350
+
351
+
352
+
353
+
354
+
355
+
356
+
357
+
358
+
359
+ <span class="summary_desc"><div class='inline'>
360
+ <p>Get default custom events directories.</p>
361
+ </div></span>
362
+
363
+ </li>
364
+
365
+
366
+ </ul>
367
+
368
+ <h2>
369
+ Instance Method Summary
370
+ <small><a href="#" class="summary_toggle">collapse</a></small>
371
+ </h2>
372
+
373
+ <ul class="summary">
374
+
375
+ <li class="public ">
376
+ <span class="summary_signature">
377
+
378
+ <a href="#add_custom_events_directories-instance_method" title="#add_custom_events_directories (instance method)">#<strong>add_custom_events_directories</strong>(*directories) &#x21d2; EngineConfig </a>
379
+
380
+
381
+
382
+ </span>
383
+
384
+
385
+
386
+
387
+
388
+
389
+
390
+
391
+
392
+ <span class="summary_desc"><div class='inline'>
393
+ <p>Add custom event directories to the existing configuration.</p>
394
+ </div></span>
395
+
396
+ </li>
397
+
398
+
399
+ <li class="public ">
400
+ <span class="summary_signature">
401
+
402
+ <a href="#identity_strategy_instance-instance_method" title="#identity_strategy_instance (instance method)">#<strong>identity_strategy_instance</strong> &#x21d2; Tasker::IdentityStrategy </a>
403
+
404
+
405
+
406
+ </span>
407
+
408
+
409
+
410
+
411
+
412
+
413
+
414
+
415
+
416
+ <span class="summary_desc"><div class='inline'>
417
+ <p>Creates and returns an appropriate identity strategy instance.</p>
418
+ </div></span>
419
+
420
+ </li>
421
+
422
+
423
+ <li class="public ">
424
+ <span class="summary_signature">
425
+
426
+ <a href="#set_custom_events_directories-instance_method" title="#set_custom_events_directories (instance method)">#<strong>set_custom_events_directories</strong>(directories) &#x21d2; EngineConfig </a>
427
+
428
+
429
+
430
+ </span>
431
+
432
+
433
+
434
+
435
+
436
+
437
+
438
+
439
+
440
+ <span class="summary_desc"><div class='inline'>
441
+ <p>Set custom event directories (replaces the default list).</p>
442
+ </div></span>
443
+
444
+ </li>
445
+
446
+
447
+ </ul>
448
+
449
+
450
+
451
+
452
+
453
+
454
+
455
+
456
+
457
+
458
+
459
+ <h3 class="inherited">Methods inherited from <span class='object_link'><a href="BaseConfig.html" title="Tasker::Types::BaseConfig (class)">BaseConfig</a></span></h3>
460
+ <p class="inherited"><span class='object_link'><a href="BaseConfig.html#initialize-instance_method" title="Tasker::Types::BaseConfig#initialize (method)">#initialize</a></span></p>
461
+
462
+ <div id="constructor_details" class="method_details_list">
463
+ <h2>Constructor Details</h2>
464
+
465
+ <p class="notice">This class inherits a constructor from <span class='object_link'><a href="BaseConfig.html#initialize-instance_method" title="Tasker::Types::BaseConfig#initialize (method)">Tasker::Types::BaseConfig</a></span></p>
466
+
467
+ </div>
468
+
469
+ <div id="instance_attr_details" class="attr_details">
470
+ <h2>Instance Attribute Details</h2>
471
+
472
+
473
+ <span id=""></span>
474
+ <div class="method_details first">
475
+ <h3 class="signature first" id="custom_events_directories-instance_method">
476
+
477
+ #<strong>custom_events_directories</strong> &#x21d2; <tt>Array&lt;String&gt;</tt> <span class="extras">(readonly)</span>
478
+
479
+
480
+
481
+
482
+
483
+ </h3><div class="docstring">
484
+ <div class="discussion">
485
+
486
+ <p>Returns Custom event directories.</p>
487
+
488
+
489
+ </div>
490
+ </div>
491
+ <div class="tags">
492
+
493
+ <p class="tag_title">Returns:</p>
494
+ <ul class="return">
495
+
496
+ <li>
497
+
498
+
499
+ <span class='type'>(<tt>Array&lt;String&gt;</tt>)</span>
500
+
501
+
502
+
503
+ &mdash;
504
+ <div class='inline'>
505
+ <p>Custom event directories</p>
506
+ </div>
507
+
508
+ </li>
509
+
510
+ </ul>
511
+
512
+ </div><table class="source_code">
513
+ <tr>
514
+ <td>
515
+ <pre class="lines">
516
+
517
+
518
+ 64
519
+ 65
520
+ 66</pre>
521
+ </td>
522
+ <td>
523
+ <pre class="code"><span class="info file"># File 'lib/tasker/types/engine_config.rb', line 64</span>
524
+
525
+ <span class='id identifier rubyid_attribute'>attribute</span> <span class='symbol'>:custom_events_directories</span><span class='comma'>,</span> <span class='const'><span class='object_link'><a href="../Types.html" title="Tasker::Types (module)">Types</a></span></span><span class='op'>::</span><span class='const'>Array</span><span class='period'>.</span><span class='id identifier rubyid_of'>of</span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="../Types.html" title="Tasker::Types (module)">Types</a></span></span><span class='op'>::</span><span class='const'>String</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_default'>default</span><span class='lparen'>(</span><span class='id identifier rubyid_proc'>proc</span> <span class='lbrace'>{</span>
526
+ <span class='id identifier rubyid_default_custom_events_directories'>default_custom_events_directories</span>
527
+ <span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_freeze'>freeze</span><span class='comma'>,</span> <span class='label'>shared:</span> <span class='kw'>true</span><span class='rparen'>)</span></pre>
528
+ </td>
529
+ </tr>
530
+ </table>
531
+ </div>
532
+
533
+
534
+ <span id=""></span>
535
+ <div class="method_details ">
536
+ <h3 class="signature " id="default_module_namespace-instance_method">
537
+
538
+ #<strong>default_module_namespace</strong> &#x21d2; <tt>String</tt><sup>?</sup> <span class="extras">(readonly)</span>
539
+
540
+
541
+
542
+
543
+
544
+ </h3><div class="docstring">
545
+ <div class="discussion">
546
+
547
+ <p>Returns Default module namespace for generated handlers.</p>
548
+
549
+
550
+ </div>
551
+ </div>
552
+ <div class="tags">
553
+
554
+ <p class="tag_title">Returns:</p>
555
+ <ul class="return">
556
+
557
+ <li>
558
+
559
+
560
+ <span class='type'>(<tt>String</tt>, <tt>nil</tt>)</span>
561
+
562
+
563
+
564
+ &mdash;
565
+ <div class='inline'>
566
+ <p>Default module namespace for generated handlers</p>
567
+ </div>
568
+
569
+ </li>
570
+
571
+ </ul>
572
+
573
+ </div><table class="source_code">
574
+ <tr>
575
+ <td>
576
+ <pre class="lines">
577
+
578
+
579
+ 46</pre>
580
+ </td>
581
+ <td>
582
+ <pre class="code"><span class="info file"># File 'lib/tasker/types/engine_config.rb', line 46</span>
583
+
584
+ <span class='id identifier rubyid_attribute?'>attribute?</span> <span class='symbol'>:default_module_namespace</span><span class='comma'>,</span> <span class='const'><span class='object_link'><a href="../Types.html" title="Tasker::Types (module)">Types</a></span></span><span class='op'>::</span><span class='const'>String</span><span class='period'>.</span><span class='id identifier rubyid_optional'>optional</span><span class='period'>.</span><span class='id identifier rubyid_default'>default</span><span class='lparen'>(</span><span class='kw'>nil</span><span class='rparen'>)</span></pre>
585
+ </td>
586
+ </tr>
587
+ </table>
588
+ </div>
589
+
590
+
591
+ <span id=""></span>
592
+ <div class="method_details ">
593
+ <h3 class="signature " id="identity_strategy-instance_method">
594
+
595
+ #<strong>identity_strategy</strong> &#x21d2; <tt>Symbol</tt> <span class="extras">(readonly)</span>
596
+
597
+
598
+
599
+
600
+
601
+ </h3><div class="docstring">
602
+ <div class="discussion">
603
+
604
+ <p>Returns Identity strategy (:default, :hash, :custom).</p>
605
+
606
+
607
+ </div>
608
+ </div>
609
+ <div class="tags">
610
+
611
+ <p class="tag_title">Returns:</p>
612
+ <ul class="return">
613
+
614
+ <li>
615
+
616
+
617
+ <span class='type'>(<tt>Symbol</tt>)</span>
618
+
619
+
620
+
621
+ &mdash;
622
+ <div class='inline'>
623
+ <p>Identity strategy (:default, :hash, :custom)</p>
624
+ </div>
625
+
626
+ </li>
627
+
628
+ </ul>
629
+
630
+ </div><table class="source_code">
631
+ <tr>
632
+ <td>
633
+ <pre class="lines">
634
+
635
+
636
+ 52</pre>
637
+ </td>
638
+ <td>
639
+ <pre class="code"><span class="info file"># File 'lib/tasker/types/engine_config.rb', line 52</span>
640
+
641
+ <span class='id identifier rubyid_attribute'>attribute</span> <span class='symbol'>:identity_strategy</span><span class='comma'>,</span> <span class='const'><span class='object_link'><a href="../Types.html" title="Tasker::Types (module)">Types</a></span></span><span class='op'>::</span><span class='const'>Symbol</span><span class='period'>.</span><span class='id identifier rubyid_default'>default</span><span class='lparen'>(</span><span class='symbol'>:default</span><span class='rparen'>)</span></pre>
642
+ </td>
643
+ </tr>
644
+ </table>
645
+ </div>
646
+
647
+
648
+ <span id=""></span>
649
+ <div class="method_details ">
650
+ <h3 class="signature " id="identity_strategy_class-instance_method">
651
+
652
+ #<strong>identity_strategy_class</strong> &#x21d2; <tt>String</tt><sup>?</sup> <span class="extras">(readonly)</span>
653
+
654
+
655
+
656
+
657
+
658
+ </h3><div class="docstring">
659
+ <div class="discussion">
660
+
661
+ <p>Returns Custom identity strategy class name.</p>
662
+
663
+
664
+ </div>
665
+ </div>
666
+ <div class="tags">
667
+
668
+ <p class="tag_title">Returns:</p>
669
+ <ul class="return">
670
+
671
+ <li>
672
+
673
+
674
+ <span class='type'>(<tt>String</tt>, <tt>nil</tt>)</span>
675
+
676
+
677
+
678
+ &mdash;
679
+ <div class='inline'>
680
+ <p>Custom identity strategy class name</p>
681
+ </div>
682
+
683
+ </li>
684
+
685
+ </ul>
686
+
687
+ </div><table class="source_code">
688
+ <tr>
689
+ <td>
690
+ <pre class="lines">
691
+
692
+
693
+ 58</pre>
694
+ </td>
695
+ <td>
696
+ <pre class="code"><span class="info file"># File 'lib/tasker/types/engine_config.rb', line 58</span>
697
+
698
+ <span class='id identifier rubyid_attribute?'>attribute?</span> <span class='symbol'>:identity_strategy_class</span><span class='comma'>,</span> <span class='const'><span class='object_link'><a href="../Types.html" title="Tasker::Types (module)">Types</a></span></span><span class='op'>::</span><span class='const'>String</span><span class='period'>.</span><span class='id identifier rubyid_optional'>optional</span><span class='period'>.</span><span class='id identifier rubyid_default'>default</span><span class='lparen'>(</span><span class='kw'>nil</span><span class='rparen'>)</span></pre>
699
+ </td>
700
+ </tr>
701
+ </table>
702
+ </div>
703
+
704
+
705
+ <span id=""></span>
706
+ <div class="method_details ">
707
+ <h3 class="signature " id="task_config_directory-instance_method">
708
+
709
+ #<strong>task_config_directory</strong> &#x21d2; <tt>String</tt> <span class="extras">(readonly)</span>
710
+
711
+
712
+
713
+
714
+
715
+ </h3><div class="docstring">
716
+ <div class="discussion">
717
+
718
+ <p>Returns Task configuration directory path.</p>
719
+
720
+
721
+ </div>
722
+ </div>
723
+ <div class="tags">
724
+
725
+ <p class="tag_title">Returns:</p>
726
+ <ul class="return">
727
+
728
+ <li>
729
+
730
+
731
+ <span class='type'>(<tt>String</tt>)</span>
732
+
733
+
734
+
735
+ &mdash;
736
+ <div class='inline'>
737
+ <p>Task configuration directory path</p>
738
+ </div>
739
+
740
+ </li>
741
+
742
+ </ul>
743
+
744
+ </div><table class="source_code">
745
+ <tr>
746
+ <td>
747
+ <pre class="lines">
748
+
749
+
750
+ 40</pre>
751
+ </td>
752
+ <td>
753
+ <pre class="code"><span class="info file"># File 'lib/tasker/types/engine_config.rb', line 40</span>
754
+
755
+ <span class='id identifier rubyid_attribute'>attribute</span> <span class='symbol'>:task_config_directory</span><span class='comma'>,</span> <span class='const'><span class='object_link'><a href="../Types.html" title="Tasker::Types (module)">Types</a></span></span><span class='op'>::</span><span class='const'>String</span><span class='period'>.</span><span class='id identifier rubyid_default'>default</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>tasker/tasks</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span></pre>
756
+ </td>
757
+ </tr>
758
+ </table>
759
+ </div>
760
+
761
+
762
+ <span id=""></span>
763
+ <div class="method_details ">
764
+ <h3 class="signature " id="task_handler_directory-instance_method">
765
+
766
+ #<strong>task_handler_directory</strong> &#x21d2; <tt>String</tt> <span class="extras">(readonly)</span>
767
+
768
+
769
+
770
+
771
+
772
+ </h3><div class="docstring">
773
+ <div class="discussion">
774
+
775
+ <p>Returns Task handler directory path.</p>
776
+
777
+
778
+ </div>
779
+ </div>
780
+ <div class="tags">
781
+
782
+ <p class="tag_title">Returns:</p>
783
+ <ul class="return">
784
+
785
+ <li>
786
+
787
+
788
+ <span class='type'>(<tt>String</tt>)</span>
789
+
790
+
791
+
792
+ &mdash;
793
+ <div class='inline'>
794
+ <p>Task handler directory path</p>
795
+ </div>
796
+
797
+ </li>
798
+
799
+ </ul>
800
+
801
+ </div><table class="source_code">
802
+ <tr>
803
+ <td>
804
+ <pre class="lines">
805
+
806
+
807
+ 34</pre>
808
+ </td>
809
+ <td>
810
+ <pre class="code"><span class="info file"># File 'lib/tasker/types/engine_config.rb', line 34</span>
811
+
812
+ <span class='id identifier rubyid_attribute'>attribute</span> <span class='symbol'>:task_handler_directory</span><span class='comma'>,</span> <span class='const'><span class='object_link'><a href="../Types.html" title="Tasker::Types (module)">Types</a></span></span><span class='op'>::</span><span class='const'>String</span><span class='period'>.</span><span class='id identifier rubyid_default'>default</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>tasks</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span></pre>
813
+ </td>
814
+ </tr>
815
+ </table>
816
+ </div>
817
+
818
+ </div>
819
+
820
+
821
+ <div id="class_method_details" class="method_details_list">
822
+ <h2>Class Method Details</h2>
823
+
824
+
825
+ <div class="method_details first">
826
+ <h3 class="signature first" id="default_custom_events_directories-class_method">
827
+
828
+ .<strong>default_custom_events_directories</strong> &#x21d2; <tt>Array&lt;String&gt;</tt>
829
+
830
+
831
+
832
+
833
+
834
+ </h3><div class="docstring">
835
+ <div class="discussion">
836
+
837
+ <p>Get default custom events directories</p>
838
+
839
+
840
+ </div>
841
+ </div>
842
+ <div class="tags">
843
+
844
+ <p class="tag_title">Returns:</p>
845
+ <ul class="return">
846
+
847
+ <li>
848
+
849
+
850
+ <span class='type'>(<tt>Array&lt;String&gt;</tt>)</span>
851
+
852
+
853
+
854
+ &mdash;
855
+ <div class='inline'>
856
+ <p>Default directories to search for custom events</p>
857
+ </div>
858
+
859
+ </li>
860
+
861
+ </ul>
862
+
863
+ </div><table class="source_code">
864
+ <tr>
865
+ <td>
866
+ <pre class="lines">
867
+
868
+
869
+ 71
870
+ 72
871
+ 73
872
+ 74
873
+ 75</pre>
874
+ </td>
875
+ <td>
876
+ <pre class="code"><span class="info file"># File 'lib/tasker/types/engine_config.rb', line 71</span>
877
+
878
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_default_custom_events_directories'>default_custom_events_directories</span>
879
+ <span class='lbracket'>[</span>
880
+ <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>config/tasker/events</span><span class='tstring_end'>&#39;</span></span>
881
+ <span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_freeze'>freeze</span>
882
+ <span class='kw'>end</span></pre>
883
+ </td>
884
+ </tr>
885
+ </table>
886
+ </div>
887
+
888
+ </div>
889
+
890
+ <div id="instance_method_details" class="method_details_list">
891
+ <h2>Instance Method Details</h2>
892
+
893
+
894
+ <div class="method_details first">
895
+ <h3 class="signature first" id="add_custom_events_directories-instance_method">
896
+
897
+ #<strong>add_custom_events_directories</strong>(*directories) &#x21d2; <tt><span class='object_link'><a href="" title="Tasker::Types::EngineConfig (class)">EngineConfig</a></span></tt>
898
+
899
+
900
+
901
+
902
+
903
+ </h3><div class="docstring">
904
+ <div class="discussion">
905
+
906
+ <p>Add custom event directories to the existing configuration</p>
907
+
908
+ <p>Since dry-struct types are immutable, this returns a new instance.</p>
909
+
910
+
911
+ </div>
912
+ </div>
913
+ <div class="tags">
914
+ <p class="tag_title">Parameters:</p>
915
+ <ul class="param">
916
+
917
+ <li>
918
+
919
+ <span class='name'>directories</span>
920
+
921
+
922
+ <span class='type'>(<tt>Array&lt;String&gt;</tt>)</span>
923
+
924
+
925
+
926
+ &mdash;
927
+ <div class='inline'>
928
+ <p>Additional directories to search for events</p>
929
+ </div>
930
+
931
+ </li>
932
+
933
+ </ul>
934
+
935
+ <p class="tag_title">Returns:</p>
936
+ <ul class="return">
937
+
938
+ <li>
939
+
940
+
941
+ <span class='type'>(<tt><span class='object_link'><a href="" title="Tasker::Types::EngineConfig (class)">EngineConfig</a></span></tt>)</span>
942
+
943
+
944
+
945
+ &mdash;
946
+ <div class='inline'>
947
+ <p>New instance with updated directories</p>
948
+ </div>
949
+
950
+ </li>
951
+
952
+ </ul>
953
+
954
+ </div><table class="source_code">
955
+ <tr>
956
+ <td>
957
+ <pre class="lines">
958
+
959
+
960
+ 108
961
+ 109
962
+ 110
963
+ 111</pre>
964
+ </td>
965
+ <td>
966
+ <pre class="code"><span class="info file"># File 'lib/tasker/types/engine_config.rb', line 108</span>
967
+
968
+ <span class='kw'>def</span> <span class='id identifier rubyid_add_custom_events_directories'>add_custom_events_directories</span><span class='lparen'>(</span><span class='op'>*</span><span class='id identifier rubyid_directories'>directories</span><span class='rparen'>)</span>
969
+ <span class='id identifier rubyid_new_directories'>new_directories</span> <span class='op'>=</span> <span class='lparen'>(</span><span class='id identifier rubyid_custom_events_directories'>custom_events_directories</span> <span class='op'>+</span> <span class='id identifier rubyid_directories'>directories</span><span class='period'>.</span><span class='id identifier rubyid_flatten'>flatten</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_uniq'>uniq</span>
970
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_to_h'>to_h</span><span class='period'>.</span><span class='id identifier rubyid_merge'>merge</span><span class='lparen'>(</span><span class='label'>custom_events_directories:</span> <span class='id identifier rubyid_new_directories'>new_directories</span><span class='rparen'>)</span><span class='rparen'>)</span>
971
+ <span class='kw'>end</span></pre>
972
+ </td>
973
+ </tr>
974
+ </table>
975
+ </div>
976
+
977
+ <div class="method_details ">
978
+ <h3 class="signature " id="identity_strategy_instance-instance_method">
979
+
980
+ #<strong>identity_strategy_instance</strong> &#x21d2; <tt><span class='object_link'><a href="../IdentityStrategy.html" title="Tasker::IdentityStrategy (class)">Tasker::IdentityStrategy</a></span></tt>
981
+
982
+
983
+
984
+
985
+
986
+ </h3><div class="docstring">
987
+ <div class="discussion">
988
+
989
+ <p>Creates and returns an appropriate identity strategy instance</p>
990
+
991
+
992
+ </div>
993
+ </div>
994
+ <div class="tags">
995
+
996
+ <p class="tag_title">Returns:</p>
997
+ <ul class="return">
998
+
999
+ <li>
1000
+
1001
+
1002
+ <span class='type'>(<tt><span class='object_link'><a href="../IdentityStrategy.html" title="Tasker::IdentityStrategy (class)">Tasker::IdentityStrategy</a></span></tt>)</span>
1003
+
1004
+
1005
+
1006
+ &mdash;
1007
+ <div class='inline'>
1008
+ <p>The identity strategy instance</p>
1009
+ </div>
1010
+
1011
+ </li>
1012
+
1013
+ </ul>
1014
+ <p class="tag_title">Raises:</p>
1015
+ <ul class="raise">
1016
+
1017
+ <li>
1018
+
1019
+
1020
+ <span class='type'>(<tt>ArgumentError</tt>)</span>
1021
+
1022
+
1023
+
1024
+ &mdash;
1025
+ <div class='inline'>
1026
+ <p>If an invalid strategy is specified</p>
1027
+ </div>
1028
+
1029
+ </li>
1030
+
1031
+ </ul>
1032
+
1033
+ </div><table class="source_code">
1034
+ <tr>
1035
+ <td>
1036
+ <pre class="lines">
1037
+
1038
+
1039
+ 81
1040
+ 82
1041
+ 83
1042
+ 84
1043
+ 85
1044
+ 86
1045
+ 87
1046
+ 88
1047
+ 89
1048
+ 90
1049
+ 91
1050
+ 92
1051
+ 93
1052
+ 94
1053
+ 95
1054
+ 96
1055
+ 97
1056
+ 98
1057
+ 99
1058
+ 100</pre>
1059
+ </td>
1060
+ <td>
1061
+ <pre class="code"><span class="info file"># File 'lib/tasker/types/engine_config.rb', line 81</span>
1062
+
1063
+ <span class='kw'>def</span> <span class='id identifier rubyid_identity_strategy_instance'>identity_strategy_instance</span>
1064
+ <span class='kw'>case</span> <span class='id identifier rubyid_identity_strategy'>identity_strategy</span>
1065
+ <span class='kw'>when</span> <span class='symbol'>:default</span>
1066
+ <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="../IdentityStrategy.html" title="Tasker::IdentityStrategy (class)">IdentityStrategy</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
1067
+ <span class='kw'>when</span> <span class='symbol'>:hash</span>
1068
+ <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="../HashIdentityStrategy.html" title="Tasker::HashIdentityStrategy (class)">HashIdentityStrategy</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
1069
+ <span class='kw'>when</span> <span class='symbol'>:custom</span>
1070
+ <span class='kw'>if</span> <span class='id identifier rubyid_identity_strategy_class'>identity_strategy_class</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
1071
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>Custom identity strategy selected but no identity_strategy_class provided</span><span class='tstring_end'>&#39;</span></span>
1072
+ <span class='kw'>end</span>
1073
+
1074
+ <span class='kw'>begin</span>
1075
+ <span class='id identifier rubyid_identity_strategy_class'>identity_strategy_class</span><span class='period'>.</span><span class='id identifier rubyid_constantize'>constantize</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
1076
+ <span class='kw'>rescue</span> <span class='const'>NameError</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_e'>e</span>
1077
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Invalid identity_strategy_class: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_e'>e</span><span class='period'>.</span><span class='id identifier rubyid_message'>message</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
1078
+ <span class='kw'>end</span>
1079
+ <span class='kw'>else</span>
1080
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Unknown identity_strategy: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_identity_strategy'>identity_strategy</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
1081
+ <span class='kw'>end</span>
1082
+ <span class='kw'>end</span></pre>
1083
+ </td>
1084
+ </tr>
1085
+ </table>
1086
+ </div>
1087
+
1088
+ <div class="method_details ">
1089
+ <h3 class="signature " id="set_custom_events_directories-instance_method">
1090
+
1091
+ #<strong>set_custom_events_directories</strong>(directories) &#x21d2; <tt><span class='object_link'><a href="" title="Tasker::Types::EngineConfig (class)">EngineConfig</a></span></tt>
1092
+
1093
+
1094
+
1095
+
1096
+
1097
+ </h3><div class="docstring">
1098
+ <div class="discussion">
1099
+
1100
+ <p>Set custom event directories (replaces the default list)</p>
1101
+
1102
+ <p>Since dry-struct types are immutable, this returns a new instance.</p>
1103
+
1104
+
1105
+ </div>
1106
+ </div>
1107
+ <div class="tags">
1108
+ <p class="tag_title">Parameters:</p>
1109
+ <ul class="param">
1110
+
1111
+ <li>
1112
+
1113
+ <span class='name'>directories</span>
1114
+
1115
+
1116
+ <span class='type'>(<tt>Array&lt;String&gt;</tt>)</span>
1117
+
1118
+
1119
+
1120
+ &mdash;
1121
+ <div class='inline'>
1122
+ <p>Directories to search for events</p>
1123
+ </div>
1124
+
1125
+ </li>
1126
+
1127
+ </ul>
1128
+
1129
+ <p class="tag_title">Returns:</p>
1130
+ <ul class="return">
1131
+
1132
+ <li>
1133
+
1134
+
1135
+ <span class='type'>(<tt><span class='object_link'><a href="" title="Tasker::Types::EngineConfig (class)">EngineConfig</a></span></tt>)</span>
1136
+
1137
+
1138
+
1139
+ &mdash;
1140
+ <div class='inline'>
1141
+ <p>New instance with updated directories</p>
1142
+ </div>
1143
+
1144
+ </li>
1145
+
1146
+ </ul>
1147
+
1148
+ </div><table class="source_code">
1149
+ <tr>
1150
+ <td>
1151
+ <pre class="lines">
1152
+
1153
+
1154
+ 119
1155
+ 120
1156
+ 121</pre>
1157
+ </td>
1158
+ <td>
1159
+ <pre class="code"><span class="info file"># File 'lib/tasker/types/engine_config.rb', line 119</span>
1160
+
1161
+ <span class='kw'>def</span> <span class='id identifier rubyid_set_custom_events_directories'>set_custom_events_directories</span><span class='lparen'>(</span><span class='id identifier rubyid_directories'>directories</span><span class='rparen'>)</span>
1162
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_to_h'>to_h</span><span class='period'>.</span><span class='id identifier rubyid_merge'>merge</span><span class='lparen'>(</span><span class='label'>custom_events_directories:</span> <span class='id identifier rubyid_directories'>directories</span><span class='period'>.</span><span class='id identifier rubyid_flatten'>flatten</span><span class='rparen'>)</span><span class='rparen'>)</span>
1163
+ <span class='kw'>end</span></pre>
1164
+ </td>
1165
+ </tr>
1166
+ </table>
1167
+ </div>
1168
+
1169
+ </div>
1170
+
1171
+ </div>
1172
+
1173
+ <div id="footer">
1174
+ Generated on Tue Jul 1 16:47:37 2025 by
1175
+ <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1176
+ 0.9.37 (ruby-3.2.4).
1177
+ </div>
1178
+
1179
+ </div>
1180
+ </body>
1181
+ </html>