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.
- checksums.yaml +7 -0
- data/LICENSE +22 -0
- data/README.md +443 -0
- data/Rakefile +10 -0
- data/app/controllers/tasker/analytics_controller.rb +179 -0
- data/app/controllers/tasker/application_controller.rb +45 -0
- data/app/controllers/tasker/graphql_controller.rb +193 -0
- data/app/controllers/tasker/handlers_controller.rb +217 -0
- data/app/controllers/tasker/health_controller.rb +229 -0
- data/app/controllers/tasker/metrics_controller.rb +111 -0
- data/app/controllers/tasker/page_sort.rb +97 -0
- data/app/controllers/tasker/task_diagrams_controller.rb +30 -0
- data/app/controllers/tasker/tasks_controller.rb +123 -0
- data/app/controllers/tasker/workflow_steps_controller.rb +69 -0
- data/app/graphql/examples/all_tasks.graphql +22 -0
- data/app/graphql/examples/pending_tasks.graphql +23 -0
- data/app/graphql/tasker/graph_ql_types/annotation_type.rb +14 -0
- data/app/graphql/tasker/graph_ql_types/base_argument.rb +9 -0
- data/app/graphql/tasker/graph_ql_types/base_connection.rb +11 -0
- data/app/graphql/tasker/graph_ql_types/base_edge.rb +10 -0
- data/app/graphql/tasker/graph_ql_types/base_enum.rb +9 -0
- data/app/graphql/tasker/graph_ql_types/base_field.rb +10 -0
- data/app/graphql/tasker/graph_ql_types/base_input_object.rb +10 -0
- data/app/graphql/tasker/graph_ql_types/base_interface.rb +14 -0
- data/app/graphql/tasker/graph_ql_types/base_object.rb +10 -0
- data/app/graphql/tasker/graph_ql_types/base_scalar.rb +9 -0
- data/app/graphql/tasker/graph_ql_types/base_union.rb +11 -0
- data/app/graphql/tasker/graph_ql_types/dependent_system_object_map_type.rb +18 -0
- data/app/graphql/tasker/graph_ql_types/dependent_system_type.rb +13 -0
- data/app/graphql/tasker/graph_ql_types/mutation_type.rb +16 -0
- data/app/graphql/tasker/graph_ql_types/named_step_type.rb +16 -0
- data/app/graphql/tasker/graph_ql_types/named_task_type.rb +14 -0
- data/app/graphql/tasker/graph_ql_types/named_tasks_named_step_type.rb +19 -0
- data/app/graphql/tasker/graph_ql_types/node_type.rb +12 -0
- data/app/graphql/tasker/graph_ql_types/query_type.rb +20 -0
- data/app/graphql/tasker/graph_ql_types/task_annotation_type.rb +17 -0
- data/app/graphql/tasker/graph_ql_types/task_interface.rb +17 -0
- data/app/graphql/tasker/graph_ql_types/task_type.rb +26 -0
- data/app/graphql/tasker/graph_ql_types/workflow_step_type.rb +154 -0
- data/app/graphql/tasker/graph_ql_types.rb +42 -0
- data/app/graphql/tasker/mutations/base_mutation.rb +13 -0
- data/app/graphql/tasker/mutations/cancel_step.rb +29 -0
- data/app/graphql/tasker/mutations/cancel_task.rb +29 -0
- data/app/graphql/tasker/mutations/create_task.rb +52 -0
- data/app/graphql/tasker/mutations/update_step.rb +36 -0
- data/app/graphql/tasker/mutations/update_task.rb +41 -0
- data/app/graphql/tasker/queries/all_annotation_types.rb +17 -0
- data/app/graphql/tasker/queries/all_tasks.rb +23 -0
- data/app/graphql/tasker/queries/base_query.rb +9 -0
- data/app/graphql/tasker/queries/helpers.rb +16 -0
- data/app/graphql/tasker/queries/one_step.rb +24 -0
- data/app/graphql/tasker/queries/one_task.rb +18 -0
- data/app/graphql/tasker/queries/tasks_by_annotation.rb +31 -0
- data/app/graphql/tasker/queries/tasks_by_status.rb +30 -0
- data/app/graphql/tasker/tasker_rails_schema.rb +52 -0
- data/app/jobs/tasker/application_job.rb +8 -0
- data/app/jobs/tasker/metrics_export_job.rb +252 -0
- data/app/jobs/tasker/task_runner_job.rb +224 -0
- data/app/models/tasker/annotation_type.rb +26 -0
- data/app/models/tasker/application_record.rb +70 -0
- data/app/models/tasker/dependent_system.rb +26 -0
- data/app/models/tasker/dependent_system_object_map.rb +64 -0
- data/app/models/tasker/diagram/edge.rb +106 -0
- data/app/models/tasker/diagram/flowchart.rb +137 -0
- data/app/models/tasker/diagram/node.rb +99 -0
- data/app/models/tasker/named_step.rb +41 -0
- data/app/models/tasker/named_task.rb +121 -0
- data/app/models/tasker/named_tasks_named_step.rb +82 -0
- data/app/models/tasker/step_dag_relationship.rb +65 -0
- data/app/models/tasker/step_readiness_status.rb +59 -0
- data/app/models/tasker/task.rb +424 -0
- data/app/models/tasker/task_annotation.rb +36 -0
- data/app/models/tasker/task_diagram.rb +332 -0
- data/app/models/tasker/task_execution_context.rb +29 -0
- data/app/models/tasker/task_namespace.rb +41 -0
- data/app/models/tasker/task_transition.rb +235 -0
- data/app/models/tasker/workflow_step.rb +461 -0
- data/app/models/tasker/workflow_step_edge.rb +94 -0
- data/app/models/tasker/workflow_step_transition.rb +434 -0
- data/app/serializers/tasker/annotation_type_serializer.rb +8 -0
- data/app/serializers/tasker/handler_serializer.rb +109 -0
- data/app/serializers/tasker/task_annotation_serializer.rb +32 -0
- data/app/serializers/tasker/task_serializer.rb +168 -0
- data/app/serializers/tasker/workflow_step_serializer.rb +27 -0
- data/app/services/tasker/analytics_service.rb +409 -0
- data/app/views/tasker/task/_diagram.html.erb +32 -0
- data/config/initializers/dry_struct.rb +11 -0
- data/config/initializers/statesman.rb +6 -0
- data/config/initializers/tasker_orchestration.rb +17 -0
- data/config/initializers/time_formats.rb +4 -0
- data/config/routes.rb +34 -0
- data/config/tasker/subscriptions/example_integrations.yml +67 -0
- data/config/tasker/system_events.yml +305 -0
- data/db/functions/calculate_dependency_levels_v01.sql +45 -0
- data/db/functions/get_analytics_metrics_v01.sql +137 -0
- data/db/functions/get_slowest_steps_v01.sql +82 -0
- data/db/functions/get_slowest_tasks_v01.sql +96 -0
- data/db/functions/get_step_readiness_status_batch_v01.sql +140 -0
- data/db/functions/get_step_readiness_status_v01.sql +139 -0
- data/db/functions/get_system_health_counts_v01.sql +108 -0
- data/db/functions/get_task_execution_context_v01.sql +108 -0
- data/db/functions/get_task_execution_contexts_batch_v01.sql +104 -0
- data/db/init/schema.sql +2277 -0
- data/db/migrate/20250701165431_initial_tasker_schema.rb +116 -0
- data/db/views/tasker_step_dag_relationships_v01.sql +69 -0
- data/docs/APPLICATION_GENERATOR.md +384 -0
- data/docs/AUTH.md +1780 -0
- data/docs/CIRCUIT_BREAKER.md +224 -0
- data/docs/DEVELOPER_GUIDE.md +2665 -0
- data/docs/EVENT_SYSTEM.md +637 -0
- data/docs/EXECUTION_CONFIGURATION.md +341 -0
- data/docs/FLOW_CHART.md +149 -0
- data/docs/HEALTH.md +542 -0
- data/docs/METRICS.md +731 -0
- data/docs/OPTIMIZATION_PLAN.md +1479 -0
- data/docs/OVERVIEW.md +552 -0
- data/docs/QUICK_START.md +270 -0
- data/docs/REGISTRY_SYSTEMS.md +373 -0
- data/docs/REST_API.md +632 -0
- data/docs/ROADMAP.md +221 -0
- data/docs/SQL_FUNCTIONS.md +1408 -0
- data/docs/TASK_DIAGRAM.md +252 -0
- data/docs/TASK_EXECUTION_CONTROL_FLOW.md +237 -0
- data/docs/TELEMETRY.md +795 -0
- data/docs/TROUBLESHOOTING.md +756 -0
- data/docs/TaskHandlerGenerator.html +255 -0
- data/docs/Tasker/Analysis/RuntimeGraphAnalyzer.html +907 -0
- data/docs/Tasker/Analysis/TemplateGraphAnalyzer.html +1236 -0
- data/docs/Tasker/Analysis.html +117 -0
- data/docs/Tasker/AnalyticsController.html +450 -0
- data/docs/Tasker/AnalyticsService/BottleneckAnalytics.html +816 -0
- data/docs/Tasker/AnalyticsService/PerformanceAnalytics.html +586 -0
- data/docs/Tasker/AnalyticsService.html +2221 -0
- data/docs/Tasker/AnnotationType.html +137 -0
- data/docs/Tasker/AnnotationTypeSerializer.html +124 -0
- data/docs/Tasker/ApplicationController.html +147 -0
- data/docs/Tasker/ApplicationJob.html +128 -0
- data/docs/Tasker/ApplicationRecord.html +378 -0
- data/docs/Tasker/Authentication/AuthenticationError.html +124 -0
- data/docs/Tasker/Authentication/ConfigurationError.html +124 -0
- data/docs/Tasker/Authentication/Coordinator.html +242 -0
- data/docs/Tasker/Authentication/Interface.html +560 -0
- data/docs/Tasker/Authentication/InterfaceError.html +124 -0
- data/docs/Tasker/Authentication/NoneAuthenticator.html +338 -0
- data/docs/Tasker/Authentication.html +119 -0
- data/docs/Tasker/Authorization/AuthorizationError.html +139 -0
- data/docs/Tasker/Authorization/BaseCoordinator.html +927 -0
- data/docs/Tasker/Authorization/ConfigurationError.html +153 -0
- data/docs/Tasker/Authorization/ResourceConstants/ACTIONS.html +428 -0
- data/docs/Tasker/Authorization/ResourceConstants/RESOURCES.html +365 -0
- data/docs/Tasker/Authorization/ResourceConstants.html +146 -0
- data/docs/Tasker/Authorization/ResourceRegistry.html +882 -0
- data/docs/Tasker/Authorization/UnauthorizedError.html +153 -0
- data/docs/Tasker/Authorization.html +582 -0
- data/docs/Tasker/CacheCapabilities.html +167 -0
- data/docs/Tasker/CacheStrategy.html +1297 -0
- data/docs/Tasker/Concerns/Authenticatable.html +116 -0
- data/docs/Tasker/Concerns/Authorizable/AdminStatusChecker.html +256 -0
- data/docs/Tasker/Concerns/Authorizable.html +816 -0
- data/docs/Tasker/Concerns/ControllerAuthorizable.html +157 -0
- data/docs/Tasker/Concerns/EventPublisher.html +4023 -0
- data/docs/Tasker/Concerns/IdempotentStateTransitions.html +806 -0
- data/docs/Tasker/Concerns/LifecycleEventHelpers.html +129 -0
- data/docs/Tasker/Concerns/OrchestrationPublisher.html +129 -0
- data/docs/Tasker/Concerns/StateMachineBase/ClassMethods.html +1075 -0
- data/docs/Tasker/Concerns/StateMachineBase/StateMachineBase/ClassMethods.html +191 -0
- data/docs/Tasker/Concerns/StateMachineBase/StateMachineBase.html +126 -0
- data/docs/Tasker/Concerns/StateMachineBase.html +153 -0
- data/docs/Tasker/Concerns/StructuredLogging.html +1413 -0
- data/docs/Tasker/Concerns.html +117 -0
- data/docs/Tasker/Configuration/AuthConfiguration.html +1023 -0
- data/docs/Tasker/Configuration/ConfigurationProxy.html +581 -0
- data/docs/Tasker/Configuration/DatabaseConfiguration.html +475 -0
- data/docs/Tasker/Configuration/EngineConfiguration.html +1265 -0
- data/docs/Tasker/Configuration/HealthConfiguration.html +791 -0
- data/docs/Tasker/Configuration/TelemetryConfiguration.html +1308 -0
- data/docs/Tasker/Configuration/TelemetryConfigurationProxy.html +388 -0
- data/docs/Tasker/Configuration.html +1669 -0
- data/docs/Tasker/ConfigurationError.html +143 -0
- data/docs/Tasker/ConfiguredTask.html +514 -0
- data/docs/Tasker/Constants/EventDefinitions.html +590 -0
- data/docs/Tasker/Constants/LifecycleEvents.html +137 -0
- data/docs/Tasker/Constants/ObservabilityEvents/Step.html +152 -0
- data/docs/Tasker/Constants/ObservabilityEvents/Task.html +142 -0
- data/docs/Tasker/Constants/ObservabilityEvents.html +126 -0
- data/docs/Tasker/Constants/RegistryEvents.html +285 -0
- data/docs/Tasker/Constants/StepEvents.html +177 -0
- data/docs/Tasker/Constants/TaskEvents.html +167 -0
- data/docs/Tasker/Constants/TaskExecution/ExecutionStatus.html +207 -0
- data/docs/Tasker/Constants/TaskExecution/HealthStatus.html +191 -0
- data/docs/Tasker/Constants/TaskExecution/RecommendedAction.html +207 -0
- data/docs/Tasker/Constants/TaskExecution.html +126 -0
- data/docs/Tasker/Constants/TaskFinalization/ErrorMessages.html +132 -0
- data/docs/Tasker/Constants/TaskFinalization/PendingReasons.html +207 -0
- data/docs/Tasker/Constants/TaskFinalization/ReenqueueReasons.html +239 -0
- data/docs/Tasker/Constants/TaskFinalization.html +126 -0
- data/docs/Tasker/Constants/TaskStatuses.html +223 -0
- data/docs/Tasker/Constants/TestEvents.html +163 -0
- data/docs/Tasker/Constants/WorkflowEvents.html +222 -0
- data/docs/Tasker/Constants/WorkflowStepStatuses.html +223 -0
- data/docs/Tasker/Constants.html +561 -0
- data/docs/Tasker/DependentSystem.html +137 -0
- data/docs/Tasker/DependentSystemObjectMap.html +250 -0
- data/docs/Tasker/DetectorRegistry.html +598 -0
- data/docs/Tasker/Diagram/Edge.html +1191 -0
- data/docs/Tasker/Diagram/Flowchart.html +1539 -0
- data/docs/Tasker/Diagram/Node.html +1165 -0
- data/docs/Tasker/Diagram.html +117 -0
- data/docs/Tasker/Engine.html +215 -0
- data/docs/Tasker/Error.html +139 -0
- data/docs/Tasker/Events/Bus.html +1226 -0
- data/docs/Tasker/Events/Catalog/CatalogPrinter.html +258 -0
- data/docs/Tasker/Events/Catalog/CustomEventRegistrar.html +276 -0
- data/docs/Tasker/Events/Catalog/ExamplePayloadGenerator.html +294 -0
- data/docs/Tasker/Events/Catalog.html +1291 -0
- data/docs/Tasker/Events/CustomRegistry.html +943 -0
- data/docs/Tasker/Events/DefinitionLoader.html +575 -0
- data/docs/Tasker/Events/EventPayloadBuilder/ErrorInfoExtractor.html +286 -0
- data/docs/Tasker/Events/EventPayloadBuilder/StepPayloadBuilder.html +312 -0
- data/docs/Tasker/Events/EventPayloadBuilder.html +664 -0
- data/docs/Tasker/Events/Publisher.html +365 -0
- data/docs/Tasker/Events/Subscribers/BaseSubscriber/ErrorCategorizer/ErrorTypeClassifier.html +1128 -0
- data/docs/Tasker/Events/Subscribers/BaseSubscriber/ErrorCategorizer.html +270 -0
- data/docs/Tasker/Events/Subscribers/BaseSubscriber/MetricTagsExtractor.html +266 -0
- data/docs/Tasker/Events/Subscribers/BaseSubscriber.html +2556 -0
- data/docs/Tasker/Events/Subscribers/MetricsSubscriber.html +723 -0
- data/docs/Tasker/Events/Subscribers/TelemetrySubscriber.html +2251 -0
- data/docs/Tasker/Events/Subscribers.html +117 -0
- data/docs/Tasker/Events/SubscriptionLoader.html +493 -0
- data/docs/Tasker/Events.html +294 -0
- data/docs/Tasker/EventsGenerator.html +459 -0
- data/docs/Tasker/Functions/FunctionBasedAnalyticsMetrics/AnalyticsMetrics.html +135 -0
- data/docs/Tasker/Functions/FunctionBasedAnalyticsMetrics.html +412 -0
- data/docs/Tasker/Functions/FunctionBasedDependencyLevels.html +598 -0
- data/docs/Tasker/Functions/FunctionBasedSlowestSteps/SlowestStep.html +135 -0
- data/docs/Tasker/Functions/FunctionBasedSlowestSteps.html +453 -0
- data/docs/Tasker/Functions/FunctionBasedSlowestTasks/SlowestTask.html +135 -0
- data/docs/Tasker/Functions/FunctionBasedSlowestTasks.html +453 -0
- data/docs/Tasker/Functions/FunctionBasedStepReadinessStatus.html +1457 -0
- data/docs/Tasker/Functions/FunctionBasedSystemHealthCounts/HealthMetrics.html +135 -0
- data/docs/Tasker/Functions/FunctionBasedSystemHealthCounts.html +370 -0
- data/docs/Tasker/Functions/FunctionBasedTaskExecutionContext.html +1250 -0
- data/docs/Tasker/Functions/FunctionWrapper.html +479 -0
- data/docs/Tasker/Functions.html +117 -0
- data/docs/Tasker/Generators/AuthenticatorGenerator/UsageInstructionsFormatter.html +244 -0
- data/docs/Tasker/Generators/AuthenticatorGenerator.html +373 -0
- data/docs/Tasker/Generators/AuthorizationCoordinatorGenerator.html +430 -0
- data/docs/Tasker/Generators/SubscriberGenerator.html +377 -0
- data/docs/Tasker/Generators/TaskHandlerGenerator.html +263 -0
- data/docs/Tasker/Generators.html +117 -0
- data/docs/Tasker/GraphQLTypes/AnnotationType.html +132 -0
- data/docs/Tasker/GraphQLTypes/BaseArgument.html +124 -0
- data/docs/Tasker/GraphQLTypes/BaseConnection.html +124 -0
- data/docs/Tasker/GraphQLTypes/BaseEdge.html +130 -0
- data/docs/Tasker/GraphQLTypes/BaseEnum.html +124 -0
- data/docs/Tasker/GraphQLTypes/BaseField.html +124 -0
- data/docs/Tasker/GraphQLTypes/BaseInputObject.html +124 -0
- data/docs/Tasker/GraphQLTypes/BaseInterface.html +116 -0
- data/docs/Tasker/GraphQLTypes/BaseObject.html +128 -0
- data/docs/Tasker/GraphQLTypes/BaseScalar.html +124 -0
- data/docs/Tasker/GraphQLTypes/BaseUnion.html +124 -0
- data/docs/Tasker/GraphQLTypes/DependentSystemObjectMapType.html +132 -0
- data/docs/Tasker/GraphQLTypes/DependentSystemType.html +132 -0
- data/docs/Tasker/GraphQLTypes/MutationType.html +132 -0
- data/docs/Tasker/GraphQLTypes/NamedStepType.html +132 -0
- data/docs/Tasker/GraphQLTypes/NamedTaskType.html +132 -0
- data/docs/Tasker/GraphQLTypes/NamedTasksNamedStepType.html +132 -0
- data/docs/Tasker/GraphQLTypes/NodeType.html +118 -0
- data/docs/Tasker/GraphQLTypes/QueryType.html +139 -0
- data/docs/Tasker/GraphQLTypes/TaskAnnotationType.html +132 -0
- data/docs/Tasker/GraphQLTypes/TaskInterface.html +111 -0
- data/docs/Tasker/GraphQLTypes/TaskType.html +201 -0
- data/docs/Tasker/GraphQLTypes/WorkflowStepType.html +694 -0
- data/docs/Tasker/GraphQLTypes.html +130 -0
- data/docs/Tasker/GraphqlController.html +251 -0
- data/docs/Tasker/HandlerFactory.html +1518 -0
- data/docs/Tasker/HandlerSerializer.html +682 -0
- data/docs/Tasker/HandlersController.html +574 -0
- data/docs/Tasker/HashIdentityStrategy.html +278 -0
- data/docs/Tasker/Health/ReadinessChecker.html +712 -0
- data/docs/Tasker/Health/StatusChecker.html +653 -0
- data/docs/Tasker/Health.html +117 -0
- data/docs/Tasker/HealthController.html +523 -0
- data/docs/Tasker/IdentityStrategy.html +276 -0
- data/docs/Tasker/InvalidTaskHandlerConfig.html +135 -0
- data/docs/Tasker/LifecycleEvents/Events/Step.html +162 -0
- data/docs/Tasker/LifecycleEvents/Events/Task.html +162 -0
- data/docs/Tasker/LifecycleEvents/Events.html +204 -0
- data/docs/Tasker/LifecycleEvents/Publisher.html +132 -0
- data/docs/Tasker/LifecycleEvents.html +799 -0
- data/docs/Tasker/Logging/CorrelationIdGenerator.html +688 -0
- data/docs/Tasker/Logging.html +115 -0
- data/docs/Tasker/MetricsController.html +293 -0
- data/docs/Tasker/MetricsExportJob.html +414 -0
- data/docs/Tasker/Mutations/BaseMutation.html +128 -0
- data/docs/Tasker/Mutations/CancelStep.html +219 -0
- data/docs/Tasker/Mutations/CancelTask.html +221 -0
- data/docs/Tasker/Mutations/CreateTask.html +243 -0
- data/docs/Tasker/Mutations/UpdateStep.html +243 -0
- data/docs/Tasker/Mutations/UpdateTask.html +243 -0
- data/docs/Tasker/Mutations.html +117 -0
- data/docs/Tasker/NamedStep.html +216 -0
- data/docs/Tasker/NamedTask.html +910 -0
- data/docs/Tasker/NamedTasksNamedStep.html +435 -0
- data/docs/Tasker/Orchestration/BackoffCalculator.html +404 -0
- data/docs/Tasker/Orchestration/ConnectionBuilder/ConfigValidator.html +258 -0
- data/docs/Tasker/Orchestration/ConnectionBuilder.html +435 -0
- data/docs/Tasker/Orchestration/ConnectionPoolIntelligence.html +513 -0
- data/docs/Tasker/Orchestration/Coordinator.html +641 -0
- data/docs/Tasker/Orchestration/FutureStateAnalyzer.html +1045 -0
- data/docs/Tasker/Orchestration/Orchestrator.html +679 -0
- data/docs/Tasker/Orchestration/PluginIntegration.html +1127 -0
- data/docs/Tasker/Orchestration/ResponseProcessor.html +504 -0
- data/docs/Tasker/Orchestration/RetryHeaderParser.html +304 -0
- data/docs/Tasker/Orchestration/StepExecutor.html +995 -0
- data/docs/Tasker/Orchestration/StepSequenceFactory.html +644 -0
- data/docs/Tasker/Orchestration/TaskFinalizer/BlockageChecker.html +264 -0
- data/docs/Tasker/Orchestration/TaskFinalizer/ContextManager.html +254 -0
- data/docs/Tasker/Orchestration/TaskFinalizer/DelayCalculator.html +556 -0
- data/docs/Tasker/Orchestration/TaskFinalizer/FinalizationDecisionMaker.html +348 -0
- data/docs/Tasker/Orchestration/TaskFinalizer/FinalizationProcessor.html +286 -0
- data/docs/Tasker/Orchestration/TaskFinalizer/ReasonDeterminer.html +432 -0
- data/docs/Tasker/Orchestration/TaskFinalizer/ReenqueueManager.html +296 -0
- data/docs/Tasker/Orchestration/TaskFinalizer/UnclearStateHandler.html +314 -0
- data/docs/Tasker/Orchestration/TaskFinalizer.html +1212 -0
- data/docs/Tasker/Orchestration/TaskInitializer.html +766 -0
- data/docs/Tasker/Orchestration/TaskReenqueuer.html +506 -0
- data/docs/Tasker/Orchestration/ViableStepDiscovery.html +442 -0
- data/docs/Tasker/Orchestration/WorkflowCoordinator.html +510 -0
- data/docs/Tasker/Orchestration.html +130 -0
- data/docs/Tasker/PageSort/PageSortParamsBuilder.html +296 -0
- data/docs/Tasker/PageSort.html +247 -0
- data/docs/Tasker/PermanentError.html +518 -0
- data/docs/Tasker/ProceduralError.html +147 -0
- data/docs/Tasker/Queries/AllAnnotationTypes.html +217 -0
- data/docs/Tasker/Queries/AllTasks.html +221 -0
- data/docs/Tasker/Queries/BaseQuery.html +128 -0
- data/docs/Tasker/Queries/Helpers.html +187 -0
- data/docs/Tasker/Queries/OneStep.html +225 -0
- data/docs/Tasker/Queries/OneTask.html +217 -0
- data/docs/Tasker/Queries/TasksByAnnotation.html +231 -0
- data/docs/Tasker/Queries/TasksByStatus.html +233 -0
- data/docs/Tasker/Queries.html +119 -0
- data/docs/Tasker/Railtie.html +124 -0
- data/docs/Tasker/Registry/BaseRegistry.html +1690 -0
- data/docs/Tasker/Registry/EventPublisher.html +667 -0
- data/docs/Tasker/Registry/InterfaceValidator.html +569 -0
- data/docs/Tasker/Registry/RegistrationError.html +132 -0
- data/docs/Tasker/Registry/RegistryError.html +139 -0
- data/docs/Tasker/Registry/StatisticsCollector.html +841 -0
- data/docs/Tasker/Registry/SubscriberRegistry.html +1504 -0
- data/docs/Tasker/Registry/ValidationError.html +132 -0
- data/docs/Tasker/Registry.html +119 -0
- data/docs/Tasker/RetryableError.html +515 -0
- data/docs/Tasker/StateMachine/Compatibility.html +282 -0
- data/docs/Tasker/StateMachine/InvalidStateTransition.html +135 -0
- data/docs/Tasker/StateMachine/StepStateMachine/StandardizedPayloadBuilder.html +260 -0
- data/docs/Tasker/StateMachine/StepStateMachine.html +2215 -0
- data/docs/Tasker/StateMachine/TaskStateMachine.html +734 -0
- data/docs/Tasker/StateMachine.html +602 -0
- data/docs/Tasker/StepDagRelationship.html +657 -0
- data/docs/Tasker/StepHandler/Api/Config.html +1091 -0
- data/docs/Tasker/StepHandler/Api.html +884 -0
- data/docs/Tasker/StepHandler/AutomaticEventPublishing.html +321 -0
- data/docs/Tasker/StepHandler/Base.html +970 -0
- data/docs/Tasker/StepHandler.html +119 -0
- data/docs/Tasker/StepReadinessStatus.html +836 -0
- data/docs/Tasker/Task.html +2575 -0
- data/docs/Tasker/TaskAnnotation.html +137 -0
- data/docs/Tasker/TaskAnnotationSerializer.html +124 -0
- data/docs/Tasker/TaskBuilder/StepNameValidator.html +264 -0
- data/docs/Tasker/TaskBuilder/StepTemplateDefiner.html +264 -0
- data/docs/Tasker/TaskBuilder.html +764 -0
- data/docs/Tasker/TaskDiagram/StepToStepEdgeBuilder.html +260 -0
- data/docs/Tasker/TaskDiagram/TaskToRootStepEdgeBuilder.html +290 -0
- data/docs/Tasker/TaskDiagram.html +548 -0
- data/docs/Tasker/TaskDiagramsController.html +240 -0
- data/docs/Tasker/TaskExecutionContext.html +469 -0
- data/docs/Tasker/TaskHandler/ClassMethods/StepTemplateDefiner/ClassBasedEventRegistrar.html +238 -0
- data/docs/Tasker/TaskHandler/ClassMethods/StepTemplateDefiner/YamlEventRegistrar.html +254 -0
- data/docs/Tasker/TaskHandler/ClassMethods/StepTemplateDefiner.html +988 -0
- data/docs/Tasker/TaskHandler/ClassMethods.html +357 -0
- data/docs/Tasker/TaskHandler/InstanceMethods.html +1396 -0
- data/docs/Tasker/TaskHandler/StepGroup.html +1748 -0
- data/docs/Tasker/TaskHandler.html +271 -0
- data/docs/Tasker/TaskNamespace.html +312 -0
- data/docs/Tasker/TaskRunnerJob.html +406 -0
- data/docs/Tasker/TaskSerializer.html +474 -0
- data/docs/Tasker/TaskTransition.html +1517 -0
- data/docs/Tasker/TaskWorkflowSummary.html +988 -0
- data/docs/Tasker/TaskerRailsSchema/InvalidObjectTypeError.html +132 -0
- data/docs/Tasker/TaskerRailsSchema/TypeResolutionError.html +139 -0
- data/docs/Tasker/TaskerRailsSchema/UnknownInterfaceError.html +132 -0
- data/docs/Tasker/TaskerRailsSchema.html +384 -0
- data/docs/Tasker/TasksController.html +595 -0
- data/docs/Tasker/Telemetry/EventMapping.html +1307 -0
- data/docs/Tasker/Telemetry/EventRouter.html +2178 -0
- data/docs/Tasker/Telemetry/Events/ExportEvents.html +246 -0
- data/docs/Tasker/Telemetry/Events.html +115 -0
- data/docs/Tasker/Telemetry/ExportCoordinator/DistributedLockTimeoutError.html +135 -0
- data/docs/Tasker/Telemetry/ExportCoordinator.html +2137 -0
- data/docs/Tasker/Telemetry/IntelligentCacheManager.html +1083 -0
- data/docs/Tasker/Telemetry/LogBackend.html +1088 -0
- data/docs/Tasker/Telemetry/MetricTypes/Counter.html +1054 -0
- data/docs/Tasker/Telemetry/MetricTypes/Gauge.html +1270 -0
- data/docs/Tasker/Telemetry/MetricTypes/Histogram.html +1492 -0
- data/docs/Tasker/Telemetry/MetricTypes.html +153 -0
- data/docs/Tasker/Telemetry/MetricsBackend.html +2510 -0
- data/docs/Tasker/Telemetry/MetricsExportService.html +578 -0
- data/docs/Tasker/Telemetry/PluginRegistry.html +1774 -0
- data/docs/Tasker/Telemetry/Plugins/BaseExporter.html +1835 -0
- data/docs/Tasker/Telemetry/Plugins/CsvExporter.html +768 -0
- data/docs/Tasker/Telemetry/Plugins/JsonExporter.html +747 -0
- data/docs/Tasker/Telemetry/Plugins.html +117 -0
- data/docs/Tasker/Telemetry/PrometheusExporter.html +481 -0
- data/docs/Tasker/Telemetry/TraceBackend.html +891 -0
- data/docs/Tasker/Telemetry.html +130 -0
- data/docs/Tasker/Types/AuthConfig.html +886 -0
- data/docs/Tasker/Types/BackoffConfig.html +1063 -0
- data/docs/Tasker/Types/BaseConfig.html +227 -0
- data/docs/Tasker/Types/CacheConfig.html +1731 -0
- data/docs/Tasker/Types/DatabaseConfig.html +388 -0
- data/docs/Tasker/Types/DependencyGraph.html +526 -0
- data/docs/Tasker/Types/DependencyGraphConfig.html +753 -0
- data/docs/Tasker/Types/EngineConfig.html +1181 -0
- data/docs/Tasker/Types/ExecutionConfig.html +1963 -0
- data/docs/Tasker/Types/GraphEdge.html +517 -0
- data/docs/Tasker/Types/GraphMetadata.html +781 -0
- data/docs/Tasker/Types/GraphNode.html +694 -0
- data/docs/Tasker/Types/HealthConfig.html +784 -0
- data/docs/Tasker/Types/StepSequence.html +353 -0
- data/docs/Tasker/Types/StepTemplate.html +1193 -0
- data/docs/Tasker/Types/TaskRequest.html +1179 -0
- data/docs/Tasker/Types/TelemetryConfig.html +2746 -0
- data/docs/Tasker/Types.html +154 -0
- data/docs/Tasker/WorkflowStep/StepFinder.html +282 -0
- data/docs/Tasker/WorkflowStep.html +2724 -0
- data/docs/Tasker/WorkflowStepEdge.html +304 -0
- data/docs/Tasker/WorkflowStepSerializer.html +305 -0
- data/docs/Tasker/WorkflowStepTransition/TransitionDescriptionFormatter.html +282 -0
- data/docs/Tasker/WorkflowStepTransition.html +2201 -0
- data/docs/Tasker/WorkflowStepsController.html +462 -0
- data/docs/Tasker.html +452 -0
- data/docs/VISION.md +584 -0
- data/docs/WHY.md +21 -0
- data/docs/_index.html +2375 -0
- data/docs/class_list.html +54 -0
- data/docs/css/common.css +1 -0
- data/docs/css/full_list.css +58 -0
- data/docs/css/style.css +503 -0
- data/docs/events/migration_plan_outcomes.md +80 -0
- data/docs/file.README.html +541 -0
- data/docs/file_list.html +59 -0
- data/docs/frames.html +22 -0
- data/docs/index.html +541 -0
- data/docs/js/app.js +344 -0
- data/docs/js/full_list.js +242 -0
- data/docs/js/jquery.js +4 -0
- data/docs/method_list.html +9182 -0
- data/docs/top-level-namespace.html +110 -0
- data/lib/generators/tasker/authenticator_generator.rb +301 -0
- data/lib/generators/tasker/authorization_coordinator_generator.rb +139 -0
- data/lib/generators/tasker/events_generator.rb +91 -0
- data/lib/generators/tasker/subscriber_generator.rb +107 -0
- data/lib/generators/tasker/task_handler_generator.rb +138 -0
- data/lib/generators/tasker/templates/api_token_authenticator.rb.erb +113 -0
- data/lib/generators/tasker/templates/api_token_authenticator_spec.rb.erb +144 -0
- data/lib/generators/tasker/templates/authorization_coordinator.rb.erb +95 -0
- data/lib/generators/tasker/templates/authorization_coordinator_spec.rb.erb +142 -0
- data/lib/generators/tasker/templates/custom_authenticator.rb.erb +108 -0
- data/lib/generators/tasker/templates/custom_authenticator_spec.rb.erb +162 -0
- data/lib/generators/tasker/templates/custom_events.yml.erb +62 -0
- data/lib/generators/tasker/templates/custom_subscriber.rb.erb +72 -0
- data/lib/generators/tasker/templates/devise_authenticator.rb.erb +101 -0
- data/lib/generators/tasker/templates/devise_authenticator_spec.rb.erb +126 -0
- data/lib/generators/tasker/templates/initialize.rb.erb +202 -0
- data/lib/generators/tasker/templates/jwt_authenticator.rb.erb +144 -0
- data/lib/generators/tasker/templates/jwt_authenticator_spec.rb.erb +298 -0
- data/lib/generators/tasker/templates/metrics_subscriber.rb.erb +258 -0
- data/lib/generators/tasker/templates/metrics_subscriber_spec.rb.erb +308 -0
- data/lib/generators/tasker/templates/omniauth_authenticator.rb.erb +135 -0
- data/lib/generators/tasker/templates/omniauth_authenticator_spec.rb.erb +196 -0
- data/lib/generators/tasker/templates/opentelemetry_initializer.rb +52 -0
- data/lib/generators/tasker/templates/subscriber.rb.erb +64 -0
- data/lib/generators/tasker/templates/subscriber_spec.rb.erb +80 -0
- data/lib/generators/tasker/templates/task_config.yaml.erb +117 -0
- data/lib/generators/tasker/templates/task_handler.rb.erb +59 -0
- data/lib/generators/tasker/templates/task_handler_spec.rb.erb +159 -0
- data/lib/tasker/analysis/runtime_graph_analyzer.rb +1168 -0
- data/lib/tasker/analysis/template_graph_analyzer.rb +328 -0
- data/lib/tasker/authentication/coordinator.rb +78 -0
- data/lib/tasker/authentication/errors.rb +9 -0
- data/lib/tasker/authentication/interface.rb +36 -0
- data/lib/tasker/authentication/none_authenticator.rb +26 -0
- data/lib/tasker/authorization/base_coordinator.rb +112 -0
- data/lib/tasker/authorization/errors.rb +26 -0
- data/lib/tasker/authorization/resource_constants.rb +74 -0
- data/lib/tasker/authorization/resource_registry.rb +143 -0
- data/lib/tasker/authorization.rb +75 -0
- data/lib/tasker/cache_capabilities.rb +131 -0
- data/lib/tasker/cache_strategy.rb +469 -0
- data/lib/tasker/concerns/authenticatable.rb +41 -0
- data/lib/tasker/concerns/authorizable.rb +204 -0
- data/lib/tasker/concerns/controller_authorizable.rb +124 -0
- data/lib/tasker/concerns/event_publisher.rb +716 -0
- data/lib/tasker/concerns/idempotent_state_transitions.rb +128 -0
- data/lib/tasker/concerns/state_machine_base.rb +218 -0
- data/lib/tasker/concerns/structured_logging.rb +387 -0
- data/lib/tasker/configuration.rb +325 -0
- data/lib/tasker/constants/event_definitions.rb +147 -0
- data/lib/tasker/constants/registry_events.rb +54 -0
- data/lib/tasker/constants.rb +417 -0
- data/lib/tasker/engine.rb +90 -0
- data/lib/tasker/errors.rb +90 -0
- data/lib/tasker/events/catalog.rb +432 -0
- data/lib/tasker/events/custom_registry.rb +175 -0
- data/lib/tasker/events/definition_loader.rb +199 -0
- data/lib/tasker/events/event_payload_builder.rb +461 -0
- data/lib/tasker/events/publisher.rb +149 -0
- data/lib/tasker/events/subscribers/base_subscriber.rb +601 -0
- data/lib/tasker/events/subscribers/metrics_subscriber.rb +120 -0
- data/lib/tasker/events/subscribers/telemetry_subscriber.rb +462 -0
- data/lib/tasker/events/subscription_loader.rb +161 -0
- data/lib/tasker/events.rb +37 -0
- data/lib/tasker/functions/function_based_analytics_metrics.rb +103 -0
- data/lib/tasker/functions/function_based_dependency_levels.rb +54 -0
- data/lib/tasker/functions/function_based_slowest_steps.rb +84 -0
- data/lib/tasker/functions/function_based_slowest_tasks.rb +84 -0
- data/lib/tasker/functions/function_based_step_readiness_status.rb +183 -0
- data/lib/tasker/functions/function_based_system_health_counts.rb +94 -0
- data/lib/tasker/functions/function_based_task_execution_context.rb +148 -0
- data/lib/tasker/functions/function_wrapper.rb +42 -0
- data/lib/tasker/functions.rb +12 -0
- data/lib/tasker/handler_factory.rb +322 -0
- data/lib/tasker/health/readiness_checker.rb +186 -0
- data/lib/tasker/health/status_checker.rb +203 -0
- data/lib/tasker/identity_strategy.rb +38 -0
- data/lib/tasker/logging/correlation_id_generator.rb +120 -0
- data/lib/tasker/orchestration/backoff_calculator.rb +184 -0
- data/lib/tasker/orchestration/connection_builder.rb +122 -0
- data/lib/tasker/orchestration/connection_pool_intelligence.rb +177 -0
- data/lib/tasker/orchestration/coordinator.rb +119 -0
- data/lib/tasker/orchestration/future_state_analyzer.rb +137 -0
- data/lib/tasker/orchestration/plugin_integration.rb +124 -0
- data/lib/tasker/orchestration/response_processor.rb +168 -0
- data/lib/tasker/orchestration/retry_header_parser.rb +78 -0
- data/lib/tasker/orchestration/step_executor.rb +941 -0
- data/lib/tasker/orchestration/step_sequence_factory.rb +67 -0
- data/lib/tasker/orchestration/task_finalizer.rb +564 -0
- data/lib/tasker/orchestration/task_initializer.rb +140 -0
- data/lib/tasker/orchestration/task_reenqueuer.rb +71 -0
- data/lib/tasker/orchestration/viable_step_discovery.rb +65 -0
- data/lib/tasker/orchestration/workflow_coordinator.rb +294 -0
- data/lib/tasker/orchestration.rb +45 -0
- data/lib/tasker/railtie.rb +9 -0
- data/lib/tasker/registry/base_registry.rb +177 -0
- data/lib/tasker/registry/event_publisher.rb +91 -0
- data/lib/tasker/registry/interface_validator.rb +140 -0
- data/lib/tasker/registry/statistics_collector.rb +381 -0
- data/lib/tasker/registry/subscriber_registry.rb +285 -0
- data/lib/tasker/registry.rb +22 -0
- data/lib/tasker/state_machine/step_state_machine.rb +508 -0
- data/lib/tasker/state_machine/task_state_machine.rb +192 -0
- data/lib/tasker/state_machine.rb +83 -0
- data/lib/tasker/step_handler/api.rb +410 -0
- data/lib/tasker/step_handler/base.rb +206 -0
- data/lib/tasker/task_builder.rb +432 -0
- data/lib/tasker/task_handler/class_methods.rb +324 -0
- data/lib/tasker/task_handler/instance_methods.rb +293 -0
- data/lib/tasker/task_handler/step_group.rb +182 -0
- data/lib/tasker/task_handler.rb +43 -0
- data/lib/tasker/telemetry/event_mapping.rb +126 -0
- data/lib/tasker/telemetry/event_router.rb +318 -0
- data/lib/tasker/telemetry/events/export_events.rb +38 -0
- data/lib/tasker/telemetry/export_coordinator.rb +497 -0
- data/lib/tasker/telemetry/intelligent_cache_manager.rb +508 -0
- data/lib/tasker/telemetry/log_backend.rb +224 -0
- data/lib/tasker/telemetry/metric_types.rb +368 -0
- data/lib/tasker/telemetry/metrics_backend.rb +1227 -0
- data/lib/tasker/telemetry/metrics_export_service.rb +392 -0
- data/lib/tasker/telemetry/plugin_registry.rb +333 -0
- data/lib/tasker/telemetry/plugins/base_exporter.rb +246 -0
- data/lib/tasker/telemetry/plugins/csv_exporter.rb +198 -0
- data/lib/tasker/telemetry/plugins/json_exporter.rb +141 -0
- data/lib/tasker/telemetry/prometheus_exporter.rb +249 -0
- data/lib/tasker/telemetry/trace_backend.rb +186 -0
- data/lib/tasker/telemetry.rb +59 -0
- data/lib/tasker/types/auth_config.rb +81 -0
- data/lib/tasker/types/backoff_config.rb +142 -0
- data/lib/tasker/types/cache_config.rb +257 -0
- data/lib/tasker/types/database_config.rb +39 -0
- data/lib/tasker/types/dependency_graph.rb +225 -0
- data/lib/tasker/types/dependency_graph_config.rb +149 -0
- data/lib/tasker/types/engine_config.rb +131 -0
- data/lib/tasker/types/execution_config.rb +289 -0
- data/lib/tasker/types/health_config.rb +84 -0
- data/lib/tasker/types/step_sequence.rb +24 -0
- data/lib/tasker/types/step_template.rb +63 -0
- data/lib/tasker/types/task_request.rb +60 -0
- data/lib/tasker/types/telemetry_config.rb +273 -0
- data/lib/tasker/types.rb +64 -0
- data/lib/tasker/version.rb +7 -0
- data/lib/tasker.rb +82 -0
- data/lib/tasks/tasker_tasks.rake +302 -0
- metadata +958 -0
@@ -0,0 +1,2575 @@
|
|
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::Task
|
8
|
+
|
9
|
+
— 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::Task";
|
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 (T)</a> »
|
40
|
+
<span class='title'><span class='object_link'><a href="../Tasker.html" title="Tasker (module)">Tasker</a></span></span>
|
41
|
+
»
|
42
|
+
<span class="title">Task</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::Task
|
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="ApplicationRecord.html" title="Tasker::ApplicationRecord (class)">ApplicationRecord</a></span></span>
|
73
|
+
|
74
|
+
<ul class="fullTree">
|
75
|
+
<li>Object</li>
|
76
|
+
|
77
|
+
<li class="next">ActiveRecord::Base</li>
|
78
|
+
|
79
|
+
<li class="next"><span class='object_link'><a href="ApplicationRecord.html" title="Tasker::ApplicationRecord (class)">ApplicationRecord</a></span></li>
|
80
|
+
|
81
|
+
<li class="next">Tasker::Task</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>app/models/tasker/task.rb</dd>
|
102
|
+
</dl>
|
103
|
+
|
104
|
+
</div>
|
105
|
+
|
106
|
+
<h2>Overview</h2><div class="docstring">
|
107
|
+
<div class="discussion">
|
108
|
+
|
109
|
+
<p>Task represents a workflow process that contains multiple workflow steps. Each Task is identified by a name and has a context which defines the parameters for the task. Tasks track their status via state machine transitions, initiator, source system, and other metadata.</p>
|
110
|
+
|
111
|
+
|
112
|
+
</div>
|
113
|
+
</div>
|
114
|
+
<div class="tags">
|
115
|
+
|
116
|
+
<div class="examples">
|
117
|
+
<h4 class="tag_title">Examples:</h4>
|
118
|
+
|
119
|
+
|
120
|
+
<h5 class="example_title"><div class='inline'>
|
121
|
+
<p>Creating a task from a task request</p>
|
122
|
+
</div></h5>
|
123
|
+
|
124
|
+
<pre class="example code"><code><span class='id identifier rubyid_task_request'>task_request</span> <span class='op'>=</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="Types.html" title="Tasker::Types (module)">Types</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Types/TaskRequest.html" title="Tasker::Types::TaskRequest (class)">TaskRequest</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='label'>name:</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>process_order</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='label'>context:</span> <span class='lbrace'>{</span> <span class='label'>order_id:</span> <span class='int'>123</span> <span class='rbrace'>}</span><span class='rparen'>)</span>
|
125
|
+
<span class='id identifier rubyid_task'>task</span> <span class='op'>=</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'>Task</span><span class='period'>.</span><span class='id identifier rubyid_create_with_defaults!'><span class='object_link'><a href="#create_with_defaults!-class_method" title="Tasker::Task.create_with_defaults! (method)">create_with_defaults!</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_task_request'>task_request</span><span class='rparen'>)</span></code></pre>
|
126
|
+
|
127
|
+
</div>
|
128
|
+
|
129
|
+
|
130
|
+
</div>
|
131
|
+
|
132
|
+
<h2>
|
133
|
+
Constant Summary
|
134
|
+
<small><a href="#" class="constants_summary_toggle">collapse</a></small>
|
135
|
+
</h2>
|
136
|
+
|
137
|
+
<dl class="constants">
|
138
|
+
|
139
|
+
<dt id="ALPHANUM_PLUS_HYPHEN_DASH-constant" class="">ALPHANUM_PLUS_HYPHEN_DASH =
|
140
|
+
<div class="docstring">
|
141
|
+
<div class="discussion">
|
142
|
+
|
143
|
+
<p>Regular expression to sanitize strings for database operations</p>
|
144
|
+
|
145
|
+
|
146
|
+
</div>
|
147
|
+
</div>
|
148
|
+
<div class="tags">
|
149
|
+
|
150
|
+
|
151
|
+
</div>
|
152
|
+
</dt>
|
153
|
+
<dd><pre class="code"><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>[^0-9a-z\-_]</span><span class='regexp_end'>/i</span></span></pre></dd>
|
154
|
+
|
155
|
+
</dl>
|
156
|
+
|
157
|
+
|
158
|
+
|
159
|
+
|
160
|
+
|
161
|
+
|
162
|
+
|
163
|
+
|
164
|
+
|
165
|
+
<h2>
|
166
|
+
Class Method Summary
|
167
|
+
<small><a href="#" class="summary_toggle">collapse</a></small>
|
168
|
+
</h2>
|
169
|
+
|
170
|
+
<ul class="summary">
|
171
|
+
|
172
|
+
<li class="public ">
|
173
|
+
<span class="summary_signature">
|
174
|
+
|
175
|
+
<a href="#active-class_method" title="active (class method)">.<strong>active</strong> ⇒ ActiveRecord::Relation </a>
|
176
|
+
|
177
|
+
|
178
|
+
|
179
|
+
</span>
|
180
|
+
|
181
|
+
|
182
|
+
|
183
|
+
|
184
|
+
|
185
|
+
|
186
|
+
|
187
|
+
|
188
|
+
|
189
|
+
<span class="summary_desc"><div class='inline'>
|
190
|
+
<p>Scopes tasks that are currently active (not in terminal states).</p>
|
191
|
+
</div></span>
|
192
|
+
|
193
|
+
</li>
|
194
|
+
|
195
|
+
|
196
|
+
<li class="public ">
|
197
|
+
<span class="summary_signature">
|
198
|
+
|
199
|
+
<a href="#by_annotation-class_method" title="by_annotation (class method)">.<strong>by_annotation</strong> ⇒ ActiveRecord::Relation </a>
|
200
|
+
|
201
|
+
|
202
|
+
|
203
|
+
</span>
|
204
|
+
|
205
|
+
|
206
|
+
|
207
|
+
|
208
|
+
|
209
|
+
|
210
|
+
|
211
|
+
|
212
|
+
|
213
|
+
<span class="summary_desc"><div class='inline'>
|
214
|
+
<p>Scopes a query to find tasks with a specific annotation value.</p>
|
215
|
+
</div></span>
|
216
|
+
|
217
|
+
</li>
|
218
|
+
|
219
|
+
|
220
|
+
<li class="public ">
|
221
|
+
<span class="summary_signature">
|
222
|
+
|
223
|
+
<a href="#by_current_state-class_method" title="by_current_state (class method)">.<strong>by_current_state</strong> ⇒ ActiveRecord::Relation </a>
|
224
|
+
|
225
|
+
|
226
|
+
|
227
|
+
</span>
|
228
|
+
|
229
|
+
|
230
|
+
|
231
|
+
|
232
|
+
|
233
|
+
|
234
|
+
|
235
|
+
|
236
|
+
|
237
|
+
<span class="summary_desc"><div class='inline'>
|
238
|
+
<p>Scopes a query to find tasks by their current state using state machine transitions.</p>
|
239
|
+
</div></span>
|
240
|
+
|
241
|
+
</li>
|
242
|
+
|
243
|
+
|
244
|
+
<li class="public ">
|
245
|
+
<span class="summary_signature">
|
246
|
+
|
247
|
+
<a href="#completed_since-class_method" title="completed_since (class method)">.<strong>completed_since</strong> ⇒ ActiveRecord::Relation </a>
|
248
|
+
|
249
|
+
|
250
|
+
|
251
|
+
</span>
|
252
|
+
|
253
|
+
|
254
|
+
|
255
|
+
|
256
|
+
|
257
|
+
|
258
|
+
|
259
|
+
|
260
|
+
|
261
|
+
<span class="summary_desc"><div class='inline'>
|
262
|
+
<p>Scopes tasks completed within a specific time period.</p>
|
263
|
+
</div></span>
|
264
|
+
|
265
|
+
</li>
|
266
|
+
|
267
|
+
|
268
|
+
<li class="public ">
|
269
|
+
<span class="summary_signature">
|
270
|
+
|
271
|
+
<a href="#create_with_defaults!-class_method" title="create_with_defaults! (class method)">.<strong>create_with_defaults!</strong>(task_request) ⇒ Tasker::Task </a>
|
272
|
+
|
273
|
+
|
274
|
+
|
275
|
+
</span>
|
276
|
+
|
277
|
+
|
278
|
+
|
279
|
+
|
280
|
+
|
281
|
+
|
282
|
+
|
283
|
+
|
284
|
+
|
285
|
+
<span class="summary_desc"><div class='inline'>
|
286
|
+
<p>Creates a task with default values from a task request and saves it to the database.</p>
|
287
|
+
</div></span>
|
288
|
+
|
289
|
+
</li>
|
290
|
+
|
291
|
+
|
292
|
+
<li class="public ">
|
293
|
+
<span class="summary_signature">
|
294
|
+
|
295
|
+
<a href="#created_since-class_method" title="created_since (class method)">.<strong>created_since</strong> ⇒ ActiveRecord::Relation </a>
|
296
|
+
|
297
|
+
|
298
|
+
|
299
|
+
</span>
|
300
|
+
|
301
|
+
|
302
|
+
|
303
|
+
|
304
|
+
|
305
|
+
|
306
|
+
|
307
|
+
|
308
|
+
|
309
|
+
<span class="summary_desc"><div class='inline'>
|
310
|
+
<p>Scopes tasks created within a specific time period.</p>
|
311
|
+
</div></span>
|
312
|
+
|
313
|
+
</li>
|
314
|
+
|
315
|
+
|
316
|
+
<li class="public ">
|
317
|
+
<span class="summary_signature">
|
318
|
+
|
319
|
+
<a href="#failed_since-class_method" title="failed_since (class method)">.<strong>failed_since</strong> ⇒ ActiveRecord::Relation </a>
|
320
|
+
|
321
|
+
|
322
|
+
|
323
|
+
</span>
|
324
|
+
|
325
|
+
|
326
|
+
|
327
|
+
|
328
|
+
|
329
|
+
|
330
|
+
|
331
|
+
|
332
|
+
|
333
|
+
<span class="summary_desc"><div class='inline'>
|
334
|
+
<p>Scopes tasks that have failed within a specific time period This scope identifies tasks that are actually in a failed state (task status = ‘error’), not just tasks that have some failed steps but may still be progressing.</p>
|
335
|
+
</div></span>
|
336
|
+
|
337
|
+
</li>
|
338
|
+
|
339
|
+
|
340
|
+
<li class="public ">
|
341
|
+
<span class="summary_signature">
|
342
|
+
|
343
|
+
<a href="#from_task_request-class_method" title="from_task_request (class method)">.<strong>from_task_request</strong>(task_request) ⇒ Tasker::Task </a>
|
344
|
+
|
345
|
+
|
346
|
+
|
347
|
+
</span>
|
348
|
+
|
349
|
+
|
350
|
+
|
351
|
+
|
352
|
+
|
353
|
+
|
354
|
+
|
355
|
+
|
356
|
+
|
357
|
+
<span class="summary_desc"><div class='inline'>
|
358
|
+
<p>Creates a new unsaved task instance from a task request.</p>
|
359
|
+
</div></span>
|
360
|
+
|
361
|
+
</li>
|
362
|
+
|
363
|
+
|
364
|
+
<li class="public ">
|
365
|
+
<span class="summary_signature">
|
366
|
+
|
367
|
+
<a href="#get_default_task_request_options-class_method" title="get_default_task_request_options (class method)">.<strong>get_default_task_request_options</strong>(named_task) ⇒ Hash </a>
|
368
|
+
|
369
|
+
|
370
|
+
|
371
|
+
</span>
|
372
|
+
|
373
|
+
|
374
|
+
|
375
|
+
|
376
|
+
|
377
|
+
|
378
|
+
|
379
|
+
|
380
|
+
|
381
|
+
<span class="summary_desc"><div class='inline'>
|
382
|
+
<p>Provides default options for a task.</p>
|
383
|
+
</div></span>
|
384
|
+
|
385
|
+
</li>
|
386
|
+
|
387
|
+
|
388
|
+
<li class="public ">
|
389
|
+
<span class="summary_signature">
|
390
|
+
|
391
|
+
<a href="#get_request_options-class_method" title="get_request_options (class method)">.<strong>get_request_options</strong>(task_request) ⇒ Hash </a>
|
392
|
+
|
393
|
+
|
394
|
+
|
395
|
+
</span>
|
396
|
+
|
397
|
+
|
398
|
+
|
399
|
+
|
400
|
+
|
401
|
+
|
402
|
+
|
403
|
+
|
404
|
+
|
405
|
+
<span class="summary_desc"><div class='inline'>
|
406
|
+
<p>Extracts and compacts options from a task request.</p>
|
407
|
+
</div></span>
|
408
|
+
|
409
|
+
</li>
|
410
|
+
|
411
|
+
|
412
|
+
<li class="public ">
|
413
|
+
<span class="summary_signature">
|
414
|
+
|
415
|
+
<a href="#in_namespace-class_method" title="in_namespace (class method)">.<strong>in_namespace</strong> ⇒ ActiveRecord::Relation </a>
|
416
|
+
|
417
|
+
|
418
|
+
|
419
|
+
</span>
|
420
|
+
|
421
|
+
|
422
|
+
|
423
|
+
|
424
|
+
|
425
|
+
|
426
|
+
|
427
|
+
|
428
|
+
|
429
|
+
<span class="summary_desc"><div class='inline'>
|
430
|
+
<p>Scopes tasks by namespace name through the named_task association.</p>
|
431
|
+
</div></span>
|
432
|
+
|
433
|
+
</li>
|
434
|
+
|
435
|
+
|
436
|
+
<li class="public ">
|
437
|
+
<span class="summary_signature">
|
438
|
+
|
439
|
+
<a href="#unique_task_types_count-class_method" title="unique_task_types_count (class method)">.<strong>unique_task_types_count</strong> ⇒ Integer </a>
|
440
|
+
|
441
|
+
|
442
|
+
|
443
|
+
</span>
|
444
|
+
|
445
|
+
|
446
|
+
|
447
|
+
|
448
|
+
|
449
|
+
|
450
|
+
|
451
|
+
|
452
|
+
|
453
|
+
<span class="summary_desc"><div class='inline'>
|
454
|
+
<p>Class method for counting unique task types.</p>
|
455
|
+
</div></span>
|
456
|
+
|
457
|
+
</li>
|
458
|
+
|
459
|
+
|
460
|
+
<li class="public ">
|
461
|
+
<span class="summary_signature">
|
462
|
+
|
463
|
+
<a href="#with_task_name-class_method" title="with_task_name (class method)">.<strong>with_task_name</strong> ⇒ ActiveRecord::Relation </a>
|
464
|
+
|
465
|
+
|
466
|
+
|
467
|
+
</span>
|
468
|
+
|
469
|
+
|
470
|
+
|
471
|
+
|
472
|
+
|
473
|
+
|
474
|
+
|
475
|
+
|
476
|
+
|
477
|
+
<span class="summary_desc"><div class='inline'>
|
478
|
+
<p>Scopes tasks by task name through the named_task association.</p>
|
479
|
+
</div></span>
|
480
|
+
|
481
|
+
</li>
|
482
|
+
|
483
|
+
|
484
|
+
<li class="public ">
|
485
|
+
<span class="summary_signature">
|
486
|
+
|
487
|
+
<a href="#with_version-class_method" title="with_version (class method)">.<strong>with_version</strong> ⇒ ActiveRecord::Relation </a>
|
488
|
+
|
489
|
+
|
490
|
+
|
491
|
+
</span>
|
492
|
+
|
493
|
+
|
494
|
+
|
495
|
+
|
496
|
+
|
497
|
+
|
498
|
+
|
499
|
+
|
500
|
+
|
501
|
+
<span class="summary_desc"><div class='inline'>
|
502
|
+
<p>Scopes tasks by version through the named_task association.</p>
|
503
|
+
</div></span>
|
504
|
+
|
505
|
+
</li>
|
506
|
+
|
507
|
+
|
508
|
+
</ul>
|
509
|
+
|
510
|
+
<h2>
|
511
|
+
Instance Method Summary
|
512
|
+
<small><a href="#" class="summary_toggle">collapse</a></small>
|
513
|
+
</h2>
|
514
|
+
|
515
|
+
<ul class="summary">
|
516
|
+
|
517
|
+
<li class="public ">
|
518
|
+
<span class="summary_signature">
|
519
|
+
|
520
|
+
<a href="#all_steps_complete%3F-instance_method" title="#all_steps_complete? (instance method)">#<strong>all_steps_complete?</strong> ⇒ Boolean </a>
|
521
|
+
|
522
|
+
|
523
|
+
|
524
|
+
</span>
|
525
|
+
|
526
|
+
|
527
|
+
|
528
|
+
|
529
|
+
|
530
|
+
|
531
|
+
|
532
|
+
|
533
|
+
|
534
|
+
<span class="summary_desc"><div class='inline'>
|
535
|
+
<p>Checks if all steps in the task are complete.</p>
|
536
|
+
</div></span>
|
537
|
+
|
538
|
+
</li>
|
539
|
+
|
540
|
+
|
541
|
+
<li class="public ">
|
542
|
+
<span class="summary_signature">
|
543
|
+
|
544
|
+
<a href="#dependency_graph-instance_method" title="#dependency_graph (instance method)">#<strong>dependency_graph</strong> ⇒ Hash </a>
|
545
|
+
|
546
|
+
|
547
|
+
|
548
|
+
</span>
|
549
|
+
|
550
|
+
|
551
|
+
|
552
|
+
|
553
|
+
|
554
|
+
|
555
|
+
|
556
|
+
|
557
|
+
|
558
|
+
<span class="summary_desc"><div class='inline'>
|
559
|
+
<p>Provides runtime dependency graph analysis Delegates to RuntimeGraphAnalyzer for graph-based analysis.</p>
|
560
|
+
</div></span>
|
561
|
+
|
562
|
+
</li>
|
563
|
+
|
564
|
+
|
565
|
+
<li class="public ">
|
566
|
+
<span class="summary_signature">
|
567
|
+
|
568
|
+
<a href="#diagram-instance_method" title="#diagram (instance method)">#<strong>diagram</strong>(base_url = nil) ⇒ Tasker::TaskDiagram </a>
|
569
|
+
|
570
|
+
|
571
|
+
|
572
|
+
</span>
|
573
|
+
|
574
|
+
|
575
|
+
|
576
|
+
|
577
|
+
|
578
|
+
|
579
|
+
|
580
|
+
|
581
|
+
|
582
|
+
<span class="summary_desc"><div class='inline'>
|
583
|
+
<p>Gets or creates a diagram representation of this task.</p>
|
584
|
+
</div></span>
|
585
|
+
|
586
|
+
</li>
|
587
|
+
|
588
|
+
|
589
|
+
<li class="public ">
|
590
|
+
<span class="summary_signature">
|
591
|
+
|
592
|
+
<a href="#get_step_by_name-instance_method" title="#get_step_by_name (instance method)">#<strong>get_step_by_name</strong>(name) ⇒ Tasker::WorkflowStep<sup>?</sup> </a>
|
593
|
+
|
594
|
+
|
595
|
+
|
596
|
+
</span>
|
597
|
+
|
598
|
+
|
599
|
+
|
600
|
+
|
601
|
+
|
602
|
+
|
603
|
+
|
604
|
+
|
605
|
+
|
606
|
+
<span class="summary_desc"><div class='inline'>
|
607
|
+
<p>Finds a workflow step by its name.</p>
|
608
|
+
</div></span>
|
609
|
+
|
610
|
+
</li>
|
611
|
+
|
612
|
+
|
613
|
+
<li class="public ">
|
614
|
+
<span class="summary_signature">
|
615
|
+
|
616
|
+
<a href="#reload-instance_method" title="#reload (instance method)">#<strong>reload</strong> ⇒ Object </a>
|
617
|
+
|
618
|
+
|
619
|
+
|
620
|
+
</span>
|
621
|
+
|
622
|
+
|
623
|
+
|
624
|
+
|
625
|
+
|
626
|
+
|
627
|
+
|
628
|
+
|
629
|
+
|
630
|
+
<span class="summary_desc"><div class='inline'></div></span>
|
631
|
+
|
632
|
+
</li>
|
633
|
+
|
634
|
+
|
635
|
+
<li class="public ">
|
636
|
+
<span class="summary_signature">
|
637
|
+
|
638
|
+
<a href="#runtime_analyzer-instance_method" title="#runtime_analyzer (instance method)">#<strong>runtime_analyzer</strong> ⇒ Object </a>
|
639
|
+
|
640
|
+
|
641
|
+
|
642
|
+
</span>
|
643
|
+
|
644
|
+
|
645
|
+
|
646
|
+
|
647
|
+
|
648
|
+
|
649
|
+
|
650
|
+
|
651
|
+
|
652
|
+
<span class="summary_desc"><div class='inline'></div></span>
|
653
|
+
|
654
|
+
</li>
|
655
|
+
|
656
|
+
|
657
|
+
<li class="public ">
|
658
|
+
<span class="summary_signature">
|
659
|
+
|
660
|
+
<a href="#state_machine-instance_method" title="#state_machine (instance method)">#<strong>state_machine</strong> ⇒ Object </a>
|
661
|
+
|
662
|
+
|
663
|
+
|
664
|
+
</span>
|
665
|
+
|
666
|
+
|
667
|
+
|
668
|
+
|
669
|
+
|
670
|
+
|
671
|
+
|
672
|
+
|
673
|
+
|
674
|
+
<span class="summary_desc"><div class='inline'>
|
675
|
+
<p>State machine integration.</p>
|
676
|
+
</div></span>
|
677
|
+
|
678
|
+
</li>
|
679
|
+
|
680
|
+
|
681
|
+
<li class="public ">
|
682
|
+
<span class="summary_signature">
|
683
|
+
|
684
|
+
<a href="#status-instance_method" title="#status (instance method)">#<strong>status</strong> ⇒ Object </a>
|
685
|
+
|
686
|
+
|
687
|
+
|
688
|
+
</span>
|
689
|
+
|
690
|
+
|
691
|
+
|
692
|
+
|
693
|
+
|
694
|
+
|
695
|
+
|
696
|
+
|
697
|
+
|
698
|
+
<span class="summary_desc"><div class='inline'>
|
699
|
+
<p>Status is now entirely managed by the state machine.</p>
|
700
|
+
</div></span>
|
701
|
+
|
702
|
+
</li>
|
703
|
+
|
704
|
+
|
705
|
+
<li class="public ">
|
706
|
+
<span class="summary_signature">
|
707
|
+
|
708
|
+
<a href="#task_execution_context-instance_method" title="#task_execution_context (instance method)">#<strong>task_execution_context</strong> ⇒ Object </a>
|
709
|
+
|
710
|
+
|
711
|
+
|
712
|
+
</span>
|
713
|
+
|
714
|
+
|
715
|
+
|
716
|
+
|
717
|
+
|
718
|
+
|
719
|
+
|
720
|
+
|
721
|
+
|
722
|
+
<span class="summary_desc"><div class='inline'></div></span>
|
723
|
+
|
724
|
+
</li>
|
725
|
+
|
726
|
+
|
727
|
+
<li class="public ">
|
728
|
+
<span class="summary_signature">
|
729
|
+
|
730
|
+
<a href="#with_all_associated-instance_method" title="#with_all_associated (instance method)">#<strong>with_all_associated</strong> ⇒ ActiveRecord::Relation </a>
|
731
|
+
|
732
|
+
|
733
|
+
|
734
|
+
</span>
|
735
|
+
|
736
|
+
|
737
|
+
|
738
|
+
|
739
|
+
|
740
|
+
|
741
|
+
|
742
|
+
|
743
|
+
|
744
|
+
<span class="summary_desc"><div class='inline'>
|
745
|
+
<p>Includes all associated models for efficient querying.</p>
|
746
|
+
</div></span>
|
747
|
+
|
748
|
+
</li>
|
749
|
+
|
750
|
+
|
751
|
+
</ul>
|
752
|
+
|
753
|
+
|
754
|
+
|
755
|
+
|
756
|
+
|
757
|
+
|
758
|
+
|
759
|
+
|
760
|
+
|
761
|
+
|
762
|
+
|
763
|
+
<h3 class="inherited">Methods inherited from <span class='object_link'><a href="ApplicationRecord.html" title="Tasker::ApplicationRecord (class)">ApplicationRecord</a></span></h3>
|
764
|
+
<p class="inherited"><span class='object_link'><a href="ApplicationRecord.html#configure_database_connections-class_method" title="Tasker::ApplicationRecord.configure_database_connections (method)">configure_database_connections</a></span>, <span class='object_link'><a href="ApplicationRecord.html#database_configuration_exists%3F-class_method" title="Tasker::ApplicationRecord.database_configuration_exists? (method)">database_configuration_exists?</a></span></p>
|
765
|
+
|
766
|
+
|
767
|
+
|
768
|
+
<div id="class_method_details" class="method_details_list">
|
769
|
+
<h2>Class Method Details</h2>
|
770
|
+
|
771
|
+
|
772
|
+
<div class="method_details first">
|
773
|
+
<h3 class="signature first" id="active-class_method">
|
774
|
+
|
775
|
+
.<strong>active</strong> ⇒ <tt>ActiveRecord::Relation</tt>
|
776
|
+
|
777
|
+
|
778
|
+
|
779
|
+
|
780
|
+
|
781
|
+
</h3><div class="docstring">
|
782
|
+
<div class="discussion">
|
783
|
+
|
784
|
+
<p>Scopes tasks that are currently active (not in terminal states)</p>
|
785
|
+
|
786
|
+
|
787
|
+
</div>
|
788
|
+
</div>
|
789
|
+
<div class="tags">
|
790
|
+
|
791
|
+
<p class="tag_title">Returns:</p>
|
792
|
+
<ul class="return">
|
793
|
+
|
794
|
+
<li>
|
795
|
+
|
796
|
+
|
797
|
+
<span class='type'>(<tt>ActiveRecord::Relation</tt>)</span>
|
798
|
+
|
799
|
+
|
800
|
+
|
801
|
+
—
|
802
|
+
<div class='inline'>
|
803
|
+
<p>Tasks that are not complete, error, or cancelled</p>
|
804
|
+
</div>
|
805
|
+
|
806
|
+
</li>
|
807
|
+
|
808
|
+
</ul>
|
809
|
+
|
810
|
+
</div><table class="source_code">
|
811
|
+
<tr>
|
812
|
+
<td>
|
813
|
+
<pre class="lines">
|
814
|
+
|
815
|
+
|
816
|
+
183
|
817
|
+
184
|
818
|
+
185
|
819
|
+
186
|
820
|
+
187
|
821
|
+
188
|
822
|
+
189
|
823
|
+
190
|
824
|
+
191</pre>
|
825
|
+
</td>
|
826
|
+
<td>
|
827
|
+
<pre class="code"><span class="info file"># File 'app/models/tasker/task.rb', line 183</span>
|
828
|
+
|
829
|
+
<span class='id identifier rubyid_scope'>scope</span> <span class='symbol'>:active</span><span class='comma'>,</span> <span class='id identifier rubyid_lambda'>lambda</span> <span class='lbrace'>{</span>
|
830
|
+
<span class='id identifier rubyid_joins'>joins</span><span class='lparen'>(</span><span class='label'>workflow_steps:</span> <span class='symbol'>:workflow_step_transitions</span><span class='rparen'>)</span>
|
831
|
+
<span class='period'>.</span><span class='id identifier rubyid_where'>where</span><span class='period'>.</span><span class='id identifier rubyid_not'>not</span><span class='lparen'>(</span>
|
832
|
+
<span class='label'>tasker_workflow_step_transitions:</span> <span class='lbrace'>{</span>
|
833
|
+
<span class='label'>to_state:</span> <span class='qwords_beg'>%w[</span><span class='tstring_content'>complete</span><span class='words_sep'> </span><span class='tstring_content'>error</span><span class='words_sep'> </span><span class='tstring_content'>skipped</span><span class='words_sep'> </span><span class='tstring_content'>resolved_manually</span><span class='tstring_end'>]</span></span><span class='comma'>,</span>
|
834
|
+
<span class='label'>most_recent:</span> <span class='kw'>true</span>
|
835
|
+
<span class='rbrace'>}</span>
|
836
|
+
<span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_distinct'>distinct</span>
|
837
|
+
<span class='rbrace'>}</span></pre>
|
838
|
+
</td>
|
839
|
+
</tr>
|
840
|
+
</table>
|
841
|
+
</div>
|
842
|
+
|
843
|
+
<div class="method_details ">
|
844
|
+
<h3 class="signature " id="by_annotation-class_method">
|
845
|
+
|
846
|
+
.<strong>by_annotation</strong> ⇒ <tt>ActiveRecord::Relation</tt>
|
847
|
+
|
848
|
+
|
849
|
+
|
850
|
+
|
851
|
+
|
852
|
+
</h3><div class="docstring">
|
853
|
+
<div class="discussion">
|
854
|
+
|
855
|
+
<p>Scopes a query to find tasks with a specific annotation value</p>
|
856
|
+
|
857
|
+
|
858
|
+
</div>
|
859
|
+
</div>
|
860
|
+
<div class="tags">
|
861
|
+
<p class="tag_title">Parameters:</p>
|
862
|
+
<ul class="param">
|
863
|
+
|
864
|
+
<li>
|
865
|
+
|
866
|
+
<span class='name'>name</span>
|
867
|
+
|
868
|
+
|
869
|
+
<span class='type'>(<tt>String</tt>)</span>
|
870
|
+
|
871
|
+
|
872
|
+
|
873
|
+
—
|
874
|
+
<div class='inline'>
|
875
|
+
<p>The annotation type name</p>
|
876
|
+
</div>
|
877
|
+
|
878
|
+
</li>
|
879
|
+
|
880
|
+
<li>
|
881
|
+
|
882
|
+
<span class='name'>key</span>
|
883
|
+
|
884
|
+
|
885
|
+
<span class='type'>(<tt>String</tt>, <tt>Symbol</tt>)</span>
|
886
|
+
|
887
|
+
|
888
|
+
|
889
|
+
—
|
890
|
+
<div class='inline'>
|
891
|
+
<p>The key within the annotation to match</p>
|
892
|
+
</div>
|
893
|
+
|
894
|
+
</li>
|
895
|
+
|
896
|
+
<li>
|
897
|
+
|
898
|
+
<span class='name'>value</span>
|
899
|
+
|
900
|
+
|
901
|
+
<span class='type'>(<tt>String</tt>)</span>
|
902
|
+
|
903
|
+
|
904
|
+
|
905
|
+
—
|
906
|
+
<div class='inline'>
|
907
|
+
<p>The value to match against</p>
|
908
|
+
</div>
|
909
|
+
|
910
|
+
</li>
|
911
|
+
|
912
|
+
</ul>
|
913
|
+
|
914
|
+
<p class="tag_title">Returns:</p>
|
915
|
+
<ul class="return">
|
916
|
+
|
917
|
+
<li>
|
918
|
+
|
919
|
+
|
920
|
+
<span class='type'>(<tt>ActiveRecord::Relation</tt>)</span>
|
921
|
+
|
922
|
+
|
923
|
+
|
924
|
+
—
|
925
|
+
<div class='inline'>
|
926
|
+
<p>Tasks matching the annotation criteria</p>
|
927
|
+
</div>
|
928
|
+
|
929
|
+
</li>
|
930
|
+
|
931
|
+
</ul>
|
932
|
+
|
933
|
+
</div><table class="source_code">
|
934
|
+
<tr>
|
935
|
+
<td>
|
936
|
+
<pre class="lines">
|
937
|
+
|
938
|
+
|
939
|
+
97
|
940
|
+
98
|
941
|
+
99
|
942
|
+
100
|
943
|
+
101
|
944
|
+
102
|
945
|
+
103</pre>
|
946
|
+
</td>
|
947
|
+
<td>
|
948
|
+
<pre class="code"><span class="info file"># File 'app/models/tasker/task.rb', line 97</span>
|
949
|
+
|
950
|
+
<span class='id identifier rubyid_scope'>scope</span> <span class='symbol'>:by_annotation</span><span class='comma'>,</span>
|
951
|
+
<span class='id identifier rubyid_lambda'>lambda</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_name'>name</span><span class='comma'>,</span> <span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_value'>value</span><span class='op'>|</span>
|
952
|
+
<span class='id identifier rubyid_clean_key'>clean_key</span> <span class='op'>=</span> <span class='id identifier rubyid_key'>key</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='period'>.</span><span class='id identifier rubyid_gsub'>gsub</span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="#ALPHANUM_PLUS_HYPHEN_DASH-constant" title="Tasker::Task::ALPHANUM_PLUS_HYPHEN_DASH (constant)">ALPHANUM_PLUS_HYPHEN_DASH</a></span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
|
953
|
+
<span class='id identifier rubyid_joins'>joins</span><span class='lparen'>(</span><span class='symbol'>:task_annotations</span><span class='comma'>,</span> <span class='symbol'>:annotation_types</span><span class='rparen'>)</span>
|
954
|
+
<span class='period'>.</span><span class='id identifier rubyid_where'>where</span><span class='lparen'>(</span><span class='lbrace'>{</span> <span class='label'>annotation_types:</span> <span class='lbrace'>{</span> <span class='label'>name:</span> <span class='id identifier rubyid_name'>name</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='period'>.</span><span class='id identifier rubyid_strip'>strip</span> <span class='rbrace'>}</span> <span class='rbrace'>}</span><span class='rparen'>)</span>
|
955
|
+
<span class='period'>.</span><span class='id identifier rubyid_where'>where</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>tasker_task_annotations.annotation->>'</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_clean_key'>clean_key</span><span class='embexpr_end'>}</span><span class='tstring_content'>' = :value</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='label'>value:</span> <span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
956
|
+
<span class='rbrace'>}</span></pre>
|
957
|
+
</td>
|
958
|
+
</tr>
|
959
|
+
</table>
|
960
|
+
</div>
|
961
|
+
|
962
|
+
<div class="method_details ">
|
963
|
+
<h3 class="signature " id="by_current_state-class_method">
|
964
|
+
|
965
|
+
.<strong>by_current_state</strong> ⇒ <tt>ActiveRecord::Relation</tt>
|
966
|
+
|
967
|
+
|
968
|
+
|
969
|
+
|
970
|
+
|
971
|
+
</h3><div class="docstring">
|
972
|
+
<div class="discussion">
|
973
|
+
|
974
|
+
<p>Scopes a query to find tasks by their current state using state machine transitions</p>
|
975
|
+
|
976
|
+
|
977
|
+
</div>
|
978
|
+
</div>
|
979
|
+
<div class="tags">
|
980
|
+
<p class="tag_title">Parameters:</p>
|
981
|
+
<ul class="param">
|
982
|
+
|
983
|
+
<li>
|
984
|
+
|
985
|
+
<span class='name'>state</span>
|
986
|
+
|
987
|
+
|
988
|
+
<span class='type'>(<tt>String</tt>, <tt>nil</tt>)</span>
|
989
|
+
|
990
|
+
|
991
|
+
|
992
|
+
—
|
993
|
+
<div class='inline'>
|
994
|
+
<p>The state to filter by. If nil, returns all tasks with current state information</p>
|
995
|
+
</div>
|
996
|
+
|
997
|
+
</li>
|
998
|
+
|
999
|
+
</ul>
|
1000
|
+
|
1001
|
+
<p class="tag_title">Returns:</p>
|
1002
|
+
<ul class="return">
|
1003
|
+
|
1004
|
+
<li>
|
1005
|
+
|
1006
|
+
|
1007
|
+
<span class='type'>(<tt>ActiveRecord::Relation</tt>)</span>
|
1008
|
+
|
1009
|
+
|
1010
|
+
|
1011
|
+
—
|
1012
|
+
<div class='inline'>
|
1013
|
+
<p>Tasks with current state, optionally filtered by specific state</p>
|
1014
|
+
</div>
|
1015
|
+
|
1016
|
+
</li>
|
1017
|
+
|
1018
|
+
</ul>
|
1019
|
+
|
1020
|
+
</div><table class="source_code">
|
1021
|
+
<tr>
|
1022
|
+
<td>
|
1023
|
+
<pre class="lines">
|
1024
|
+
|
1025
|
+
|
1026
|
+
110
|
1027
|
+
111
|
1028
|
+
112
|
1029
|
+
113
|
1030
|
+
114
|
1031
|
+
115
|
1032
|
+
116
|
1033
|
+
117
|
1034
|
+
118
|
1035
|
+
119
|
1036
|
+
120
|
1037
|
+
121
|
1038
|
+
122
|
1039
|
+
123
|
1040
|
+
124
|
1041
|
+
125</pre>
|
1042
|
+
</td>
|
1043
|
+
<td>
|
1044
|
+
<pre class="code"><span class="info file"># File 'app/models/tasker/task.rb', line 110</span>
|
1045
|
+
|
1046
|
+
<span class='id identifier rubyid_scope'>scope</span> <span class='symbol'>:by_current_state</span><span class='comma'>,</span>
|
1047
|
+
<span class='id identifier rubyid_lambda'>lambda</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_state'>state</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='op'>|</span>
|
1048
|
+
<span class='id identifier rubyid_relation'>relation</span> <span class='op'>=</span> <span class='id identifier rubyid_joins'>joins</span><span class='lparen'>(</span><span class='heredoc_beg'><<-SQL</span><span class='period'>.</span><span class='id identifier rubyid_squish'>squish</span><span class='rparen'>)</span>
|
1049
|
+
<span class='tstring_content'> INNER JOIN (
|
1050
|
+
SELECT DISTINCT ON (task_id) task_id, to_state
|
1051
|
+
FROM tasker_task_transitions
|
1052
|
+
ORDER BY task_id, sort_key DESC
|
1053
|
+
) current_transitions ON current_transitions.task_id = tasker_tasks.task_id
|
1054
|
+
</span><span class='heredoc_end'> SQL
|
1055
|
+
</span>
|
1056
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_state'>state</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span>
|
1057
|
+
<span class='id identifier rubyid_relation'>relation</span><span class='period'>.</span><span class='id identifier rubyid_where'>where</span><span class='lparen'>(</span><span class='label'>current_transitions:</span> <span class='lbrace'>{</span> <span class='label'>to_state:</span> <span class='id identifier rubyid_state'>state</span> <span class='rbrace'>}</span><span class='rparen'>)</span>
|
1058
|
+
<span class='kw'>else</span>
|
1059
|
+
<span class='id identifier rubyid_relation'>relation</span>
|
1060
|
+
<span class='kw'>end</span>
|
1061
|
+
<span class='rbrace'>}</span></pre>
|
1062
|
+
</td>
|
1063
|
+
</tr>
|
1064
|
+
</table>
|
1065
|
+
</div>
|
1066
|
+
|
1067
|
+
<div class="method_details ">
|
1068
|
+
<h3 class="signature " id="completed_since-class_method">
|
1069
|
+
|
1070
|
+
.<strong>completed_since</strong> ⇒ <tt>ActiveRecord::Relation</tt>
|
1071
|
+
|
1072
|
+
|
1073
|
+
|
1074
|
+
|
1075
|
+
|
1076
|
+
</h3><div class="docstring">
|
1077
|
+
<div class="discussion">
|
1078
|
+
|
1079
|
+
<p>Scopes tasks completed within a specific time period</p>
|
1080
|
+
|
1081
|
+
|
1082
|
+
</div>
|
1083
|
+
</div>
|
1084
|
+
<div class="tags">
|
1085
|
+
<p class="tag_title">Parameters:</p>
|
1086
|
+
<ul class="param">
|
1087
|
+
|
1088
|
+
<li>
|
1089
|
+
|
1090
|
+
<span class='name'>since_time</span>
|
1091
|
+
|
1092
|
+
|
1093
|
+
<span class='type'>(<tt>Time</tt>)</span>
|
1094
|
+
|
1095
|
+
|
1096
|
+
|
1097
|
+
—
|
1098
|
+
<div class='inline'>
|
1099
|
+
<p>The earliest completion time to include</p>
|
1100
|
+
</div>
|
1101
|
+
|
1102
|
+
</li>
|
1103
|
+
|
1104
|
+
</ul>
|
1105
|
+
|
1106
|
+
<p class="tag_title">Returns:</p>
|
1107
|
+
<ul class="return">
|
1108
|
+
|
1109
|
+
<li>
|
1110
|
+
|
1111
|
+
|
1112
|
+
<span class='type'>(<tt>ActiveRecord::Relation</tt>)</span>
|
1113
|
+
|
1114
|
+
|
1115
|
+
|
1116
|
+
—
|
1117
|
+
<div class='inline'>
|
1118
|
+
<p>Tasks completed since the specified time</p>
|
1119
|
+
</div>
|
1120
|
+
|
1121
|
+
</li>
|
1122
|
+
|
1123
|
+
</ul>
|
1124
|
+
|
1125
|
+
</div><table class="source_code">
|
1126
|
+
<tr>
|
1127
|
+
<td>
|
1128
|
+
<pre class="lines">
|
1129
|
+
|
1130
|
+
|
1131
|
+
153
|
1132
|
+
154
|
1133
|
+
155
|
1134
|
+
156
|
1135
|
+
157
|
1136
|
+
158</pre>
|
1137
|
+
</td>
|
1138
|
+
<td>
|
1139
|
+
<pre class="code"><span class="info file"># File 'app/models/tasker/task.rb', line 153</span>
|
1140
|
+
|
1141
|
+
<span class='id identifier rubyid_scope'>scope</span> <span class='symbol'>:completed_since</span><span class='comma'>,</span> <span class='id identifier rubyid_lambda'>lambda</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_since_time'>since_time</span><span class='op'>|</span>
|
1142
|
+
<span class='id identifier rubyid_joins'>joins</span><span class='lparen'>(</span><span class='label'>workflow_steps:</span> <span class='symbol'>:workflow_step_transitions</span><span class='rparen'>)</span>
|
1143
|
+
<span class='period'>.</span><span class='id identifier rubyid_where'>where</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>tasker_workflow_step_transitions.to_state = ? AND tasker_workflow_step_transitions.most_recent = ?</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>complete</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span>
|
1144
|
+
<span class='period'>.</span><span class='id identifier rubyid_where'>where</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>tasker_workflow_step_transitions.created_at > ?</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='id identifier rubyid_since_time'>since_time</span><span class='rparen'>)</span>
|
1145
|
+
<span class='period'>.</span><span class='id identifier rubyid_distinct'>distinct</span>
|
1146
|
+
<span class='rbrace'>}</span></pre>
|
1147
|
+
</td>
|
1148
|
+
</tr>
|
1149
|
+
</table>
|
1150
|
+
</div>
|
1151
|
+
|
1152
|
+
<div class="method_details ">
|
1153
|
+
<h3 class="signature " id="create_with_defaults!-class_method">
|
1154
|
+
|
1155
|
+
.<strong>create_with_defaults!</strong>(task_request) ⇒ <tt><span class='object_link'><a href="" title="Tasker::Task (class)">Tasker::Task</a></span></tt>
|
1156
|
+
|
1157
|
+
|
1158
|
+
|
1159
|
+
|
1160
|
+
|
1161
|
+
</h3><div class="docstring">
|
1162
|
+
<div class="discussion">
|
1163
|
+
|
1164
|
+
<p>Creates a task with default values from a task request and saves it to the database</p>
|
1165
|
+
|
1166
|
+
|
1167
|
+
</div>
|
1168
|
+
</div>
|
1169
|
+
<div class="tags">
|
1170
|
+
<p class="tag_title">Parameters:</p>
|
1171
|
+
<ul class="param">
|
1172
|
+
|
1173
|
+
<li>
|
1174
|
+
|
1175
|
+
<span class='name'>task_request</span>
|
1176
|
+
|
1177
|
+
|
1178
|
+
<span class='type'>(<tt><span class='object_link'><a href="Types/TaskRequest.html" title="Tasker::Types::TaskRequest (class)">Tasker::Types::TaskRequest</a></span></tt>)</span>
|
1179
|
+
|
1180
|
+
|
1181
|
+
|
1182
|
+
—
|
1183
|
+
<div class='inline'>
|
1184
|
+
<p>The task request containing task parameters</p>
|
1185
|
+
</div>
|
1186
|
+
|
1187
|
+
</li>
|
1188
|
+
|
1189
|
+
</ul>
|
1190
|
+
|
1191
|
+
<p class="tag_title">Returns:</p>
|
1192
|
+
<ul class="return">
|
1193
|
+
|
1194
|
+
<li>
|
1195
|
+
|
1196
|
+
|
1197
|
+
<span class='type'>(<tt><span class='object_link'><a href="" title="Tasker::Task (class)">Tasker::Task</a></span></tt>)</span>
|
1198
|
+
|
1199
|
+
|
1200
|
+
|
1201
|
+
—
|
1202
|
+
<div class='inline'>
|
1203
|
+
<p>The created and saved task</p>
|
1204
|
+
</div>
|
1205
|
+
|
1206
|
+
</li>
|
1207
|
+
|
1208
|
+
</ul>
|
1209
|
+
<p class="tag_title">Raises:</p>
|
1210
|
+
<ul class="raise">
|
1211
|
+
|
1212
|
+
<li>
|
1213
|
+
|
1214
|
+
|
1215
|
+
<span class='type'>(<tt>ActiveRecord::RecordInvalid</tt>)</span>
|
1216
|
+
|
1217
|
+
|
1218
|
+
|
1219
|
+
—
|
1220
|
+
<div class='inline'>
|
1221
|
+
<p>If the task is invalid</p>
|
1222
|
+
</div>
|
1223
|
+
|
1224
|
+
</li>
|
1225
|
+
|
1226
|
+
</ul>
|
1227
|
+
|
1228
|
+
</div><table class="source_code">
|
1229
|
+
<tr>
|
1230
|
+
<td>
|
1231
|
+
<pre class="lines">
|
1232
|
+
|
1233
|
+
|
1234
|
+
235
|
1235
|
+
236
|
1236
|
+
237
|
1237
|
+
238
|
1238
|
+
239</pre>
|
1239
|
+
</td>
|
1240
|
+
<td>
|
1241
|
+
<pre class="code"><span class="info file"># File 'app/models/tasker/task.rb', line 235</span>
|
1242
|
+
|
1243
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_create_with_defaults!'>create_with_defaults!</span><span class='lparen'>(</span><span class='id identifier rubyid_task_request'>task_request</span><span class='rparen'>)</span>
|
1244
|
+
<span class='id identifier rubyid_task'>task</span> <span class='op'>=</span> <span class='id identifier rubyid_from_task_request'>from_task_request</span><span class='lparen'>(</span><span class='id identifier rubyid_task_request'>task_request</span><span class='rparen'>)</span>
|
1245
|
+
<span class='id identifier rubyid_task'>task</span><span class='period'>.</span><span class='id identifier rubyid_save!'>save!</span>
|
1246
|
+
<span class='id identifier rubyid_task'>task</span>
|
1247
|
+
<span class='kw'>end</span></pre>
|
1248
|
+
</td>
|
1249
|
+
</tr>
|
1250
|
+
</table>
|
1251
|
+
</div>
|
1252
|
+
|
1253
|
+
<div class="method_details ">
|
1254
|
+
<h3 class="signature " id="created_since-class_method">
|
1255
|
+
|
1256
|
+
.<strong>created_since</strong> ⇒ <tt>ActiveRecord::Relation</tt>
|
1257
|
+
|
1258
|
+
|
1259
|
+
|
1260
|
+
|
1261
|
+
|
1262
|
+
</h3><div class="docstring">
|
1263
|
+
<div class="discussion">
|
1264
|
+
|
1265
|
+
<p>Scopes tasks created within a specific time period</p>
|
1266
|
+
|
1267
|
+
|
1268
|
+
</div>
|
1269
|
+
</div>
|
1270
|
+
<div class="tags">
|
1271
|
+
<p class="tag_title">Parameters:</p>
|
1272
|
+
<ul class="param">
|
1273
|
+
|
1274
|
+
<li>
|
1275
|
+
|
1276
|
+
<span class='name'>since_time</span>
|
1277
|
+
|
1278
|
+
|
1279
|
+
<span class='type'>(<tt>Time</tt>)</span>
|
1280
|
+
|
1281
|
+
|
1282
|
+
|
1283
|
+
—
|
1284
|
+
<div class='inline'>
|
1285
|
+
<p>The earliest creation time to include</p>
|
1286
|
+
</div>
|
1287
|
+
|
1288
|
+
</li>
|
1289
|
+
|
1290
|
+
</ul>
|
1291
|
+
|
1292
|
+
<p class="tag_title">Returns:</p>
|
1293
|
+
<ul class="return">
|
1294
|
+
|
1295
|
+
<li>
|
1296
|
+
|
1297
|
+
|
1298
|
+
<span class='type'>(<tt>ActiveRecord::Relation</tt>)</span>
|
1299
|
+
|
1300
|
+
|
1301
|
+
|
1302
|
+
—
|
1303
|
+
<div class='inline'>
|
1304
|
+
<p>Tasks created since the specified time</p>
|
1305
|
+
</div>
|
1306
|
+
|
1307
|
+
</li>
|
1308
|
+
|
1309
|
+
</ul>
|
1310
|
+
|
1311
|
+
</div><table class="source_code">
|
1312
|
+
<tr>
|
1313
|
+
<td>
|
1314
|
+
<pre class="lines">
|
1315
|
+
|
1316
|
+
|
1317
|
+
144
|
1318
|
+
145
|
1319
|
+
146</pre>
|
1320
|
+
</td>
|
1321
|
+
<td>
|
1322
|
+
<pre class="code"><span class="info file"># File 'app/models/tasker/task.rb', line 144</span>
|
1323
|
+
|
1324
|
+
<span class='id identifier rubyid_scope'>scope</span> <span class='symbol'>:created_since</span><span class='comma'>,</span> <span class='id identifier rubyid_lambda'>lambda</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_since_time'>since_time</span><span class='op'>|</span>
|
1325
|
+
<span class='id identifier rubyid_where'>where</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>tasker_tasks.created_at > ?</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='id identifier rubyid_since_time'>since_time</span><span class='rparen'>)</span>
|
1326
|
+
<span class='rbrace'>}</span></pre>
|
1327
|
+
</td>
|
1328
|
+
</tr>
|
1329
|
+
</table>
|
1330
|
+
</div>
|
1331
|
+
|
1332
|
+
<div class="method_details ">
|
1333
|
+
<h3 class="signature " id="failed_since-class_method">
|
1334
|
+
|
1335
|
+
.<strong>failed_since</strong> ⇒ <tt>ActiveRecord::Relation</tt>
|
1336
|
+
|
1337
|
+
|
1338
|
+
|
1339
|
+
|
1340
|
+
|
1341
|
+
</h3><div class="docstring">
|
1342
|
+
<div class="discussion">
|
1343
|
+
|
1344
|
+
<p>Scopes tasks that have failed within a specific time period This scope identifies tasks that are actually in a failed state (task status = ‘error’), not just tasks that have some failed steps but may still be progressing.</p>
|
1345
|
+
|
1346
|
+
|
1347
|
+
</div>
|
1348
|
+
</div>
|
1349
|
+
<div class="tags">
|
1350
|
+
<p class="tag_title">Parameters:</p>
|
1351
|
+
<ul class="param">
|
1352
|
+
|
1353
|
+
<li>
|
1354
|
+
|
1355
|
+
<span class='name'>since_time</span>
|
1356
|
+
|
1357
|
+
|
1358
|
+
<span class='type'>(<tt>Time</tt>)</span>
|
1359
|
+
|
1360
|
+
|
1361
|
+
|
1362
|
+
—
|
1363
|
+
<div class='inline'>
|
1364
|
+
<p>The earliest failure time to include</p>
|
1365
|
+
</div>
|
1366
|
+
|
1367
|
+
</li>
|
1368
|
+
|
1369
|
+
</ul>
|
1370
|
+
|
1371
|
+
<p class="tag_title">Returns:</p>
|
1372
|
+
<ul class="return">
|
1373
|
+
|
1374
|
+
<li>
|
1375
|
+
|
1376
|
+
|
1377
|
+
<span class='type'>(<tt>ActiveRecord::Relation</tt>)</span>
|
1378
|
+
|
1379
|
+
|
1380
|
+
|
1381
|
+
—
|
1382
|
+
<div class='inline'>
|
1383
|
+
<p>Tasks that have transitioned to error state since the specified time</p>
|
1384
|
+
</div>
|
1385
|
+
|
1386
|
+
</li>
|
1387
|
+
|
1388
|
+
</ul>
|
1389
|
+
|
1390
|
+
</div><table class="source_code">
|
1391
|
+
<tr>
|
1392
|
+
<td>
|
1393
|
+
<pre class="lines">
|
1394
|
+
|
1395
|
+
|
1396
|
+
167
|
1397
|
+
168
|
1398
|
+
169
|
1399
|
+
170
|
1400
|
+
171
|
1401
|
+
172
|
1402
|
+
173
|
1403
|
+
174
|
1404
|
+
175
|
1405
|
+
176
|
1406
|
+
177</pre>
|
1407
|
+
</td>
|
1408
|
+
<td>
|
1409
|
+
<pre class="code"><span class="info file"># File 'app/models/tasker/task.rb', line 167</span>
|
1410
|
+
|
1411
|
+
<span class='id identifier rubyid_scope'>scope</span> <span class='symbol'>:failed_since</span><span class='comma'>,</span> <span class='id identifier rubyid_lambda'>lambda</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_since_time'>since_time</span><span class='op'>|</span>
|
1412
|
+
<span class='id identifier rubyid_joins'>joins</span><span class='lparen'>(</span><span class='heredoc_beg'><<-SQL</span><span class='period'>.</span><span class='id identifier rubyid_squish'>squish</span><span class='rparen'>)</span>
|
1413
|
+
<span class='tstring_content'> INNER JOIN (
|
1414
|
+
SELECT DISTINCT ON (task_id) task_id, to_state, created_at
|
1415
|
+
FROM tasker_task_transitions
|
1416
|
+
ORDER BY task_id, sort_key DESC
|
1417
|
+
) current_transitions ON current_transitions.task_id = tasker_tasks.task_id
|
1418
|
+
</span><span class='heredoc_end'> SQL
|
1419
|
+
</span> <span class='period'>.</span><span class='id identifier rubyid_where'>where</span><span class='lparen'>(</span><span class='label'>current_transitions:</span> <span class='lbrace'>{</span> <span class='label'>to_state:</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="Constants.html" title="Tasker::Constants (module)">Constants</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Constants/TaskStatuses.html" title="Tasker::Constants::TaskStatuses (module)">TaskStatuses</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Constants/TaskStatuses.html#ERROR-constant" title="Tasker::Constants::TaskStatuses::ERROR (constant)">ERROR</a></span></span> <span class='rbrace'>}</span><span class='rparen'>)</span>
|
1420
|
+
<span class='period'>.</span><span class='id identifier rubyid_where'>where</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>current_transitions.created_at > ?</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='id identifier rubyid_since_time'>since_time</span><span class='rparen'>)</span>
|
1421
|
+
<span class='rbrace'>}</span></pre>
|
1422
|
+
</td>
|
1423
|
+
</tr>
|
1424
|
+
</table>
|
1425
|
+
</div>
|
1426
|
+
|
1427
|
+
<div class="method_details ">
|
1428
|
+
<h3 class="signature " id="from_task_request-class_method">
|
1429
|
+
|
1430
|
+
.<strong>from_task_request</strong>(task_request) ⇒ <tt><span class='object_link'><a href="" title="Tasker::Task (class)">Tasker::Task</a></span></tt>
|
1431
|
+
|
1432
|
+
|
1433
|
+
|
1434
|
+
|
1435
|
+
|
1436
|
+
</h3><div class="docstring">
|
1437
|
+
<div class="discussion">
|
1438
|
+
|
1439
|
+
<p>Creates a new unsaved task instance from a task request</p>
|
1440
|
+
|
1441
|
+
|
1442
|
+
</div>
|
1443
|
+
</div>
|
1444
|
+
<div class="tags">
|
1445
|
+
<p class="tag_title">Parameters:</p>
|
1446
|
+
<ul class="param">
|
1447
|
+
|
1448
|
+
<li>
|
1449
|
+
|
1450
|
+
<span class='name'>task_request</span>
|
1451
|
+
|
1452
|
+
|
1453
|
+
<span class='type'>(<tt><span class='object_link'><a href="Types/TaskRequest.html" title="Tasker::Types::TaskRequest (class)">Tasker::Types::TaskRequest</a></span></tt>)</span>
|
1454
|
+
|
1455
|
+
|
1456
|
+
|
1457
|
+
—
|
1458
|
+
<div class='inline'>
|
1459
|
+
<p>The task request containing task parameters</p>
|
1460
|
+
</div>
|
1461
|
+
|
1462
|
+
</li>
|
1463
|
+
|
1464
|
+
</ul>
|
1465
|
+
|
1466
|
+
<p class="tag_title">Returns:</p>
|
1467
|
+
<ul class="return">
|
1468
|
+
|
1469
|
+
<li>
|
1470
|
+
|
1471
|
+
|
1472
|
+
<span class='type'>(<tt><span class='object_link'><a href="" title="Tasker::Task (class)">Tasker::Task</a></span></tt>)</span>
|
1473
|
+
|
1474
|
+
|
1475
|
+
|
1476
|
+
—
|
1477
|
+
<div class='inline'>
|
1478
|
+
<p>A new unsaved task instance</p>
|
1479
|
+
</div>
|
1480
|
+
|
1481
|
+
</li>
|
1482
|
+
|
1483
|
+
</ul>
|
1484
|
+
|
1485
|
+
</div><table class="source_code">
|
1486
|
+
<tr>
|
1487
|
+
<td>
|
1488
|
+
<pre class="lines">
|
1489
|
+
|
1490
|
+
|
1491
|
+
245
|
1492
|
+
246
|
1493
|
+
247
|
1494
|
+
248
|
1495
|
+
249
|
1496
|
+
250
|
1497
|
+
251
|
1498
|
+
252
|
1499
|
+
253
|
1500
|
+
254
|
1501
|
+
255
|
1502
|
+
256</pre>
|
1503
|
+
</td>
|
1504
|
+
<td>
|
1505
|
+
<pre class="code"><span class="info file"># File 'app/models/tasker/task.rb', line 245</span>
|
1506
|
+
|
1507
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_from_task_request'>from_task_request</span><span class='lparen'>(</span><span class='id identifier rubyid_task_request'>task_request</span><span class='rparen'>)</span>
|
1508
|
+
<span class='id identifier rubyid_named_task'>named_task</span> <span class='op'>=</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="NamedTask.html" title="Tasker::NamedTask (class)">NamedTask</a></span></span><span class='period'>.</span><span class='id identifier rubyid_find_or_create_by_full_name!'><span class='object_link'><a href="NamedTask.html#find_or_create_by_full_name!-class_method" title="Tasker::NamedTask.find_or_create_by_full_name! (method)">find_or_create_by_full_name!</a></span></span><span class='lparen'>(</span><span class='label'>name:</span> <span class='id identifier rubyid_task_request'>task_request</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span><span class='comma'>,</span>
|
1509
|
+
<span class='label'>namespace_name:</span> <span class='id identifier rubyid_task_request'>task_request</span><span class='period'>.</span><span class='id identifier rubyid_namespace'>namespace</span><span class='comma'>,</span> <span class='label'>version:</span> <span class='id identifier rubyid_task_request'>task_request</span><span class='period'>.</span><span class='id identifier rubyid_version'>version</span><span class='rparen'>)</span>
|
1510
|
+
<span class='comment'># Extract values from task_request, removing nils
|
1511
|
+
</span> <span class='id identifier rubyid_request_values'>request_values</span> <span class='op'>=</span> <span class='id identifier rubyid_get_request_options'>get_request_options</span><span class='lparen'>(</span><span class='id identifier rubyid_task_request'>task_request</span><span class='rparen'>)</span>
|
1512
|
+
<span class='comment'># Merge defaults with request values
|
1513
|
+
</span> <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='id identifier rubyid_get_default_task_request_options'>get_default_task_request_options</span><span class='lparen'>(</span><span class='id identifier rubyid_named_task'>named_task</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_merge'>merge</span><span class='lparen'>(</span><span class='id identifier rubyid_request_values'>request_values</span><span class='rparen'>)</span>
|
1514
|
+
|
1515
|
+
<span class='id identifier rubyid_task'>task</span> <span class='op'>=</span> <span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
|
1516
|
+
<span class='id identifier rubyid_task'>task</span><span class='period'>.</span><span class='id identifier rubyid_named_task'>named_task</span> <span class='op'>=</span> <span class='id identifier rubyid_named_task'>named_task</span>
|
1517
|
+
<span class='id identifier rubyid_task'>task</span>
|
1518
|
+
<span class='kw'>end</span></pre>
|
1519
|
+
</td>
|
1520
|
+
</tr>
|
1521
|
+
</table>
|
1522
|
+
</div>
|
1523
|
+
|
1524
|
+
<div class="method_details ">
|
1525
|
+
<h3 class="signature " id="get_default_task_request_options-class_method">
|
1526
|
+
|
1527
|
+
.<strong>get_default_task_request_options</strong>(named_task) ⇒ <tt>Hash</tt>
|
1528
|
+
|
1529
|
+
|
1530
|
+
|
1531
|
+
|
1532
|
+
|
1533
|
+
</h3><div class="docstring">
|
1534
|
+
<div class="discussion">
|
1535
|
+
|
1536
|
+
<p>Provides default options for a task</p>
|
1537
|
+
|
1538
|
+
|
1539
|
+
</div>
|
1540
|
+
</div>
|
1541
|
+
<div class="tags">
|
1542
|
+
<p class="tag_title">Parameters:</p>
|
1543
|
+
<ul class="param">
|
1544
|
+
|
1545
|
+
<li>
|
1546
|
+
|
1547
|
+
<span class='name'>named_task</span>
|
1548
|
+
|
1549
|
+
|
1550
|
+
<span class='type'>(<tt><span class='object_link'><a href="NamedTask.html" title="Tasker::NamedTask (class)">Tasker::NamedTask</a></span></tt>)</span>
|
1551
|
+
|
1552
|
+
|
1553
|
+
|
1554
|
+
—
|
1555
|
+
<div class='inline'>
|
1556
|
+
<p>The named task to associate with the task</p>
|
1557
|
+
</div>
|
1558
|
+
|
1559
|
+
</li>
|
1560
|
+
|
1561
|
+
</ul>
|
1562
|
+
|
1563
|
+
<p class="tag_title">Returns:</p>
|
1564
|
+
<ul class="return">
|
1565
|
+
|
1566
|
+
<li>
|
1567
|
+
|
1568
|
+
|
1569
|
+
<span class='type'>(<tt>Hash</tt>)</span>
|
1570
|
+
|
1571
|
+
|
1572
|
+
|
1573
|
+
—
|
1574
|
+
<div class='inline'>
|
1575
|
+
<p>Hash of default task options</p>
|
1576
|
+
</div>
|
1577
|
+
|
1578
|
+
</li>
|
1579
|
+
|
1580
|
+
</ul>
|
1581
|
+
|
1582
|
+
</div><table class="source_code">
|
1583
|
+
<tr>
|
1584
|
+
<td>
|
1585
|
+
<pre class="lines">
|
1586
|
+
|
1587
|
+
|
1588
|
+
278
|
1589
|
+
279
|
1590
|
+
280
|
1591
|
+
281
|
1592
|
+
282
|
1593
|
+
283
|
1594
|
+
284
|
1595
|
+
285
|
1596
|
+
286
|
1597
|
+
287
|
1598
|
+
288
|
1599
|
+
289</pre>
|
1600
|
+
</td>
|
1601
|
+
<td>
|
1602
|
+
<pre class="code"><span class="info file"># File 'app/models/tasker/task.rb', line 278</span>
|
1603
|
+
|
1604
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_get_default_task_request_options'>get_default_task_request_options</span><span class='lparen'>(</span><span class='id identifier rubyid_named_task'>named_task</span><span class='rparen'>)</span>
|
1605
|
+
<span class='lbrace'>{</span>
|
1606
|
+
<span class='label'>initiator:</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="Constants.html" title="Tasker::Constants (module)">Constants</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Constants.html#UNKNOWN-constant" title="Tasker::Constants::UNKNOWN (constant)">UNKNOWN</a></span></span><span class='comma'>,</span>
|
1607
|
+
<span class='label'>source_system:</span> <span class='const'><span class='object_link'><a href="Constants.html" title="Tasker::Constants (module)">Constants</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Constants.html#UNKNOWN-constant" title="Tasker::Constants::UNKNOWN (constant)">UNKNOWN</a></span></span><span class='comma'>,</span>
|
1608
|
+
<span class='label'>reason:</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="Constants.html" title="Tasker::Constants (module)">Constants</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Constants.html#UNKNOWN-constant" title="Tasker::Constants::UNKNOWN (constant)">UNKNOWN</a></span></span><span class='comma'>,</span>
|
1609
|
+
<span class='label'>complete:</span> <span class='kw'>false</span><span class='comma'>,</span>
|
1610
|
+
<span class='label'>tags:</span> <span class='lbracket'>[</span><span class='rbracket'>]</span><span class='comma'>,</span>
|
1611
|
+
<span class='label'>bypass_steps:</span> <span class='lbracket'>[</span><span class='rbracket'>]</span><span class='comma'>,</span>
|
1612
|
+
<span class='label'>requested_at:</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_zone'>zone</span><span class='period'>.</span><span class='id identifier rubyid_now'>now</span><span class='comma'>,</span>
|
1613
|
+
<span class='label'>named_task_id:</span> <span class='id identifier rubyid_named_task'>named_task</span><span class='period'>.</span><span class='id identifier rubyid_named_task_id'>named_task_id</span>
|
1614
|
+
<span class='rbrace'>}</span>
|
1615
|
+
<span class='kw'>end</span></pre>
|
1616
|
+
</td>
|
1617
|
+
</tr>
|
1618
|
+
</table>
|
1619
|
+
</div>
|
1620
|
+
|
1621
|
+
<div class="method_details ">
|
1622
|
+
<h3 class="signature " id="get_request_options-class_method">
|
1623
|
+
|
1624
|
+
.<strong>get_request_options</strong>(task_request) ⇒ <tt>Hash</tt>
|
1625
|
+
|
1626
|
+
|
1627
|
+
|
1628
|
+
|
1629
|
+
|
1630
|
+
</h3><div class="docstring">
|
1631
|
+
<div class="discussion">
|
1632
|
+
|
1633
|
+
<p>Extracts and compacts options from a task request</p>
|
1634
|
+
|
1635
|
+
|
1636
|
+
</div>
|
1637
|
+
</div>
|
1638
|
+
<div class="tags">
|
1639
|
+
<p class="tag_title">Parameters:</p>
|
1640
|
+
<ul class="param">
|
1641
|
+
|
1642
|
+
<li>
|
1643
|
+
|
1644
|
+
<span class='name'>task_request</span>
|
1645
|
+
|
1646
|
+
|
1647
|
+
<span class='type'>(<tt><span class='object_link'><a href="Types/TaskRequest.html" title="Tasker::Types::TaskRequest (class)">Tasker::Types::TaskRequest</a></span></tt>)</span>
|
1648
|
+
|
1649
|
+
|
1650
|
+
|
1651
|
+
—
|
1652
|
+
<div class='inline'>
|
1653
|
+
<p>The task request to extract options from</p>
|
1654
|
+
</div>
|
1655
|
+
|
1656
|
+
</li>
|
1657
|
+
|
1658
|
+
</ul>
|
1659
|
+
|
1660
|
+
<p class="tag_title">Returns:</p>
|
1661
|
+
<ul class="return">
|
1662
|
+
|
1663
|
+
<li>
|
1664
|
+
|
1665
|
+
|
1666
|
+
<span class='type'>(<tt>Hash</tt>)</span>
|
1667
|
+
|
1668
|
+
|
1669
|
+
|
1670
|
+
—
|
1671
|
+
<div class='inline'>
|
1672
|
+
<p>Hash of non-nil task options from the request</p>
|
1673
|
+
</div>
|
1674
|
+
|
1675
|
+
</li>
|
1676
|
+
|
1677
|
+
</ul>
|
1678
|
+
|
1679
|
+
</div><table class="source_code">
|
1680
|
+
<tr>
|
1681
|
+
<td>
|
1682
|
+
<pre class="lines">
|
1683
|
+
|
1684
|
+
|
1685
|
+
262
|
1686
|
+
263
|
1687
|
+
264
|
1688
|
+
265
|
1689
|
+
266
|
1690
|
+
267
|
1691
|
+
268
|
1692
|
+
269
|
1693
|
+
270
|
1694
|
+
271
|
1695
|
+
272</pre>
|
1696
|
+
</td>
|
1697
|
+
<td>
|
1698
|
+
<pre class="code"><span class="info file"># File 'app/models/tasker/task.rb', line 262</span>
|
1699
|
+
|
1700
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_get_request_options'>get_request_options</span><span class='lparen'>(</span><span class='id identifier rubyid_task_request'>task_request</span><span class='rparen'>)</span>
|
1701
|
+
<span class='lbrace'>{</span>
|
1702
|
+
<span class='label'>initiator:</span> <span class='id identifier rubyid_task_request'>task_request</span><span class='period'>.</span><span class='id identifier rubyid_initiator'>initiator</span><span class='comma'>,</span>
|
1703
|
+
<span class='label'>source_system:</span> <span class='id identifier rubyid_task_request'>task_request</span><span class='period'>.</span><span class='id identifier rubyid_source_system'>source_system</span><span class='comma'>,</span>
|
1704
|
+
<span class='label'>reason:</span> <span class='id identifier rubyid_task_request'>task_request</span><span class='period'>.</span><span class='id identifier rubyid_reason'>reason</span><span class='comma'>,</span>
|
1705
|
+
<span class='label'>tags:</span> <span class='id identifier rubyid_task_request'>task_request</span><span class='period'>.</span><span class='id identifier rubyid_tags'>tags</span><span class='comma'>,</span>
|
1706
|
+
<span class='label'>bypass_steps:</span> <span class='id identifier rubyid_task_request'>task_request</span><span class='period'>.</span><span class='id identifier rubyid_bypass_steps'>bypass_steps</span><span class='comma'>,</span>
|
1707
|
+
<span class='label'>requested_at:</span> <span class='id identifier rubyid_task_request'>task_request</span><span class='period'>.</span><span class='id identifier rubyid_requested_at'>requested_at</span><span class='comma'>,</span>
|
1708
|
+
<span class='label'>context:</span> <span class='id identifier rubyid_task_request'>task_request</span><span class='period'>.</span><span class='id identifier rubyid_context'>context</span>
|
1709
|
+
<span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_compact'>compact</span>
|
1710
|
+
<span class='kw'>end</span></pre>
|
1711
|
+
</td>
|
1712
|
+
</tr>
|
1713
|
+
</table>
|
1714
|
+
</div>
|
1715
|
+
|
1716
|
+
<div class="method_details ">
|
1717
|
+
<h3 class="signature " id="in_namespace-class_method">
|
1718
|
+
|
1719
|
+
.<strong>in_namespace</strong> ⇒ <tt>ActiveRecord::Relation</tt>
|
1720
|
+
|
1721
|
+
|
1722
|
+
|
1723
|
+
|
1724
|
+
|
1725
|
+
</h3><div class="docstring">
|
1726
|
+
<div class="discussion">
|
1727
|
+
|
1728
|
+
<p>Scopes tasks by namespace name through the named_task association</p>
|
1729
|
+
|
1730
|
+
|
1731
|
+
</div>
|
1732
|
+
</div>
|
1733
|
+
<div class="tags">
|
1734
|
+
<p class="tag_title">Parameters:</p>
|
1735
|
+
<ul class="param">
|
1736
|
+
|
1737
|
+
<li>
|
1738
|
+
|
1739
|
+
<span class='name'>namespace_name</span>
|
1740
|
+
|
1741
|
+
|
1742
|
+
<span class='type'>(<tt>String</tt>)</span>
|
1743
|
+
|
1744
|
+
|
1745
|
+
|
1746
|
+
—
|
1747
|
+
<div class='inline'>
|
1748
|
+
<p>The namespace name to filter by</p>
|
1749
|
+
</div>
|
1750
|
+
|
1751
|
+
</li>
|
1752
|
+
|
1753
|
+
</ul>
|
1754
|
+
|
1755
|
+
<p class="tag_title">Returns:</p>
|
1756
|
+
<ul class="return">
|
1757
|
+
|
1758
|
+
<li>
|
1759
|
+
|
1760
|
+
|
1761
|
+
<span class='type'>(<tt>ActiveRecord::Relation</tt>)</span>
|
1762
|
+
|
1763
|
+
|
1764
|
+
|
1765
|
+
—
|
1766
|
+
<div class='inline'>
|
1767
|
+
<p>Tasks in the specified namespace</p>
|
1768
|
+
</div>
|
1769
|
+
|
1770
|
+
</li>
|
1771
|
+
|
1772
|
+
</ul>
|
1773
|
+
|
1774
|
+
</div><table class="source_code">
|
1775
|
+
<tr>
|
1776
|
+
<td>
|
1777
|
+
<pre class="lines">
|
1778
|
+
|
1779
|
+
|
1780
|
+
198
|
1781
|
+
199
|
1782
|
+
200
|
1783
|
+
201</pre>
|
1784
|
+
</td>
|
1785
|
+
<td>
|
1786
|
+
<pre class="code"><span class="info file"># File 'app/models/tasker/task.rb', line 198</span>
|
1787
|
+
|
1788
|
+
<span class='id identifier rubyid_scope'>scope</span> <span class='symbol'>:in_namespace</span><span class='comma'>,</span> <span class='id identifier rubyid_lambda'>lambda</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_namespace_name'>namespace_name</span><span class='op'>|</span>
|
1789
|
+
<span class='id identifier rubyid_joins'>joins</span><span class='lparen'>(</span><span class='label'>named_task:</span> <span class='symbol'>:task_namespace</span><span class='rparen'>)</span>
|
1790
|
+
<span class='period'>.</span><span class='id identifier rubyid_where'>where</span><span class='lparen'>(</span><span class='label'>tasker_task_namespaces:</span> <span class='lbrace'>{</span> <span class='label'>name:</span> <span class='id identifier rubyid_namespace_name'>namespace_name</span> <span class='rbrace'>}</span><span class='rparen'>)</span>
|
1791
|
+
<span class='rbrace'>}</span></pre>
|
1792
|
+
</td>
|
1793
|
+
</tr>
|
1794
|
+
</table>
|
1795
|
+
</div>
|
1796
|
+
|
1797
|
+
<div class="method_details ">
|
1798
|
+
<h3 class="signature " id="unique_task_types_count-class_method">
|
1799
|
+
|
1800
|
+
.<strong>unique_task_types_count</strong> ⇒ <tt>Integer</tt>
|
1801
|
+
|
1802
|
+
|
1803
|
+
|
1804
|
+
|
1805
|
+
|
1806
|
+
</h3><div class="docstring">
|
1807
|
+
<div class="discussion">
|
1808
|
+
|
1809
|
+
<p>Class method for counting unique task types</p>
|
1810
|
+
|
1811
|
+
|
1812
|
+
</div>
|
1813
|
+
</div>
|
1814
|
+
<div class="tags">
|
1815
|
+
|
1816
|
+
<p class="tag_title">Returns:</p>
|
1817
|
+
<ul class="return">
|
1818
|
+
|
1819
|
+
<li>
|
1820
|
+
|
1821
|
+
|
1822
|
+
<span class='type'>(<tt>Integer</tt>)</span>
|
1823
|
+
|
1824
|
+
|
1825
|
+
|
1826
|
+
—
|
1827
|
+
<div class='inline'>
|
1828
|
+
<p>Count of unique task names</p>
|
1829
|
+
</div>
|
1830
|
+
|
1831
|
+
</li>
|
1832
|
+
|
1833
|
+
</ul>
|
1834
|
+
|
1835
|
+
</div><table class="source_code">
|
1836
|
+
<tr>
|
1837
|
+
<td>
|
1838
|
+
<pre class="lines">
|
1839
|
+
|
1840
|
+
|
1841
|
+
226
|
1842
|
+
227
|
1843
|
+
228</pre>
|
1844
|
+
</td>
|
1845
|
+
<td>
|
1846
|
+
<pre class="code"><span class="info file"># File 'app/models/tasker/task.rb', line 226</span>
|
1847
|
+
|
1848
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_unique_task_types_count'>unique_task_types_count</span>
|
1849
|
+
<span class='id identifier rubyid_joins'>joins</span><span class='lparen'>(</span><span class='symbol'>:named_task</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_distinct'>distinct</span><span class='period'>.</span><span class='id identifier rubyid_count'>count</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>tasker_named_tasks.name</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
|
1850
|
+
<span class='kw'>end</span></pre>
|
1851
|
+
</td>
|
1852
|
+
</tr>
|
1853
|
+
</table>
|
1854
|
+
</div>
|
1855
|
+
|
1856
|
+
<div class="method_details ">
|
1857
|
+
<h3 class="signature " id="with_task_name-class_method">
|
1858
|
+
|
1859
|
+
.<strong>with_task_name</strong> ⇒ <tt>ActiveRecord::Relation</tt>
|
1860
|
+
|
1861
|
+
|
1862
|
+
|
1863
|
+
|
1864
|
+
|
1865
|
+
</h3><div class="docstring">
|
1866
|
+
<div class="discussion">
|
1867
|
+
|
1868
|
+
<p>Scopes tasks by task name through the named_task association</p>
|
1869
|
+
|
1870
|
+
|
1871
|
+
</div>
|
1872
|
+
</div>
|
1873
|
+
<div class="tags">
|
1874
|
+
<p class="tag_title">Parameters:</p>
|
1875
|
+
<ul class="param">
|
1876
|
+
|
1877
|
+
<li>
|
1878
|
+
|
1879
|
+
<span class='name'>task_name</span>
|
1880
|
+
|
1881
|
+
|
1882
|
+
<span class='type'>(<tt>String</tt>)</span>
|
1883
|
+
|
1884
|
+
|
1885
|
+
|
1886
|
+
—
|
1887
|
+
<div class='inline'>
|
1888
|
+
<p>The task name to filter by</p>
|
1889
|
+
</div>
|
1890
|
+
|
1891
|
+
</li>
|
1892
|
+
|
1893
|
+
</ul>
|
1894
|
+
|
1895
|
+
<p class="tag_title">Returns:</p>
|
1896
|
+
<ul class="return">
|
1897
|
+
|
1898
|
+
<li>
|
1899
|
+
|
1900
|
+
|
1901
|
+
<span class='type'>(<tt>ActiveRecord::Relation</tt>)</span>
|
1902
|
+
|
1903
|
+
|
1904
|
+
|
1905
|
+
—
|
1906
|
+
<div class='inline'>
|
1907
|
+
<p>Tasks with the specified name</p>
|
1908
|
+
</div>
|
1909
|
+
|
1910
|
+
</li>
|
1911
|
+
|
1912
|
+
</ul>
|
1913
|
+
|
1914
|
+
</div><table class="source_code">
|
1915
|
+
<tr>
|
1916
|
+
<td>
|
1917
|
+
<pre class="lines">
|
1918
|
+
|
1919
|
+
|
1920
|
+
208
|
1921
|
+
209
|
1922
|
+
210
|
1923
|
+
211</pre>
|
1924
|
+
</td>
|
1925
|
+
<td>
|
1926
|
+
<pre class="code"><span class="info file"># File 'app/models/tasker/task.rb', line 208</span>
|
1927
|
+
|
1928
|
+
<span class='id identifier rubyid_scope'>scope</span> <span class='symbol'>:with_task_name</span><span class='comma'>,</span> <span class='id identifier rubyid_lambda'>lambda</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_task_name'>task_name</span><span class='op'>|</span>
|
1929
|
+
<span class='id identifier rubyid_joins'>joins</span><span class='lparen'>(</span><span class='symbol'>:named_task</span><span class='rparen'>)</span>
|
1930
|
+
<span class='period'>.</span><span class='id identifier rubyid_where'>where</span><span class='lparen'>(</span><span class='label'>tasker_named_tasks:</span> <span class='lbrace'>{</span> <span class='label'>name:</span> <span class='id identifier rubyid_task_name'>task_name</span> <span class='rbrace'>}</span><span class='rparen'>)</span>
|
1931
|
+
<span class='rbrace'>}</span></pre>
|
1932
|
+
</td>
|
1933
|
+
</tr>
|
1934
|
+
</table>
|
1935
|
+
</div>
|
1936
|
+
|
1937
|
+
<div class="method_details ">
|
1938
|
+
<h3 class="signature " id="with_version-class_method">
|
1939
|
+
|
1940
|
+
.<strong>with_version</strong> ⇒ <tt>ActiveRecord::Relation</tt>
|
1941
|
+
|
1942
|
+
|
1943
|
+
|
1944
|
+
|
1945
|
+
|
1946
|
+
</h3><div class="docstring">
|
1947
|
+
<div class="discussion">
|
1948
|
+
|
1949
|
+
<p>Scopes tasks by version through the named_task association</p>
|
1950
|
+
|
1951
|
+
|
1952
|
+
</div>
|
1953
|
+
</div>
|
1954
|
+
<div class="tags">
|
1955
|
+
<p class="tag_title">Parameters:</p>
|
1956
|
+
<ul class="param">
|
1957
|
+
|
1958
|
+
<li>
|
1959
|
+
|
1960
|
+
<span class='name'>version</span>
|
1961
|
+
|
1962
|
+
|
1963
|
+
<span class='type'>(<tt>String</tt>)</span>
|
1964
|
+
|
1965
|
+
|
1966
|
+
|
1967
|
+
—
|
1968
|
+
<div class='inline'>
|
1969
|
+
<p>The version to filter by</p>
|
1970
|
+
</div>
|
1971
|
+
|
1972
|
+
</li>
|
1973
|
+
|
1974
|
+
</ul>
|
1975
|
+
|
1976
|
+
<p class="tag_title">Returns:</p>
|
1977
|
+
<ul class="return">
|
1978
|
+
|
1979
|
+
<li>
|
1980
|
+
|
1981
|
+
|
1982
|
+
<span class='type'>(<tt>ActiveRecord::Relation</tt>)</span>
|
1983
|
+
|
1984
|
+
|
1985
|
+
|
1986
|
+
—
|
1987
|
+
<div class='inline'>
|
1988
|
+
<p>Tasks with the specified version</p>
|
1989
|
+
</div>
|
1990
|
+
|
1991
|
+
</li>
|
1992
|
+
|
1993
|
+
</ul>
|
1994
|
+
|
1995
|
+
</div><table class="source_code">
|
1996
|
+
<tr>
|
1997
|
+
<td>
|
1998
|
+
<pre class="lines">
|
1999
|
+
|
2000
|
+
|
2001
|
+
218
|
2002
|
+
219
|
2003
|
+
220
|
2004
|
+
221</pre>
|
2005
|
+
</td>
|
2006
|
+
<td>
|
2007
|
+
<pre class="code"><span class="info file"># File 'app/models/tasker/task.rb', line 218</span>
|
2008
|
+
|
2009
|
+
<span class='id identifier rubyid_scope'>scope</span> <span class='symbol'>:with_version</span><span class='comma'>,</span> <span class='id identifier rubyid_lambda'>lambda</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_version'>version</span><span class='op'>|</span>
|
2010
|
+
<span class='id identifier rubyid_joins'>joins</span><span class='lparen'>(</span><span class='symbol'>:named_task</span><span class='rparen'>)</span>
|
2011
|
+
<span class='period'>.</span><span class='id identifier rubyid_where'>where</span><span class='lparen'>(</span><span class='label'>tasker_named_tasks:</span> <span class='lbrace'>{</span> <span class='label'>version:</span> <span class='id identifier rubyid_version'>version</span> <span class='rbrace'>}</span><span class='rparen'>)</span>
|
2012
|
+
<span class='rbrace'>}</span></pre>
|
2013
|
+
</td>
|
2014
|
+
</tr>
|
2015
|
+
</table>
|
2016
|
+
</div>
|
2017
|
+
|
2018
|
+
</div>
|
2019
|
+
|
2020
|
+
<div id="instance_method_details" class="method_details_list">
|
2021
|
+
<h2>Instance Method Details</h2>
|
2022
|
+
|
2023
|
+
|
2024
|
+
<div class="method_details first">
|
2025
|
+
<h3 class="signature first" id="all_steps_complete?-instance_method">
|
2026
|
+
|
2027
|
+
#<strong>all_steps_complete?</strong> ⇒ <tt>Boolean</tt>
|
2028
|
+
|
2029
|
+
|
2030
|
+
|
2031
|
+
|
2032
|
+
|
2033
|
+
</h3><div class="docstring">
|
2034
|
+
<div class="discussion">
|
2035
|
+
|
2036
|
+
<p>Checks if all steps in the task are complete</p>
|
2037
|
+
|
2038
|
+
|
2039
|
+
</div>
|
2040
|
+
</div>
|
2041
|
+
<div class="tags">
|
2042
|
+
|
2043
|
+
<p class="tag_title">Returns:</p>
|
2044
|
+
<ul class="return">
|
2045
|
+
|
2046
|
+
<li>
|
2047
|
+
|
2048
|
+
|
2049
|
+
<span class='type'>(<tt>Boolean</tt>)</span>
|
2050
|
+
|
2051
|
+
|
2052
|
+
|
2053
|
+
—
|
2054
|
+
<div class='inline'>
|
2055
|
+
<p>True if all steps are complete, false otherwise</p>
|
2056
|
+
</div>
|
2057
|
+
|
2058
|
+
</li>
|
2059
|
+
|
2060
|
+
</ul>
|
2061
|
+
|
2062
|
+
</div><table class="source_code">
|
2063
|
+
<tr>
|
2064
|
+
<td>
|
2065
|
+
<pre class="lines">
|
2066
|
+
|
2067
|
+
|
2068
|
+
322
|
2069
|
+
323
|
2070
|
+
324</pre>
|
2071
|
+
</td>
|
2072
|
+
<td>
|
2073
|
+
<pre class="code"><span class="info file"># File 'app/models/tasker/task.rb', line 322</span>
|
2074
|
+
|
2075
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_all_steps_complete?'>all_steps_complete?</span>
|
2076
|
+
<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="StepReadinessStatus.html" title="Tasker::StepReadinessStatus (class)">StepReadinessStatus</a></span></span><span class='period'>.</span><span class='id identifier rubyid_all_steps_complete_for_task?'><span class='object_link'><a href="StepReadinessStatus.html#all_steps_complete_for_task%3F-class_method" title="Tasker::StepReadinessStatus.all_steps_complete_for_task? (method)">all_steps_complete_for_task?</a></span></span><span class='lparen'>(</span><span class='kw'>self</span><span class='rparen'>)</span>
|
2077
|
+
<span class='kw'>end</span></pre>
|
2078
|
+
</td>
|
2079
|
+
</tr>
|
2080
|
+
</table>
|
2081
|
+
</div>
|
2082
|
+
|
2083
|
+
<div class="method_details ">
|
2084
|
+
<h3 class="signature " id="dependency_graph-instance_method">
|
2085
|
+
|
2086
|
+
#<strong>dependency_graph</strong> ⇒ <tt>Hash</tt>
|
2087
|
+
|
2088
|
+
|
2089
|
+
|
2090
|
+
|
2091
|
+
|
2092
|
+
</h3><div class="docstring">
|
2093
|
+
<div class="discussion">
|
2094
|
+
|
2095
|
+
<p>Provides runtime dependency graph analysis Delegates to RuntimeGraphAnalyzer for graph-based analysis</p>
|
2096
|
+
|
2097
|
+
|
2098
|
+
</div>
|
2099
|
+
</div>
|
2100
|
+
<div class="tags">
|
2101
|
+
|
2102
|
+
<p class="tag_title">Returns:</p>
|
2103
|
+
<ul class="return">
|
2104
|
+
|
2105
|
+
<li>
|
2106
|
+
|
2107
|
+
|
2108
|
+
<span class='type'>(<tt>Hash</tt>)</span>
|
2109
|
+
|
2110
|
+
|
2111
|
+
|
2112
|
+
—
|
2113
|
+
<div class='inline'>
|
2114
|
+
<p>Runtime dependency graph analysis</p>
|
2115
|
+
</div>
|
2116
|
+
|
2117
|
+
</li>
|
2118
|
+
|
2119
|
+
</ul>
|
2120
|
+
|
2121
|
+
</div><table class="source_code">
|
2122
|
+
<tr>
|
2123
|
+
<td>
|
2124
|
+
<pre class="lines">
|
2125
|
+
|
2126
|
+
|
2127
|
+
315
|
2128
|
+
316
|
2129
|
+
317</pre>
|
2130
|
+
</td>
|
2131
|
+
<td>
|
2132
|
+
<pre class="code"><span class="info file"># File 'app/models/tasker/task.rb', line 315</span>
|
2133
|
+
|
2134
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_dependency_graph'>dependency_graph</span>
|
2135
|
+
<span class='id identifier rubyid_runtime_analyzer'>runtime_analyzer</span><span class='period'>.</span><span class='id identifier rubyid_analyze'>analyze</span>
|
2136
|
+
<span class='kw'>end</span></pre>
|
2137
|
+
</td>
|
2138
|
+
</tr>
|
2139
|
+
</table>
|
2140
|
+
</div>
|
2141
|
+
|
2142
|
+
<div class="method_details ">
|
2143
|
+
<h3 class="signature " id="diagram-instance_method">
|
2144
|
+
|
2145
|
+
#<strong>diagram</strong>(base_url = nil) ⇒ <tt><span class='object_link'><a href="TaskDiagram.html" title="Tasker::TaskDiagram (class)">Tasker::TaskDiagram</a></span></tt>
|
2146
|
+
|
2147
|
+
|
2148
|
+
|
2149
|
+
|
2150
|
+
|
2151
|
+
</h3><div class="docstring">
|
2152
|
+
<div class="discussion">
|
2153
|
+
|
2154
|
+
<p>Gets or creates a diagram representation of this task</p>
|
2155
|
+
|
2156
|
+
|
2157
|
+
</div>
|
2158
|
+
</div>
|
2159
|
+
<div class="tags">
|
2160
|
+
<p class="tag_title">Parameters:</p>
|
2161
|
+
<ul class="param">
|
2162
|
+
|
2163
|
+
<li>
|
2164
|
+
|
2165
|
+
<span class='name'>base_url</span>
|
2166
|
+
|
2167
|
+
|
2168
|
+
<span class='type'>(<tt>String</tt>, <tt>nil</tt>)</span>
|
2169
|
+
|
2170
|
+
|
2171
|
+
<em class="default">(defaults to: <tt>nil</tt>)</em>
|
2172
|
+
|
2173
|
+
|
2174
|
+
—
|
2175
|
+
<div class='inline'>
|
2176
|
+
<p>The base URL to use for links in the diagram, defaults to nil</p>
|
2177
|
+
</div>
|
2178
|
+
|
2179
|
+
</li>
|
2180
|
+
|
2181
|
+
</ul>
|
2182
|
+
|
2183
|
+
<p class="tag_title">Returns:</p>
|
2184
|
+
<ul class="return">
|
2185
|
+
|
2186
|
+
<li>
|
2187
|
+
|
2188
|
+
|
2189
|
+
<span class='type'>(<tt><span class='object_link'><a href="TaskDiagram.html" title="Tasker::TaskDiagram (class)">Tasker::TaskDiagram</a></span></tt>)</span>
|
2190
|
+
|
2191
|
+
|
2192
|
+
|
2193
|
+
—
|
2194
|
+
<div class='inline'>
|
2195
|
+
<p>The diagram representation of this task</p>
|
2196
|
+
</div>
|
2197
|
+
|
2198
|
+
</li>
|
2199
|
+
|
2200
|
+
</ul>
|
2201
|
+
|
2202
|
+
</div><table class="source_code">
|
2203
|
+
<tr>
|
2204
|
+
<td>
|
2205
|
+
<pre class="lines">
|
2206
|
+
|
2207
|
+
|
2208
|
+
303
|
2209
|
+
304
|
2210
|
+
305</pre>
|
2211
|
+
</td>
|
2212
|
+
<td>
|
2213
|
+
<pre class="code"><span class="info file"># File 'app/models/tasker/task.rb', line 303</span>
|
2214
|
+
|
2215
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_diagram'>diagram</span><span class='lparen'>(</span><span class='id identifier rubyid_base_url'>base_url</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
|
2216
|
+
<span class='ivar'>@diagram</span> <span class='op'>||=</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="TaskDiagram.html" title="Tasker::TaskDiagram (class)">TaskDiagram</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="TaskDiagram.html#initialize-instance_method" title="Tasker::TaskDiagram#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='kw'>self</span><span class='comma'>,</span> <span class='id identifier rubyid_base_url'>base_url</span><span class='rparen'>)</span>
|
2217
|
+
<span class='kw'>end</span></pre>
|
2218
|
+
</td>
|
2219
|
+
</tr>
|
2220
|
+
</table>
|
2221
|
+
</div>
|
2222
|
+
|
2223
|
+
<div class="method_details ">
|
2224
|
+
<h3 class="signature " id="get_step_by_name-instance_method">
|
2225
|
+
|
2226
|
+
#<strong>get_step_by_name</strong>(name) ⇒ <tt><span class='object_link'><a href="WorkflowStep.html" title="Tasker::WorkflowStep (class)">Tasker::WorkflowStep</a></span></tt><sup>?</sup>
|
2227
|
+
|
2228
|
+
|
2229
|
+
|
2230
|
+
|
2231
|
+
|
2232
|
+
</h3><div class="docstring">
|
2233
|
+
<div class="discussion">
|
2234
|
+
|
2235
|
+
<p>Finds a workflow step by its name</p>
|
2236
|
+
|
2237
|
+
|
2238
|
+
</div>
|
2239
|
+
</div>
|
2240
|
+
<div class="tags">
|
2241
|
+
<p class="tag_title">Parameters:</p>
|
2242
|
+
<ul class="param">
|
2243
|
+
|
2244
|
+
<li>
|
2245
|
+
|
2246
|
+
<span class='name'>name</span>
|
2247
|
+
|
2248
|
+
|
2249
|
+
<span class='type'>(<tt>String</tt>)</span>
|
2250
|
+
|
2251
|
+
|
2252
|
+
|
2253
|
+
—
|
2254
|
+
<div class='inline'>
|
2255
|
+
<p>The name of the step to find</p>
|
2256
|
+
</div>
|
2257
|
+
|
2258
|
+
</li>
|
2259
|
+
|
2260
|
+
</ul>
|
2261
|
+
|
2262
|
+
<p class="tag_title">Returns:</p>
|
2263
|
+
<ul class="return">
|
2264
|
+
|
2265
|
+
<li>
|
2266
|
+
|
2267
|
+
|
2268
|
+
<span class='type'>(<tt><span class='object_link'><a href="WorkflowStep.html" title="Tasker::WorkflowStep (class)">Tasker::WorkflowStep</a></span></tt>, <tt>nil</tt>)</span>
|
2269
|
+
|
2270
|
+
|
2271
|
+
|
2272
|
+
—
|
2273
|
+
<div class='inline'>
|
2274
|
+
<p>The workflow step with the given name, or nil if not found</p>
|
2275
|
+
</div>
|
2276
|
+
|
2277
|
+
</li>
|
2278
|
+
|
2279
|
+
</ul>
|
2280
|
+
|
2281
|
+
</div><table class="source_code">
|
2282
|
+
<tr>
|
2283
|
+
<td>
|
2284
|
+
<pre class="lines">
|
2285
|
+
|
2286
|
+
|
2287
|
+
295
|
2288
|
+
296
|
2289
|
+
297</pre>
|
2290
|
+
</td>
|
2291
|
+
<td>
|
2292
|
+
<pre class="code"><span class="info file"># File 'app/models/tasker/task.rb', line 295</span>
|
2293
|
+
|
2294
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_get_step_by_name'>get_step_by_name</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span>
|
2295
|
+
<span class='id identifier rubyid_workflow_steps'>workflow_steps</span><span class='period'>.</span><span class='id identifier rubyid_includes'>includes</span><span class='lparen'>(</span><span class='symbol'>:named_step</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_where'>where</span><span class='lparen'>(</span><span class='label'>named_step:</span> <span class='lbrace'>{</span> <span class='label'>name:</span> <span class='id identifier rubyid_name'>name</span> <span class='rbrace'>}</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_first'>first</span>
|
2296
|
+
<span class='kw'>end</span></pre>
|
2297
|
+
</td>
|
2298
|
+
</tr>
|
2299
|
+
</table>
|
2300
|
+
</div>
|
2301
|
+
|
2302
|
+
<div class="method_details ">
|
2303
|
+
<h3 class="signature " id="reload-instance_method">
|
2304
|
+
|
2305
|
+
#<strong>reload</strong> ⇒ <tt>Object</tt>
|
2306
|
+
|
2307
|
+
|
2308
|
+
|
2309
|
+
|
2310
|
+
|
2311
|
+
</h3><table class="source_code">
|
2312
|
+
<tr>
|
2313
|
+
<td>
|
2314
|
+
<pre class="lines">
|
2315
|
+
|
2316
|
+
|
2317
|
+
330
|
2318
|
+
331
|
2319
|
+
332
|
2320
|
+
333
|
2321
|
+
334</pre>
|
2322
|
+
</td>
|
2323
|
+
<td>
|
2324
|
+
<pre class="code"><span class="info file"># File 'app/models/tasker/task.rb', line 330</span>
|
2325
|
+
|
2326
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_reload'>reload</span>
|
2327
|
+
<span class='kw'>super</span>
|
2328
|
+
<span class='ivar'>@task_execution_context</span> <span class='op'>=</span> <span class='kw'>nil</span>
|
2329
|
+
<span class='ivar'>@diagram</span> <span class='op'>=</span> <span class='kw'>nil</span>
|
2330
|
+
<span class='kw'>end</span></pre>
|
2331
|
+
</td>
|
2332
|
+
</tr>
|
2333
|
+
</table>
|
2334
|
+
</div>
|
2335
|
+
|
2336
|
+
<div class="method_details ">
|
2337
|
+
<h3 class="signature " id="runtime_analyzer-instance_method">
|
2338
|
+
|
2339
|
+
#<strong>runtime_analyzer</strong> ⇒ <tt>Object</tt>
|
2340
|
+
|
2341
|
+
|
2342
|
+
|
2343
|
+
|
2344
|
+
|
2345
|
+
</h3><table class="source_code">
|
2346
|
+
<tr>
|
2347
|
+
<td>
|
2348
|
+
<pre class="lines">
|
2349
|
+
|
2350
|
+
|
2351
|
+
307
|
2352
|
+
308
|
2353
|
+
309</pre>
|
2354
|
+
</td>
|
2355
|
+
<td>
|
2356
|
+
<pre class="code"><span class="info file"># File 'app/models/tasker/task.rb', line 307</span>
|
2357
|
+
|
2358
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_runtime_analyzer'>runtime_analyzer</span>
|
2359
|
+
<span class='ivar'>@runtime_analyzer</span> <span class='op'>||=</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="Analysis.html" title="Tasker::Analysis (module)">Analysis</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Analysis/RuntimeGraphAnalyzer.html" title="Tasker::Analysis::RuntimeGraphAnalyzer (class)">RuntimeGraphAnalyzer</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="Analysis/RuntimeGraphAnalyzer.html#initialize-instance_method" title="Tasker::Analysis::RuntimeGraphAnalyzer#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='label'>task:</span> <span class='kw'>self</span><span class='rparen'>)</span>
|
2360
|
+
<span class='kw'>end</span></pre>
|
2361
|
+
</td>
|
2362
|
+
</tr>
|
2363
|
+
</table>
|
2364
|
+
</div>
|
2365
|
+
|
2366
|
+
<div class="method_details ">
|
2367
|
+
<h3 class="signature " id="state_machine-instance_method">
|
2368
|
+
|
2369
|
+
#<strong>state_machine</strong> ⇒ <tt>Object</tt>
|
2370
|
+
|
2371
|
+
|
2372
|
+
|
2373
|
+
|
2374
|
+
|
2375
|
+
</h3><div class="docstring">
|
2376
|
+
<div class="discussion">
|
2377
|
+
|
2378
|
+
<p>State machine integration</p>
|
2379
|
+
|
2380
|
+
|
2381
|
+
</div>
|
2382
|
+
</div>
|
2383
|
+
<div class="tags">
|
2384
|
+
|
2385
|
+
|
2386
|
+
</div><table class="source_code">
|
2387
|
+
<tr>
|
2388
|
+
<td>
|
2389
|
+
<pre class="lines">
|
2390
|
+
|
2391
|
+
|
2392
|
+
71
|
2393
|
+
72
|
2394
|
+
73
|
2395
|
+
74
|
2396
|
+
75
|
2397
|
+
76
|
2398
|
+
77</pre>
|
2399
|
+
</td>
|
2400
|
+
<td>
|
2401
|
+
<pre class="code"><span class="info file"># File 'app/models/tasker/task.rb', line 71</span>
|
2402
|
+
|
2403
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_state_machine'>state_machine</span>
|
2404
|
+
<span class='ivar'>@state_machine</span> <span class='op'>||=</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="StateMachine.html" title="Tasker::StateMachine (module)">StateMachine</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="StateMachine/TaskStateMachine.html" title="Tasker::StateMachine::TaskStateMachine (class)">TaskStateMachine</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span>
|
2405
|
+
<span class='kw'>self</span><span class='comma'>,</span>
|
2406
|
+
<span class='label'>transition_class:</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="TaskTransition.html" title="Tasker::TaskTransition (class)">TaskTransition</a></span></span><span class='comma'>,</span>
|
2407
|
+
<span class='label'>association_name:</span> <span class='symbol'>:task_transitions</span>
|
2408
|
+
<span class='rparen'>)</span>
|
2409
|
+
<span class='kw'>end</span></pre>
|
2410
|
+
</td>
|
2411
|
+
</tr>
|
2412
|
+
</table>
|
2413
|
+
</div>
|
2414
|
+
|
2415
|
+
<div class="method_details ">
|
2416
|
+
<h3 class="signature " id="status-instance_method">
|
2417
|
+
|
2418
|
+
#<strong>status</strong> ⇒ <tt>Object</tt>
|
2419
|
+
|
2420
|
+
|
2421
|
+
|
2422
|
+
|
2423
|
+
|
2424
|
+
</h3><div class="docstring">
|
2425
|
+
<div class="discussion">
|
2426
|
+
|
2427
|
+
<p>Status is now entirely managed by the state machine</p>
|
2428
|
+
|
2429
|
+
|
2430
|
+
</div>
|
2431
|
+
</div>
|
2432
|
+
<div class="tags">
|
2433
|
+
|
2434
|
+
|
2435
|
+
</div><table class="source_code">
|
2436
|
+
<tr>
|
2437
|
+
<td>
|
2438
|
+
<pre class="lines">
|
2439
|
+
|
2440
|
+
|
2441
|
+
80
|
2442
|
+
81
|
2443
|
+
82
|
2444
|
+
83
|
2445
|
+
84
|
2446
|
+
85
|
2447
|
+
86
|
2448
|
+
87
|
2449
|
+
88</pre>
|
2450
|
+
</td>
|
2451
|
+
<td>
|
2452
|
+
<pre class="code"><span class="info file"># File 'app/models/tasker/task.rb', line 80</span>
|
2453
|
+
|
2454
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_status'>status</span>
|
2455
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_new_record?'>new_record?</span>
|
2456
|
+
<span class='comment'># For new records, return the initial state
|
2457
|
+
</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="Constants.html" title="Tasker::Constants (module)">Constants</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Constants/TaskStatuses.html" title="Tasker::Constants::TaskStatuses (module)">TaskStatuses</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Constants/TaskStatuses.html#PENDING-constant" title="Tasker::Constants::TaskStatuses::PENDING (constant)">PENDING</a></span></span>
|
2458
|
+
<span class='kw'>else</span>
|
2459
|
+
<span class='comment'># For persisted records, use state machine
|
2460
|
+
</span> <span class='id identifier rubyid_state_machine'>state_machine</span><span class='period'>.</span><span class='id identifier rubyid_current_state'>current_state</span>
|
2461
|
+
<span class='kw'>end</span>
|
2462
|
+
<span class='kw'>end</span></pre>
|
2463
|
+
</td>
|
2464
|
+
</tr>
|
2465
|
+
</table>
|
2466
|
+
</div>
|
2467
|
+
|
2468
|
+
<div class="method_details ">
|
2469
|
+
<h3 class="signature " id="task_execution_context-instance_method">
|
2470
|
+
|
2471
|
+
#<strong>task_execution_context</strong> ⇒ <tt>Object</tt>
|
2472
|
+
|
2473
|
+
|
2474
|
+
|
2475
|
+
|
2476
|
+
|
2477
|
+
</h3><table class="source_code">
|
2478
|
+
<tr>
|
2479
|
+
<td>
|
2480
|
+
<pre class="lines">
|
2481
|
+
|
2482
|
+
|
2483
|
+
326
|
2484
|
+
327
|
2485
|
+
328</pre>
|
2486
|
+
</td>
|
2487
|
+
<td>
|
2488
|
+
<pre class="code"><span class="info file"># File 'app/models/tasker/task.rb', line 326</span>
|
2489
|
+
|
2490
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_task_execution_context'>task_execution_context</span>
|
2491
|
+
<span class='ivar'>@task_execution_context</span> <span class='op'>||=</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="TaskExecutionContext.html" title="Tasker::TaskExecutionContext (class)">TaskExecutionContext</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="TaskExecutionContext.html#initialize-instance_method" title="Tasker::TaskExecutionContext#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_task_id'>task_id</span><span class='rparen'>)</span>
|
2492
|
+
<span class='kw'>end</span></pre>
|
2493
|
+
</td>
|
2494
|
+
</tr>
|
2495
|
+
</table>
|
2496
|
+
</div>
|
2497
|
+
|
2498
|
+
<div class="method_details ">
|
2499
|
+
<h3 class="signature " id="with_all_associated-instance_method">
|
2500
|
+
|
2501
|
+
#<strong>with_all_associated</strong> ⇒ <tt>ActiveRecord::Relation</tt>
|
2502
|
+
|
2503
|
+
|
2504
|
+
|
2505
|
+
|
2506
|
+
|
2507
|
+
</h3><div class="docstring">
|
2508
|
+
<div class="discussion">
|
2509
|
+
|
2510
|
+
<p>Includes all associated models for efficient querying</p>
|
2511
|
+
|
2512
|
+
|
2513
|
+
</div>
|
2514
|
+
</div>
|
2515
|
+
<div class="tags">
|
2516
|
+
|
2517
|
+
<p class="tag_title">Returns:</p>
|
2518
|
+
<ul class="return">
|
2519
|
+
|
2520
|
+
<li>
|
2521
|
+
|
2522
|
+
|
2523
|
+
<span class='type'>(<tt>ActiveRecord::Relation</tt>)</span>
|
2524
|
+
|
2525
|
+
|
2526
|
+
|
2527
|
+
—
|
2528
|
+
<div class='inline'>
|
2529
|
+
<p>Tasks with all associated records preloaded</p>
|
2530
|
+
</div>
|
2531
|
+
|
2532
|
+
</li>
|
2533
|
+
|
2534
|
+
</ul>
|
2535
|
+
|
2536
|
+
</div><table class="source_code">
|
2537
|
+
<tr>
|
2538
|
+
<td>
|
2539
|
+
<pre class="lines">
|
2540
|
+
|
2541
|
+
|
2542
|
+
130
|
2543
|
+
131
|
2544
|
+
132
|
2545
|
+
133
|
2546
|
+
134
|
2547
|
+
135</pre>
|
2548
|
+
</td>
|
2549
|
+
<td>
|
2550
|
+
<pre class="code"><span class="info file"># File 'app/models/tasker/task.rb', line 130</span>
|
2551
|
+
|
2552
|
+
<span class='id identifier rubyid_scope'>scope</span> <span class='symbol'>:with_all_associated</span><span class='comma'>,</span> <span class='id identifier rubyid_lambda'>lambda</span> <span class='lbrace'>{</span>
|
2553
|
+
<span class='id identifier rubyid_includes'>includes</span><span class='lparen'>(</span><span class='label'>named_task:</span> <span class='lbracket'>[</span><span class='symbol'>:task_namespace</span><span class='rbracket'>]</span><span class='rparen'>)</span>
|
2554
|
+
<span class='period'>.</span><span class='id identifier rubyid_includes'>includes</span><span class='lparen'>(</span><span class='label'>workflow_steps:</span> <span class='qsymbols_beg'>%i[</span><span class='tstring_content'>named_step</span><span class='words_sep'> </span><span class='tstring_content'>parents</span><span class='words_sep'> </span><span class='tstring_content'>children</span><span class='tstring_end'>]</span></span><span class='rparen'>)</span>
|
2555
|
+
<span class='period'>.</span><span class='id identifier rubyid_includes'>includes</span><span class='lparen'>(</span><span class='label'>task_annotations:</span> <span class='qsymbols_beg'>%i[</span><span class='tstring_content'>annotation_type</span><span class='tstring_end'>]</span></span><span class='rparen'>)</span>
|
2556
|
+
<span class='period'>.</span><span class='id identifier rubyid_includes'>includes</span><span class='lparen'>(</span><span class='symbol'>:task_transitions</span><span class='rparen'>)</span>
|
2557
|
+
<span class='rbrace'>}</span></pre>
|
2558
|
+
</td>
|
2559
|
+
</tr>
|
2560
|
+
</table>
|
2561
|
+
</div>
|
2562
|
+
|
2563
|
+
</div>
|
2564
|
+
|
2565
|
+
</div>
|
2566
|
+
|
2567
|
+
<div id="footer">
|
2568
|
+
Generated on Tue Jul 1 16:47:35 2025 by
|
2569
|
+
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
2570
|
+
0.9.37 (ruby-3.2.4).
|
2571
|
+
</div>
|
2572
|
+
|
2573
|
+
</div>
|
2574
|
+
</body>
|
2575
|
+
</html>
|