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,1748 @@
|
|
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::TaskHandler::StepGroup
|
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::TaskHandler::StepGroup";
|
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 (S)</a> »
|
40
|
+
<span class='title'><span class='object_link'><a href="../../Tasker.html" title="Tasker (module)">Tasker</a></span></span> » <span class='title'><span class='object_link'><a href="../TaskHandler.html" title="Tasker::TaskHandler (module)">TaskHandler</a></span></span>
|
41
|
+
»
|
42
|
+
<span class="title">StepGroup</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::TaskHandler::StepGroup
|
63
|
+
|
64
|
+
|
65
|
+
|
66
|
+
</h1>
|
67
|
+
<div class="box_info">
|
68
|
+
|
69
|
+
<dl>
|
70
|
+
<dt>Inherits:</dt>
|
71
|
+
<dd>
|
72
|
+
<span class="inheritName">Object</span>
|
73
|
+
|
74
|
+
<ul class="fullTree">
|
75
|
+
<li>Object</li>
|
76
|
+
|
77
|
+
<li class="next">Tasker::TaskHandler::StepGroup</li>
|
78
|
+
|
79
|
+
</ul>
|
80
|
+
<a href="#" class="inheritanceTree">show all</a>
|
81
|
+
|
82
|
+
</dd>
|
83
|
+
</dl>
|
84
|
+
|
85
|
+
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
<dl>
|
96
|
+
<dt>Defined in:</dt>
|
97
|
+
<dd>lib/tasker/task_handler/step_group.rb</dd>
|
98
|
+
</dl>
|
99
|
+
|
100
|
+
</div>
|
101
|
+
|
102
|
+
<h2>Overview</h2><div class="docstring">
|
103
|
+
<div class="discussion">
|
104
|
+
|
105
|
+
<p>Manages and analyzes groups of workflow steps</p>
|
106
|
+
|
107
|
+
<p>StepGroup is used to track the status of steps in a workflow and determine whether a task is complete, can be finalized, or needs further processing. It traverses the step dependency graph to find incomplete steps.</p>
|
108
|
+
|
109
|
+
|
110
|
+
</div>
|
111
|
+
</div>
|
112
|
+
<div class="tags">
|
113
|
+
|
114
|
+
|
115
|
+
</div>
|
116
|
+
|
117
|
+
|
118
|
+
|
119
|
+
<h2>Instance Attribute Summary <small><a href="#" class="summary_toggle">collapse</a></small></h2>
|
120
|
+
<ul class="summary">
|
121
|
+
|
122
|
+
<li class="public ">
|
123
|
+
<span class="summary_signature">
|
124
|
+
|
125
|
+
<a href="#prior_incomplete_steps-instance_method" title="#prior_incomplete_steps (instance method)">#<strong>prior_incomplete_steps</strong> ⇒ Array<Tasker::WorkflowStep> </a>
|
126
|
+
|
127
|
+
|
128
|
+
|
129
|
+
</span>
|
130
|
+
|
131
|
+
|
132
|
+
|
133
|
+
|
134
|
+
|
135
|
+
|
136
|
+
|
137
|
+
|
138
|
+
|
139
|
+
|
140
|
+
|
141
|
+
|
142
|
+
<span class="summary_desc"><div class='inline'>
|
143
|
+
<p>Steps that were incomplete before this processing pass.</p>
|
144
|
+
</div></span>
|
145
|
+
|
146
|
+
</li>
|
147
|
+
|
148
|
+
|
149
|
+
<li class="public ">
|
150
|
+
<span class="summary_signature">
|
151
|
+
|
152
|
+
<a href="#still_incomplete_steps-instance_method" title="#still_incomplete_steps (instance method)">#<strong>still_incomplete_steps</strong> ⇒ Array<Tasker::WorkflowStep> </a>
|
153
|
+
|
154
|
+
|
155
|
+
|
156
|
+
</span>
|
157
|
+
|
158
|
+
|
159
|
+
|
160
|
+
|
161
|
+
|
162
|
+
|
163
|
+
|
164
|
+
|
165
|
+
|
166
|
+
|
167
|
+
|
168
|
+
|
169
|
+
<span class="summary_desc"><div class='inline'>
|
170
|
+
<p>Steps that are still incomplete after this pass.</p>
|
171
|
+
</div></span>
|
172
|
+
|
173
|
+
</li>
|
174
|
+
|
175
|
+
|
176
|
+
<li class="public ">
|
177
|
+
<span class="summary_signature">
|
178
|
+
|
179
|
+
<a href="#still_working_steps-instance_method" title="#still_working_steps (instance method)">#<strong>still_working_steps</strong> ⇒ Array<Tasker::WorkflowStep> </a>
|
180
|
+
|
181
|
+
|
182
|
+
|
183
|
+
</span>
|
184
|
+
|
185
|
+
|
186
|
+
|
187
|
+
|
188
|
+
|
189
|
+
|
190
|
+
|
191
|
+
|
192
|
+
|
193
|
+
|
194
|
+
|
195
|
+
|
196
|
+
<span class="summary_desc"><div class='inline'>
|
197
|
+
<p>Steps that are still in a working state (pending/in progress).</p>
|
198
|
+
</div></span>
|
199
|
+
|
200
|
+
</li>
|
201
|
+
|
202
|
+
|
203
|
+
<li class="public ">
|
204
|
+
<span class="summary_signature">
|
205
|
+
|
206
|
+
<a href="#this_pass_complete_step_ids-instance_method" title="#this_pass_complete_step_ids (instance method)">#<strong>this_pass_complete_step_ids</strong> ⇒ Array<Integer> </a>
|
207
|
+
|
208
|
+
|
209
|
+
|
210
|
+
</span>
|
211
|
+
|
212
|
+
|
213
|
+
|
214
|
+
|
215
|
+
|
216
|
+
|
217
|
+
|
218
|
+
|
219
|
+
|
220
|
+
|
221
|
+
|
222
|
+
|
223
|
+
<span class="summary_desc"><div class='inline'>
|
224
|
+
<p>IDs of steps completed in this processing pass.</p>
|
225
|
+
</div></span>
|
226
|
+
|
227
|
+
</li>
|
228
|
+
|
229
|
+
|
230
|
+
<li class="public ">
|
231
|
+
<span class="summary_signature">
|
232
|
+
|
233
|
+
<a href="#this_pass_complete_steps-instance_method" title="#this_pass_complete_steps (instance method)">#<strong>this_pass_complete_steps</strong> ⇒ Array<Tasker::WorkflowStep> </a>
|
234
|
+
|
235
|
+
|
236
|
+
|
237
|
+
</span>
|
238
|
+
|
239
|
+
|
240
|
+
|
241
|
+
|
242
|
+
|
243
|
+
|
244
|
+
|
245
|
+
|
246
|
+
|
247
|
+
|
248
|
+
|
249
|
+
|
250
|
+
<span class="summary_desc"><div class='inline'>
|
251
|
+
<p>Steps that were completed in this processing pass.</p>
|
252
|
+
</div></span>
|
253
|
+
|
254
|
+
</li>
|
255
|
+
|
256
|
+
|
257
|
+
</ul>
|
258
|
+
|
259
|
+
|
260
|
+
|
261
|
+
|
262
|
+
|
263
|
+
<h2>
|
264
|
+
Class Method Summary
|
265
|
+
<small><a href="#" class="summary_toggle">collapse</a></small>
|
266
|
+
</h2>
|
267
|
+
|
268
|
+
<ul class="summary">
|
269
|
+
|
270
|
+
<li class="public ">
|
271
|
+
<span class="summary_signature">
|
272
|
+
|
273
|
+
<a href="#build-class_method" title="build (class method)">.<strong>build</strong>(task, sequence, steps) ⇒ StepGroup </a>
|
274
|
+
|
275
|
+
|
276
|
+
|
277
|
+
</span>
|
278
|
+
|
279
|
+
|
280
|
+
|
281
|
+
|
282
|
+
|
283
|
+
|
284
|
+
|
285
|
+
|
286
|
+
|
287
|
+
<span class="summary_desc"><div class='inline'>
|
288
|
+
<p>Build a StepGroup for the given task, sequence and steps.</p>
|
289
|
+
</div></span>
|
290
|
+
|
291
|
+
</li>
|
292
|
+
|
293
|
+
|
294
|
+
</ul>
|
295
|
+
|
296
|
+
<h2>
|
297
|
+
Instance Method Summary
|
298
|
+
<small><a href="#" class="summary_toggle">collapse</a></small>
|
299
|
+
</h2>
|
300
|
+
|
301
|
+
<ul class="summary">
|
302
|
+
|
303
|
+
<li class="public ">
|
304
|
+
<span class="summary_signature">
|
305
|
+
|
306
|
+
<a href="#build-instance_method" title="#build (instance method)">#<strong>build</strong> ⇒ void </a>
|
307
|
+
|
308
|
+
|
309
|
+
|
310
|
+
</span>
|
311
|
+
|
312
|
+
|
313
|
+
|
314
|
+
|
315
|
+
|
316
|
+
|
317
|
+
|
318
|
+
|
319
|
+
|
320
|
+
<span class="summary_desc"><div class='inline'>
|
321
|
+
<p>Build the step group by analyzing all step collections.</p>
|
322
|
+
</div></span>
|
323
|
+
|
324
|
+
</li>
|
325
|
+
|
326
|
+
|
327
|
+
<li class="public ">
|
328
|
+
<span class="summary_signature">
|
329
|
+
|
330
|
+
<a href="#build_prior_incomplete_steps-instance_method" title="#build_prior_incomplete_steps (instance method)">#<strong>build_prior_incomplete_steps</strong> ⇒ void </a>
|
331
|
+
|
332
|
+
|
333
|
+
|
334
|
+
</span>
|
335
|
+
|
336
|
+
|
337
|
+
|
338
|
+
|
339
|
+
|
340
|
+
|
341
|
+
|
342
|
+
|
343
|
+
|
344
|
+
<span class="summary_desc"><div class='inline'>
|
345
|
+
<p>Find all steps that were incomplete prior to this processing pass.</p>
|
346
|
+
</div></span>
|
347
|
+
|
348
|
+
</li>
|
349
|
+
|
350
|
+
|
351
|
+
<li class="public ">
|
352
|
+
<span class="summary_signature">
|
353
|
+
|
354
|
+
<a href="#build_still_incomplete_steps-instance_method" title="#build_still_incomplete_steps (instance method)">#<strong>build_still_incomplete_steps</strong> ⇒ void </a>
|
355
|
+
|
356
|
+
|
357
|
+
|
358
|
+
</span>
|
359
|
+
|
360
|
+
|
361
|
+
|
362
|
+
|
363
|
+
|
364
|
+
|
365
|
+
|
366
|
+
|
367
|
+
|
368
|
+
<span class="summary_desc"><div class='inline'>
|
369
|
+
<p>Find steps that are still incomplete after this processing pass.</p>
|
370
|
+
</div></span>
|
371
|
+
|
372
|
+
</li>
|
373
|
+
|
374
|
+
|
375
|
+
<li class="public ">
|
376
|
+
<span class="summary_signature">
|
377
|
+
|
378
|
+
<a href="#build_still_working_steps-instance_method" title="#build_still_working_steps (instance method)">#<strong>build_still_working_steps</strong> ⇒ void </a>
|
379
|
+
|
380
|
+
|
381
|
+
|
382
|
+
</span>
|
383
|
+
|
384
|
+
|
385
|
+
|
386
|
+
|
387
|
+
|
388
|
+
|
389
|
+
|
390
|
+
|
391
|
+
|
392
|
+
<span class="summary_desc"><div class='inline'>
|
393
|
+
<p>Find steps that are still in a working state (pending/in progress).</p>
|
394
|
+
</div></span>
|
395
|
+
|
396
|
+
</li>
|
397
|
+
|
398
|
+
|
399
|
+
<li class="public ">
|
400
|
+
<span class="summary_signature">
|
401
|
+
|
402
|
+
<a href="#build_this_pass_complete_steps-instance_method" title="#build_this_pass_complete_steps (instance method)">#<strong>build_this_pass_complete_steps</strong> ⇒ void </a>
|
403
|
+
|
404
|
+
|
405
|
+
|
406
|
+
</span>
|
407
|
+
|
408
|
+
|
409
|
+
|
410
|
+
|
411
|
+
|
412
|
+
|
413
|
+
|
414
|
+
|
415
|
+
|
416
|
+
<span class="summary_desc"><div class='inline'>
|
417
|
+
<p>Find steps that were completed in this processing pass.</p>
|
418
|
+
</div></span>
|
419
|
+
|
420
|
+
</li>
|
421
|
+
|
422
|
+
|
423
|
+
<li class="public ">
|
424
|
+
<span class="summary_signature">
|
425
|
+
|
426
|
+
<a href="#complete%3F-instance_method" title="#complete? (instance method)">#<strong>complete?</strong> ⇒ Boolean </a>
|
427
|
+
|
428
|
+
|
429
|
+
|
430
|
+
</span>
|
431
|
+
|
432
|
+
|
433
|
+
|
434
|
+
|
435
|
+
|
436
|
+
|
437
|
+
|
438
|
+
|
439
|
+
|
440
|
+
<span class="summary_desc"><div class='inline'>
|
441
|
+
<p>Check if the task can be considered complete.</p>
|
442
|
+
</div></span>
|
443
|
+
|
444
|
+
</li>
|
445
|
+
|
446
|
+
|
447
|
+
<li class="public ">
|
448
|
+
<span class="summary_signature">
|
449
|
+
|
450
|
+
<a href="#debug_state-instance_method" title="#debug_state (instance method)">#<strong>debug_state</strong> ⇒ Hash </a>
|
451
|
+
|
452
|
+
|
453
|
+
|
454
|
+
</span>
|
455
|
+
|
456
|
+
|
457
|
+
|
458
|
+
|
459
|
+
|
460
|
+
|
461
|
+
|
462
|
+
|
463
|
+
|
464
|
+
<span class="summary_desc"><div class='inline'>
|
465
|
+
<p>Get debugging state information for the step group.</p>
|
466
|
+
</div></span>
|
467
|
+
|
468
|
+
</li>
|
469
|
+
|
470
|
+
|
471
|
+
<li class="public ">
|
472
|
+
<span class="summary_signature">
|
473
|
+
|
474
|
+
<a href="#error%3F-instance_method" title="#error? (instance method)">#<strong>error?</strong> ⇒ Boolean </a>
|
475
|
+
|
476
|
+
|
477
|
+
|
478
|
+
</span>
|
479
|
+
|
480
|
+
|
481
|
+
|
482
|
+
|
483
|
+
|
484
|
+
|
485
|
+
|
486
|
+
|
487
|
+
|
488
|
+
<span class="summary_desc"><div class='inline'>
|
489
|
+
<p>Check if the task has any steps in error states.</p>
|
490
|
+
</div></span>
|
491
|
+
|
492
|
+
</li>
|
493
|
+
|
494
|
+
|
495
|
+
<li class="public ">
|
496
|
+
<span class="summary_signature">
|
497
|
+
|
498
|
+
<a href="#find_incomplete_steps-instance_method" title="#find_incomplete_steps (instance method)">#<strong>find_incomplete_steps</strong>(steps, visited_step_ids) ⇒ void </a>
|
499
|
+
|
500
|
+
|
501
|
+
|
502
|
+
</span>
|
503
|
+
|
504
|
+
|
505
|
+
|
506
|
+
|
507
|
+
|
508
|
+
|
509
|
+
|
510
|
+
|
511
|
+
|
512
|
+
<span class="summary_desc"><div class='inline'>
|
513
|
+
<p>Recursively traverse the DAG to find all incomplete steps.</p>
|
514
|
+
</div></span>
|
515
|
+
|
516
|
+
</li>
|
517
|
+
|
518
|
+
|
519
|
+
<li class="public ">
|
520
|
+
<span class="summary_signature">
|
521
|
+
|
522
|
+
<a href="#initialize-instance_method" title="#initialize (instance method)">#<strong>initialize</strong>(task, sequence, steps) ⇒ StepGroup </a>
|
523
|
+
|
524
|
+
|
525
|
+
|
526
|
+
</span>
|
527
|
+
|
528
|
+
|
529
|
+
<span class="note title constructor">constructor</span>
|
530
|
+
|
531
|
+
|
532
|
+
|
533
|
+
|
534
|
+
|
535
|
+
|
536
|
+
|
537
|
+
|
538
|
+
<span class="summary_desc"><div class='inline'>
|
539
|
+
<p>Initialize a new StepGroup.</p>
|
540
|
+
</div></span>
|
541
|
+
|
542
|
+
</li>
|
543
|
+
|
544
|
+
|
545
|
+
<li class="public ">
|
546
|
+
<span class="summary_signature">
|
547
|
+
|
548
|
+
<a href="#pending%3F-instance_method" title="#pending? (instance method)">#<strong>pending?</strong> ⇒ Boolean </a>
|
549
|
+
|
550
|
+
|
551
|
+
|
552
|
+
</span>
|
553
|
+
|
554
|
+
|
555
|
+
|
556
|
+
|
557
|
+
|
558
|
+
|
559
|
+
|
560
|
+
|
561
|
+
|
562
|
+
<span class="summary_desc"><div class='inline'>
|
563
|
+
<p>Check if the task should be marked as pending for further processing.</p>
|
564
|
+
</div></span>
|
565
|
+
|
566
|
+
</li>
|
567
|
+
|
568
|
+
|
569
|
+
</ul>
|
570
|
+
|
571
|
+
|
572
|
+
<div id="constructor_details" class="method_details_list">
|
573
|
+
<h2>Constructor Details</h2>
|
574
|
+
|
575
|
+
<div class="method_details first">
|
576
|
+
<h3 class="signature first" id="initialize-instance_method">
|
577
|
+
|
578
|
+
#<strong>initialize</strong>(task, sequence, steps) ⇒ <tt><span class='object_link'><a href="" title="Tasker::TaskHandler::StepGroup (class)">StepGroup</a></span></tt>
|
579
|
+
|
580
|
+
|
581
|
+
|
582
|
+
|
583
|
+
|
584
|
+
</h3><div class="docstring">
|
585
|
+
<div class="discussion">
|
586
|
+
|
587
|
+
<p>Initialize a new StepGroup</p>
|
588
|
+
|
589
|
+
|
590
|
+
</div>
|
591
|
+
</div>
|
592
|
+
<div class="tags">
|
593
|
+
<p class="tag_title">Parameters:</p>
|
594
|
+
<ul class="param">
|
595
|
+
|
596
|
+
<li>
|
597
|
+
|
598
|
+
<span class='name'>task</span>
|
599
|
+
|
600
|
+
|
601
|
+
<span class='type'>(<tt><span class='object_link'><a href="../Task.html" title="Tasker::Task (class)">Tasker::Task</a></span></tt>)</span>
|
602
|
+
|
603
|
+
|
604
|
+
|
605
|
+
—
|
606
|
+
<div class='inline'>
|
607
|
+
<p>The task being processed</p>
|
608
|
+
</div>
|
609
|
+
|
610
|
+
</li>
|
611
|
+
|
612
|
+
<li>
|
613
|
+
|
614
|
+
<span class='name'>sequence</span>
|
615
|
+
|
616
|
+
|
617
|
+
<span class='type'>(<tt><span class='object_link'><a href="../Types/StepSequence.html" title="Tasker::Types::StepSequence (class)">Tasker::Types::StepSequence</a></span></tt>)</span>
|
618
|
+
|
619
|
+
|
620
|
+
|
621
|
+
—
|
622
|
+
<div class='inline'>
|
623
|
+
<p>The sequence of steps</p>
|
624
|
+
</div>
|
625
|
+
|
626
|
+
</li>
|
627
|
+
|
628
|
+
<li>
|
629
|
+
|
630
|
+
<span class='name'>steps</span>
|
631
|
+
|
632
|
+
|
633
|
+
<span class='type'>(<tt>Array<<span class='object_link'><a href="../WorkflowStep.html" title="Tasker::WorkflowStep (class)">Tasker::WorkflowStep</a></span>></tt>)</span>
|
634
|
+
|
635
|
+
|
636
|
+
|
637
|
+
—
|
638
|
+
<div class='inline'>
|
639
|
+
<p>The steps processed in the current pass</p>
|
640
|
+
</div>
|
641
|
+
|
642
|
+
</li>
|
643
|
+
|
644
|
+
</ul>
|
645
|
+
|
646
|
+
|
647
|
+
</div><table class="source_code">
|
648
|
+
<tr>
|
649
|
+
<td>
|
650
|
+
<pre class="lines">
|
651
|
+
|
652
|
+
|
653
|
+
45
|
654
|
+
46
|
655
|
+
47
|
656
|
+
48
|
657
|
+
49</pre>
|
658
|
+
</td>
|
659
|
+
<td>
|
660
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/task_handler/step_group.rb', line 45</span>
|
661
|
+
|
662
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_task'>task</span><span class='comma'>,</span> <span class='id identifier rubyid_sequence'>sequence</span><span class='comma'>,</span> <span class='id identifier rubyid_steps'>steps</span><span class='rparen'>)</span>
|
663
|
+
<span class='ivar'>@task</span> <span class='op'>=</span> <span class='id identifier rubyid_task'>task</span>
|
664
|
+
<span class='ivar'>@sequence</span> <span class='op'>=</span> <span class='id identifier rubyid_sequence'>sequence</span>
|
665
|
+
<span class='ivar'>@steps</span> <span class='op'>=</span> <span class='id identifier rubyid_steps'>steps</span>
|
666
|
+
<span class='kw'>end</span></pre>
|
667
|
+
</td>
|
668
|
+
</tr>
|
669
|
+
</table>
|
670
|
+
</div>
|
671
|
+
|
672
|
+
</div>
|
673
|
+
|
674
|
+
<div id="instance_attr_details" class="attr_details">
|
675
|
+
<h2>Instance Attribute Details</h2>
|
676
|
+
|
677
|
+
|
678
|
+
<span id="prior_incomplete_steps=-instance_method"></span>
|
679
|
+
<div class="method_details first">
|
680
|
+
<h3 class="signature first" id="prior_incomplete_steps-instance_method">
|
681
|
+
|
682
|
+
#<strong>prior_incomplete_steps</strong> ⇒ <tt>Array<<span class='object_link'><a href="../WorkflowStep.html" title="Tasker::WorkflowStep (class)">Tasker::WorkflowStep</a></span>></tt>
|
683
|
+
|
684
|
+
|
685
|
+
|
686
|
+
|
687
|
+
|
688
|
+
</h3><div class="docstring">
|
689
|
+
<div class="discussion">
|
690
|
+
|
691
|
+
<p>Returns Steps that were incomplete before this processing pass.</p>
|
692
|
+
|
693
|
+
|
694
|
+
</div>
|
695
|
+
</div>
|
696
|
+
<div class="tags">
|
697
|
+
|
698
|
+
<p class="tag_title">Returns:</p>
|
699
|
+
<ul class="return">
|
700
|
+
|
701
|
+
<li>
|
702
|
+
|
703
|
+
|
704
|
+
<span class='type'>(<tt>Array<<span class='object_link'><a href="../WorkflowStep.html" title="Tasker::WorkflowStep (class)">Tasker::WorkflowStep</a></span>></tt>)</span>
|
705
|
+
|
706
|
+
|
707
|
+
|
708
|
+
—
|
709
|
+
<div class='inline'>
|
710
|
+
<p>Steps that were incomplete before this processing pass</p>
|
711
|
+
</div>
|
712
|
+
|
713
|
+
</li>
|
714
|
+
|
715
|
+
</ul>
|
716
|
+
|
717
|
+
</div><table class="source_code">
|
718
|
+
<tr>
|
719
|
+
<td>
|
720
|
+
<pre class="lines">
|
721
|
+
|
722
|
+
|
723
|
+
13
|
724
|
+
14
|
725
|
+
15</pre>
|
726
|
+
</td>
|
727
|
+
<td>
|
728
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/task_handler/step_group.rb', line 13</span>
|
729
|
+
|
730
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_prior_incomplete_steps'>prior_incomplete_steps</span>
|
731
|
+
<span class='ivar'>@prior_incomplete_steps</span>
|
732
|
+
<span class='kw'>end</span></pre>
|
733
|
+
</td>
|
734
|
+
</tr>
|
735
|
+
</table>
|
736
|
+
</div>
|
737
|
+
|
738
|
+
|
739
|
+
<span id="still_incomplete_steps=-instance_method"></span>
|
740
|
+
<div class="method_details ">
|
741
|
+
<h3 class="signature " id="still_incomplete_steps-instance_method">
|
742
|
+
|
743
|
+
#<strong>still_incomplete_steps</strong> ⇒ <tt>Array<<span class='object_link'><a href="../WorkflowStep.html" title="Tasker::WorkflowStep (class)">Tasker::WorkflowStep</a></span>></tt>
|
744
|
+
|
745
|
+
|
746
|
+
|
747
|
+
|
748
|
+
|
749
|
+
</h3><div class="docstring">
|
750
|
+
<div class="discussion">
|
751
|
+
|
752
|
+
<p>Returns Steps that are still incomplete after this pass.</p>
|
753
|
+
|
754
|
+
|
755
|
+
</div>
|
756
|
+
</div>
|
757
|
+
<div class="tags">
|
758
|
+
|
759
|
+
<p class="tag_title">Returns:</p>
|
760
|
+
<ul class="return">
|
761
|
+
|
762
|
+
<li>
|
763
|
+
|
764
|
+
|
765
|
+
<span class='type'>(<tt>Array<<span class='object_link'><a href="../WorkflowStep.html" title="Tasker::WorkflowStep (class)">Tasker::WorkflowStep</a></span>></tt>)</span>
|
766
|
+
|
767
|
+
|
768
|
+
|
769
|
+
—
|
770
|
+
<div class='inline'>
|
771
|
+
<p>Steps that are still incomplete after this pass</p>
|
772
|
+
</div>
|
773
|
+
|
774
|
+
</li>
|
775
|
+
|
776
|
+
</ul>
|
777
|
+
|
778
|
+
</div><table class="source_code">
|
779
|
+
<tr>
|
780
|
+
<td>
|
781
|
+
<pre class="lines">
|
782
|
+
|
783
|
+
|
784
|
+
19
|
785
|
+
20
|
786
|
+
21</pre>
|
787
|
+
</td>
|
788
|
+
<td>
|
789
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/task_handler/step_group.rb', line 19</span>
|
790
|
+
|
791
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_still_incomplete_steps'>still_incomplete_steps</span>
|
792
|
+
<span class='ivar'>@still_incomplete_steps</span>
|
793
|
+
<span class='kw'>end</span></pre>
|
794
|
+
</td>
|
795
|
+
</tr>
|
796
|
+
</table>
|
797
|
+
</div>
|
798
|
+
|
799
|
+
|
800
|
+
<span id="still_working_steps=-instance_method"></span>
|
801
|
+
<div class="method_details ">
|
802
|
+
<h3 class="signature " id="still_working_steps-instance_method">
|
803
|
+
|
804
|
+
#<strong>still_working_steps</strong> ⇒ <tt>Array<<span class='object_link'><a href="../WorkflowStep.html" title="Tasker::WorkflowStep (class)">Tasker::WorkflowStep</a></span>></tt>
|
805
|
+
|
806
|
+
|
807
|
+
|
808
|
+
|
809
|
+
|
810
|
+
</h3><div class="docstring">
|
811
|
+
<div class="discussion">
|
812
|
+
|
813
|
+
<p>Returns Steps that are still in a working state (pending/in progress).</p>
|
814
|
+
|
815
|
+
|
816
|
+
</div>
|
817
|
+
</div>
|
818
|
+
<div class="tags">
|
819
|
+
|
820
|
+
<p class="tag_title">Returns:</p>
|
821
|
+
<ul class="return">
|
822
|
+
|
823
|
+
<li>
|
824
|
+
|
825
|
+
|
826
|
+
<span class='type'>(<tt>Array<<span class='object_link'><a href="../WorkflowStep.html" title="Tasker::WorkflowStep (class)">Tasker::WorkflowStep</a></span>></tt>)</span>
|
827
|
+
|
828
|
+
|
829
|
+
|
830
|
+
—
|
831
|
+
<div class='inline'>
|
832
|
+
<p>Steps that are still in a working state (pending/in progress)</p>
|
833
|
+
</div>
|
834
|
+
|
835
|
+
</li>
|
836
|
+
|
837
|
+
</ul>
|
838
|
+
|
839
|
+
</div><table class="source_code">
|
840
|
+
<tr>
|
841
|
+
<td>
|
842
|
+
<pre class="lines">
|
843
|
+
|
844
|
+
|
845
|
+
22
|
846
|
+
23
|
847
|
+
24</pre>
|
848
|
+
</td>
|
849
|
+
<td>
|
850
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/task_handler/step_group.rb', line 22</span>
|
851
|
+
|
852
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_still_working_steps'>still_working_steps</span>
|
853
|
+
<span class='ivar'>@still_working_steps</span>
|
854
|
+
<span class='kw'>end</span></pre>
|
855
|
+
</td>
|
856
|
+
</tr>
|
857
|
+
</table>
|
858
|
+
</div>
|
859
|
+
|
860
|
+
|
861
|
+
<span id="this_pass_complete_step_ids=-instance_method"></span>
|
862
|
+
<div class="method_details ">
|
863
|
+
<h3 class="signature " id="this_pass_complete_step_ids-instance_method">
|
864
|
+
|
865
|
+
#<strong>this_pass_complete_step_ids</strong> ⇒ <tt>Array<Integer></tt>
|
866
|
+
|
867
|
+
|
868
|
+
|
869
|
+
|
870
|
+
|
871
|
+
</h3><div class="docstring">
|
872
|
+
<div class="discussion">
|
873
|
+
|
874
|
+
<p>Returns IDs of steps completed in this processing pass.</p>
|
875
|
+
|
876
|
+
|
877
|
+
</div>
|
878
|
+
</div>
|
879
|
+
<div class="tags">
|
880
|
+
|
881
|
+
<p class="tag_title">Returns:</p>
|
882
|
+
<ul class="return">
|
883
|
+
|
884
|
+
<li>
|
885
|
+
|
886
|
+
|
887
|
+
<span class='type'>(<tt>Array<Integer></tt>)</span>
|
888
|
+
|
889
|
+
|
890
|
+
|
891
|
+
—
|
892
|
+
<div class='inline'>
|
893
|
+
<p>IDs of steps completed in this processing pass</p>
|
894
|
+
</div>
|
895
|
+
|
896
|
+
</li>
|
897
|
+
|
898
|
+
</ul>
|
899
|
+
|
900
|
+
</div><table class="source_code">
|
901
|
+
<tr>
|
902
|
+
<td>
|
903
|
+
<pre class="lines">
|
904
|
+
|
905
|
+
|
906
|
+
25
|
907
|
+
26
|
908
|
+
27</pre>
|
909
|
+
</td>
|
910
|
+
<td>
|
911
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/task_handler/step_group.rb', line 25</span>
|
912
|
+
|
913
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_this_pass_complete_step_ids'>this_pass_complete_step_ids</span>
|
914
|
+
<span class='ivar'>@this_pass_complete_step_ids</span>
|
915
|
+
<span class='kw'>end</span></pre>
|
916
|
+
</td>
|
917
|
+
</tr>
|
918
|
+
</table>
|
919
|
+
</div>
|
920
|
+
|
921
|
+
|
922
|
+
<span id="this_pass_complete_steps=-instance_method"></span>
|
923
|
+
<div class="method_details ">
|
924
|
+
<h3 class="signature " id="this_pass_complete_steps-instance_method">
|
925
|
+
|
926
|
+
#<strong>this_pass_complete_steps</strong> ⇒ <tt>Array<<span class='object_link'><a href="../WorkflowStep.html" title="Tasker::WorkflowStep (class)">Tasker::WorkflowStep</a></span>></tt>
|
927
|
+
|
928
|
+
|
929
|
+
|
930
|
+
|
931
|
+
|
932
|
+
</h3><div class="docstring">
|
933
|
+
<div class="discussion">
|
934
|
+
|
935
|
+
<p>Returns Steps that were completed in this processing pass.</p>
|
936
|
+
|
937
|
+
|
938
|
+
</div>
|
939
|
+
</div>
|
940
|
+
<div class="tags">
|
941
|
+
|
942
|
+
<p class="tag_title">Returns:</p>
|
943
|
+
<ul class="return">
|
944
|
+
|
945
|
+
<li>
|
946
|
+
|
947
|
+
|
948
|
+
<span class='type'>(<tt>Array<<span class='object_link'><a href="../WorkflowStep.html" title="Tasker::WorkflowStep (class)">Tasker::WorkflowStep</a></span>></tt>)</span>
|
949
|
+
|
950
|
+
|
951
|
+
|
952
|
+
—
|
953
|
+
<div class='inline'>
|
954
|
+
<p>Steps that were completed in this processing pass</p>
|
955
|
+
</div>
|
956
|
+
|
957
|
+
</li>
|
958
|
+
|
959
|
+
</ul>
|
960
|
+
|
961
|
+
</div><table class="source_code">
|
962
|
+
<tr>
|
963
|
+
<td>
|
964
|
+
<pre class="lines">
|
965
|
+
|
966
|
+
|
967
|
+
16
|
968
|
+
17
|
969
|
+
18</pre>
|
970
|
+
</td>
|
971
|
+
<td>
|
972
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/task_handler/step_group.rb', line 16</span>
|
973
|
+
|
974
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_this_pass_complete_steps'>this_pass_complete_steps</span>
|
975
|
+
<span class='ivar'>@this_pass_complete_steps</span>
|
976
|
+
<span class='kw'>end</span></pre>
|
977
|
+
</td>
|
978
|
+
</tr>
|
979
|
+
</table>
|
980
|
+
</div>
|
981
|
+
|
982
|
+
</div>
|
983
|
+
|
984
|
+
|
985
|
+
<div id="class_method_details" class="method_details_list">
|
986
|
+
<h2>Class Method Details</h2>
|
987
|
+
|
988
|
+
|
989
|
+
<div class="method_details first">
|
990
|
+
<h3 class="signature first" id="build-class_method">
|
991
|
+
|
992
|
+
.<strong>build</strong>(task, sequence, steps) ⇒ <tt><span class='object_link'><a href="" title="Tasker::TaskHandler::StepGroup (class)">StepGroup</a></span></tt>
|
993
|
+
|
994
|
+
|
995
|
+
|
996
|
+
|
997
|
+
|
998
|
+
</h3><div class="docstring">
|
999
|
+
<div class="discussion">
|
1000
|
+
|
1001
|
+
<p>Build a StepGroup for the given task, sequence and steps</p>
|
1002
|
+
|
1003
|
+
|
1004
|
+
</div>
|
1005
|
+
</div>
|
1006
|
+
<div class="tags">
|
1007
|
+
<p class="tag_title">Parameters:</p>
|
1008
|
+
<ul class="param">
|
1009
|
+
|
1010
|
+
<li>
|
1011
|
+
|
1012
|
+
<span class='name'>task</span>
|
1013
|
+
|
1014
|
+
|
1015
|
+
<span class='type'>(<tt><span class='object_link'><a href="../Task.html" title="Tasker::Task (class)">Tasker::Task</a></span></tt>)</span>
|
1016
|
+
|
1017
|
+
|
1018
|
+
|
1019
|
+
—
|
1020
|
+
<div class='inline'>
|
1021
|
+
<p>The task being processed</p>
|
1022
|
+
</div>
|
1023
|
+
|
1024
|
+
</li>
|
1025
|
+
|
1026
|
+
<li>
|
1027
|
+
|
1028
|
+
<span class='name'>sequence</span>
|
1029
|
+
|
1030
|
+
|
1031
|
+
<span class='type'>(<tt><span class='object_link'><a href="../Types/StepSequence.html" title="Tasker::Types::StepSequence (class)">Tasker::Types::StepSequence</a></span></tt>)</span>
|
1032
|
+
|
1033
|
+
|
1034
|
+
|
1035
|
+
—
|
1036
|
+
<div class='inline'>
|
1037
|
+
<p>The sequence of steps</p>
|
1038
|
+
</div>
|
1039
|
+
|
1040
|
+
</li>
|
1041
|
+
|
1042
|
+
<li>
|
1043
|
+
|
1044
|
+
<span class='name'>steps</span>
|
1045
|
+
|
1046
|
+
|
1047
|
+
<span class='type'>(<tt>Array<<span class='object_link'><a href="../WorkflowStep.html" title="Tasker::WorkflowStep (class)">Tasker::WorkflowStep</a></span>></tt>)</span>
|
1048
|
+
|
1049
|
+
|
1050
|
+
|
1051
|
+
—
|
1052
|
+
<div class='inline'>
|
1053
|
+
<p>The steps processed in the current pass</p>
|
1054
|
+
</div>
|
1055
|
+
|
1056
|
+
</li>
|
1057
|
+
|
1058
|
+
</ul>
|
1059
|
+
|
1060
|
+
<p class="tag_title">Returns:</p>
|
1061
|
+
<ul class="return">
|
1062
|
+
|
1063
|
+
<li>
|
1064
|
+
|
1065
|
+
|
1066
|
+
<span class='type'>(<tt><span class='object_link'><a href="" title="Tasker::TaskHandler::StepGroup (class)">StepGroup</a></span></tt>)</span>
|
1067
|
+
|
1068
|
+
|
1069
|
+
|
1070
|
+
—
|
1071
|
+
<div class='inline'>
|
1072
|
+
<p>A fully built step group</p>
|
1073
|
+
</div>
|
1074
|
+
|
1075
|
+
</li>
|
1076
|
+
|
1077
|
+
</ul>
|
1078
|
+
|
1079
|
+
</div><table class="source_code">
|
1080
|
+
<tr>
|
1081
|
+
<td>
|
1082
|
+
<pre class="lines">
|
1083
|
+
|
1084
|
+
|
1085
|
+
33
|
1086
|
+
34
|
1087
|
+
35
|
1088
|
+
36
|
1089
|
+
37</pre>
|
1090
|
+
</td>
|
1091
|
+
<td>
|
1092
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/task_handler/step_group.rb', line 33</span>
|
1093
|
+
|
1094
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_build'>build</span><span class='lparen'>(</span><span class='id identifier rubyid_task'>task</span><span class='comma'>,</span> <span class='id identifier rubyid_sequence'>sequence</span><span class='comma'>,</span> <span class='id identifier rubyid_steps'>steps</span><span class='rparen'>)</span>
|
1095
|
+
<span class='id identifier rubyid_inst'>inst</span> <span class='op'>=</span> <span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_task'>task</span><span class='comma'>,</span> <span class='id identifier rubyid_sequence'>sequence</span><span class='comma'>,</span> <span class='id identifier rubyid_steps'>steps</span><span class='rparen'>)</span>
|
1096
|
+
<span class='id identifier rubyid_inst'>inst</span><span class='period'>.</span><span class='id identifier rubyid_build'>build</span>
|
1097
|
+
<span class='id identifier rubyid_inst'>inst</span>
|
1098
|
+
<span class='kw'>end</span></pre>
|
1099
|
+
</td>
|
1100
|
+
</tr>
|
1101
|
+
</table>
|
1102
|
+
</div>
|
1103
|
+
|
1104
|
+
</div>
|
1105
|
+
|
1106
|
+
<div id="instance_method_details" class="method_details_list">
|
1107
|
+
<h2>Instance Method Details</h2>
|
1108
|
+
|
1109
|
+
|
1110
|
+
<div class="method_details first">
|
1111
|
+
<h3 class="signature first" id="build-instance_method">
|
1112
|
+
|
1113
|
+
#<strong>build</strong> ⇒ <tt>void</tt>
|
1114
|
+
|
1115
|
+
|
1116
|
+
|
1117
|
+
|
1118
|
+
|
1119
|
+
</h3><div class="docstring">
|
1120
|
+
<div class="discussion">
|
1121
|
+
<p class="note returns_void">This method returns an undefined value.</p>
|
1122
|
+
<p>Build the step group by analyzing all step collections</p>
|
1123
|
+
|
1124
|
+
|
1125
|
+
</div>
|
1126
|
+
</div>
|
1127
|
+
<div class="tags">
|
1128
|
+
|
1129
|
+
|
1130
|
+
</div><table class="source_code">
|
1131
|
+
<tr>
|
1132
|
+
<td>
|
1133
|
+
<pre class="lines">
|
1134
|
+
|
1135
|
+
|
1136
|
+
54
|
1137
|
+
55
|
1138
|
+
56
|
1139
|
+
57
|
1140
|
+
58
|
1141
|
+
59</pre>
|
1142
|
+
</td>
|
1143
|
+
<td>
|
1144
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/task_handler/step_group.rb', line 54</span>
|
1145
|
+
|
1146
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_build'>build</span>
|
1147
|
+
<span class='id identifier rubyid_build_prior_incomplete_steps'>build_prior_incomplete_steps</span>
|
1148
|
+
<span class='id identifier rubyid_build_this_pass_complete_steps'>build_this_pass_complete_steps</span>
|
1149
|
+
<span class='id identifier rubyid_build_still_incomplete_steps'>build_still_incomplete_steps</span>
|
1150
|
+
<span class='id identifier rubyid_build_still_working_steps'>build_still_working_steps</span>
|
1151
|
+
<span class='kw'>end</span></pre>
|
1152
|
+
</td>
|
1153
|
+
</tr>
|
1154
|
+
</table>
|
1155
|
+
</div>
|
1156
|
+
|
1157
|
+
<div class="method_details ">
|
1158
|
+
<h3 class="signature " id="build_prior_incomplete_steps-instance_method">
|
1159
|
+
|
1160
|
+
#<strong>build_prior_incomplete_steps</strong> ⇒ <tt>void</tt>
|
1161
|
+
|
1162
|
+
|
1163
|
+
|
1164
|
+
|
1165
|
+
|
1166
|
+
</h3><div class="docstring">
|
1167
|
+
<div class="discussion">
|
1168
|
+
<p class="note returns_void">This method returns an undefined value.</p>
|
1169
|
+
<p>Find all steps that were incomplete prior to this processing pass</p>
|
1170
|
+
|
1171
|
+
|
1172
|
+
</div>
|
1173
|
+
</div>
|
1174
|
+
<div class="tags">
|
1175
|
+
|
1176
|
+
|
1177
|
+
</div><table class="source_code">
|
1178
|
+
<tr>
|
1179
|
+
<td>
|
1180
|
+
<pre class="lines">
|
1181
|
+
|
1182
|
+
|
1183
|
+
64
|
1184
|
+
65
|
1185
|
+
66
|
1186
|
+
67
|
1187
|
+
68
|
1188
|
+
69
|
1189
|
+
70
|
1190
|
+
71
|
1191
|
+
72
|
1192
|
+
73</pre>
|
1193
|
+
</td>
|
1194
|
+
<td>
|
1195
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/task_handler/step_group.rb', line 64</span>
|
1196
|
+
|
1197
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_build_prior_incomplete_steps'>build_prior_incomplete_steps</span>
|
1198
|
+
<span class='comment'># determine which states were incomplete by traversing the entire DAG
|
1199
|
+
</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_prior_incomplete_steps'>prior_incomplete_steps</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
|
1200
|
+
|
1201
|
+
<span class='comment'># Find all root steps (those without parents)
|
1202
|
+
</span> <span class='id identifier rubyid_root_steps'>root_steps</span> <span class='op'>=</span> <span class='ivar'>@sequence</span><span class='period'>.</span><span class='id identifier rubyid_steps'>steps</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_step'>step</span><span class='op'>|</span> <span class='id identifier rubyid_step'>step</span><span class='period'>.</span><span class='id identifier rubyid_parents'>parents</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span> <span class='rbrace'>}</span>
|
1203
|
+
|
1204
|
+
<span class='comment'># Recursively traverse the DAG to find all incomplete steps
|
1205
|
+
</span> <span class='id identifier rubyid_find_incomplete_steps'>find_incomplete_steps</span><span class='lparen'>(</span><span class='id identifier rubyid_root_steps'>root_steps</span><span class='comma'>,</span> <span class='lbracket'>[</span><span class='rbracket'>]</span><span class='rparen'>)</span>
|
1206
|
+
<span class='kw'>end</span></pre>
|
1207
|
+
</td>
|
1208
|
+
</tr>
|
1209
|
+
</table>
|
1210
|
+
</div>
|
1211
|
+
|
1212
|
+
<div class="method_details ">
|
1213
|
+
<h3 class="signature " id="build_still_incomplete_steps-instance_method">
|
1214
|
+
|
1215
|
+
#<strong>build_still_incomplete_steps</strong> ⇒ <tt>void</tt>
|
1216
|
+
|
1217
|
+
|
1218
|
+
|
1219
|
+
|
1220
|
+
|
1221
|
+
</h3><div class="docstring">
|
1222
|
+
<div class="discussion">
|
1223
|
+
<p class="note returns_void">This method returns an undefined value.</p>
|
1224
|
+
<p>Find steps that are still incomplete after this processing pass</p>
|
1225
|
+
|
1226
|
+
|
1227
|
+
</div>
|
1228
|
+
</div>
|
1229
|
+
<div class="tags">
|
1230
|
+
|
1231
|
+
|
1232
|
+
</div><table class="source_code">
|
1233
|
+
<tr>
|
1234
|
+
<td>
|
1235
|
+
<pre class="lines">
|
1236
|
+
|
1237
|
+
|
1238
|
+
112
|
1239
|
+
113
|
1240
|
+
114
|
1241
|
+
115
|
1242
|
+
116
|
1243
|
+
117
|
1244
|
+
118</pre>
|
1245
|
+
</td>
|
1246
|
+
<td>
|
1247
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/task_handler/step_group.rb', line 112</span>
|
1248
|
+
|
1249
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_build_still_incomplete_steps'>build_still_incomplete_steps</span>
|
1250
|
+
<span class='comment'># What was incomplete from the prior DAG traversal that is still incomplete now
|
1251
|
+
</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_still_incomplete_steps'>still_incomplete_steps</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
|
1252
|
+
<span class='id identifier rubyid_prior_incomplete_steps'>prior_incomplete_steps</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_step'>step</span><span class='op'>|</span>
|
1253
|
+
<span class='id identifier rubyid_still_incomplete_steps'>still_incomplete_steps</span> <span class='op'><<</span> <span class='id identifier rubyid_step'>step</span> <span class='kw'>if</span> <span class='id identifier rubyid_this_pass_complete_step_ids'>this_pass_complete_step_ids</span><span class='period'>.</span><span class='id identifier rubyid_exclude?'>exclude?</span><span class='lparen'>(</span><span class='id identifier rubyid_step'>step</span><span class='period'>.</span><span class='id identifier rubyid_workflow_step_id'>workflow_step_id</span><span class='rparen'>)</span>
|
1254
|
+
<span class='kw'>end</span>
|
1255
|
+
<span class='kw'>end</span></pre>
|
1256
|
+
</td>
|
1257
|
+
</tr>
|
1258
|
+
</table>
|
1259
|
+
</div>
|
1260
|
+
|
1261
|
+
<div class="method_details ">
|
1262
|
+
<h3 class="signature " id="build_still_working_steps-instance_method">
|
1263
|
+
|
1264
|
+
#<strong>build_still_working_steps</strong> ⇒ <tt>void</tt>
|
1265
|
+
|
1266
|
+
|
1267
|
+
|
1268
|
+
|
1269
|
+
|
1270
|
+
</h3><div class="docstring">
|
1271
|
+
<div class="discussion">
|
1272
|
+
<p class="note returns_void">This method returns an undefined value.</p>
|
1273
|
+
<p>Find steps that are still in a working state (pending/in progress)</p>
|
1274
|
+
|
1275
|
+
|
1276
|
+
</div>
|
1277
|
+
</div>
|
1278
|
+
<div class="tags">
|
1279
|
+
|
1280
|
+
|
1281
|
+
</div><table class="source_code">
|
1282
|
+
<tr>
|
1283
|
+
<td>
|
1284
|
+
<pre class="lines">
|
1285
|
+
|
1286
|
+
|
1287
|
+
123
|
1288
|
+
124
|
1289
|
+
125
|
1290
|
+
126
|
1291
|
+
127
|
1292
|
+
128
|
1293
|
+
129</pre>
|
1294
|
+
</td>
|
1295
|
+
<td>
|
1296
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/task_handler/step_group.rb', line 123</span>
|
1297
|
+
|
1298
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_build_still_working_steps'>build_still_working_steps</span>
|
1299
|
+
<span class='comment'># What is still working from the incomplete steps but in a valid, retryable state
|
1300
|
+
</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_still_working_steps'>still_working_steps</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
|
1301
|
+
<span class='id identifier rubyid_still_incomplete_steps'>still_incomplete_steps</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_step'>step</span><span class='op'>|</span>
|
1302
|
+
<span class='id identifier rubyid_still_working_steps'>still_working_steps</span> <span class='op'><<</span> <span class='id identifier rubyid_step'>step</span> <span class='kw'>if</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#VALID_STEP_STILL_WORKING_STATES-constant" title="Tasker::Constants::VALID_STEP_STILL_WORKING_STATES (constant)">VALID_STEP_STILL_WORKING_STATES</a></span></span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_step'>step</span><span class='period'>.</span><span class='id identifier rubyid_status'>status</span><span class='rparen'>)</span>
|
1303
|
+
<span class='kw'>end</span>
|
1304
|
+
<span class='kw'>end</span></pre>
|
1305
|
+
</td>
|
1306
|
+
</tr>
|
1307
|
+
</table>
|
1308
|
+
</div>
|
1309
|
+
|
1310
|
+
<div class="method_details ">
|
1311
|
+
<h3 class="signature " id="build_this_pass_complete_steps-instance_method">
|
1312
|
+
|
1313
|
+
#<strong>build_this_pass_complete_steps</strong> ⇒ <tt>void</tt>
|
1314
|
+
|
1315
|
+
|
1316
|
+
|
1317
|
+
|
1318
|
+
|
1319
|
+
</h3><div class="docstring">
|
1320
|
+
<div class="discussion">
|
1321
|
+
<p class="note returns_void">This method returns an undefined value.</p>
|
1322
|
+
<p>Find steps that were completed in this processing pass</p>
|
1323
|
+
|
1324
|
+
|
1325
|
+
</div>
|
1326
|
+
</div>
|
1327
|
+
<div class="tags">
|
1328
|
+
|
1329
|
+
|
1330
|
+
</div><table class="source_code">
|
1331
|
+
<tr>
|
1332
|
+
<td>
|
1333
|
+
<pre class="lines">
|
1334
|
+
|
1335
|
+
|
1336
|
+
99
|
1337
|
+
100
|
1338
|
+
101
|
1339
|
+
102
|
1340
|
+
103
|
1341
|
+
104
|
1342
|
+
105
|
1343
|
+
106
|
1344
|
+
107</pre>
|
1345
|
+
</td>
|
1346
|
+
<td>
|
1347
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/task_handler/step_group.rb', line 99</span>
|
1348
|
+
|
1349
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_build_this_pass_complete_steps'>build_this_pass_complete_steps</span>
|
1350
|
+
<span class='comment'># The steps passed into finalize are those processed in this pass
|
1351
|
+
</span> <span class='comment'># Check which ones completed in a valid state
|
1352
|
+
</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_this_pass_complete_steps'>this_pass_complete_steps</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
|
1353
|
+
<span class='ivar'>@steps</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_step'>step</span><span class='op'>|</span>
|
1354
|
+
<span class='id identifier rubyid_this_pass_complete_steps'>this_pass_complete_steps</span> <span class='op'><<</span> <span class='id identifier rubyid_step'>step</span> <span class='kw'>if</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#VALID_STEP_COMPLETION_STATES-constant" title="Tasker::Constants::VALID_STEP_COMPLETION_STATES (constant)">VALID_STEP_COMPLETION_STATES</a></span></span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_step'>step</span><span class='period'>.</span><span class='id identifier rubyid_status'>status</span><span class='rparen'>)</span>
|
1355
|
+
<span class='kw'>end</span>
|
1356
|
+
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_this_pass_complete_step_ids'>this_pass_complete_step_ids</span> <span class='op'>=</span> <span class='id identifier rubyid_this_pass_complete_steps'>this_pass_complete_steps</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span><span class='lparen'>(</span><span class='op'>&</span><span class='symbol'>:workflow_step_id</span><span class='rparen'>)</span>
|
1357
|
+
<span class='kw'>end</span></pre>
|
1358
|
+
</td>
|
1359
|
+
</tr>
|
1360
|
+
</table>
|
1361
|
+
</div>
|
1362
|
+
|
1363
|
+
<div class="method_details ">
|
1364
|
+
<h3 class="signature " id="complete?-instance_method">
|
1365
|
+
|
1366
|
+
#<strong>complete?</strong> ⇒ <tt>Boolean</tt>
|
1367
|
+
|
1368
|
+
|
1369
|
+
|
1370
|
+
|
1371
|
+
|
1372
|
+
</h3><div class="docstring">
|
1373
|
+
<div class="discussion">
|
1374
|
+
|
1375
|
+
<p>Check if the task can be considered complete</p>
|
1376
|
+
|
1377
|
+
<p>A task is complete if there were no incomplete steps in the prior iteration or if all previously incomplete steps are now complete.</p>
|
1378
|
+
|
1379
|
+
|
1380
|
+
</div>
|
1381
|
+
</div>
|
1382
|
+
<div class="tags">
|
1383
|
+
|
1384
|
+
<p class="tag_title">Returns:</p>
|
1385
|
+
<ul class="return">
|
1386
|
+
|
1387
|
+
<li>
|
1388
|
+
|
1389
|
+
|
1390
|
+
<span class='type'>(<tt>Boolean</tt>)</span>
|
1391
|
+
|
1392
|
+
|
1393
|
+
|
1394
|
+
—
|
1395
|
+
<div class='inline'>
|
1396
|
+
<p>True if the task is complete</p>
|
1397
|
+
</div>
|
1398
|
+
|
1399
|
+
</li>
|
1400
|
+
|
1401
|
+
</ul>
|
1402
|
+
|
1403
|
+
</div><table class="source_code">
|
1404
|
+
<tr>
|
1405
|
+
<td>
|
1406
|
+
<pre class="lines">
|
1407
|
+
|
1408
|
+
|
1409
|
+
137
|
1410
|
+
138
|
1411
|
+
139</pre>
|
1412
|
+
</td>
|
1413
|
+
<td>
|
1414
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/task_handler/step_group.rb', line 137</span>
|
1415
|
+
|
1416
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_complete?'>complete?</span>
|
1417
|
+
<span class='id identifier rubyid_prior_incomplete_steps'>prior_incomplete_steps</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span> <span class='op'>||</span> <span class='id identifier rubyid_still_incomplete_steps'>still_incomplete_steps</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span>
|
1418
|
+
<span class='kw'>end</span></pre>
|
1419
|
+
</td>
|
1420
|
+
</tr>
|
1421
|
+
</table>
|
1422
|
+
</div>
|
1423
|
+
|
1424
|
+
<div class="method_details ">
|
1425
|
+
<h3 class="signature " id="debug_state-instance_method">
|
1426
|
+
|
1427
|
+
#<strong>debug_state</strong> ⇒ <tt>Hash</tt>
|
1428
|
+
|
1429
|
+
|
1430
|
+
|
1431
|
+
|
1432
|
+
|
1433
|
+
</h3><div class="docstring">
|
1434
|
+
<div class="discussion">
|
1435
|
+
|
1436
|
+
<p>Get debugging state information for the step group</p>
|
1437
|
+
|
1438
|
+
|
1439
|
+
</div>
|
1440
|
+
</div>
|
1441
|
+
<div class="tags">
|
1442
|
+
|
1443
|
+
<p class="tag_title">Returns:</p>
|
1444
|
+
<ul class="return">
|
1445
|
+
|
1446
|
+
<li>
|
1447
|
+
|
1448
|
+
|
1449
|
+
<span class='type'>(<tt>Hash</tt>)</span>
|
1450
|
+
|
1451
|
+
|
1452
|
+
|
1453
|
+
—
|
1454
|
+
<div class='inline'>
|
1455
|
+
<p>Debug information about the step group state</p>
|
1456
|
+
</div>
|
1457
|
+
|
1458
|
+
</li>
|
1459
|
+
|
1460
|
+
</ul>
|
1461
|
+
|
1462
|
+
</div><table class="source_code">
|
1463
|
+
<tr>
|
1464
|
+
<td>
|
1465
|
+
<pre class="lines">
|
1466
|
+
|
1467
|
+
|
1468
|
+
167
|
1469
|
+
168
|
1470
|
+
169
|
1471
|
+
170
|
1472
|
+
171
|
1473
|
+
172
|
1474
|
+
173
|
1475
|
+
174
|
1476
|
+
175
|
1477
|
+
176
|
1478
|
+
177
|
1479
|
+
178
|
1480
|
+
179</pre>
|
1481
|
+
</td>
|
1482
|
+
<td>
|
1483
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/task_handler/step_group.rb', line 167</span>
|
1484
|
+
|
1485
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_debug_state'>debug_state</span>
|
1486
|
+
<span class='lbrace'>{</span>
|
1487
|
+
<span class='label'>total_steps:</span> <span class='ivar'>@sequence</span><span class='period'>.</span><span class='id identifier rubyid_steps'>steps</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span><span class='comma'>,</span>
|
1488
|
+
<span class='label'>prior_incomplete_count:</span> <span class='id identifier rubyid_prior_incomplete_steps'>prior_incomplete_steps</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span><span class='comma'>,</span>
|
1489
|
+
<span class='label'>complete_this_pass_count:</span> <span class='id identifier rubyid_this_pass_complete_steps'>this_pass_complete_steps</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span><span class='comma'>,</span>
|
1490
|
+
<span class='label'>still_incomplete_count:</span> <span class='id identifier rubyid_still_incomplete_steps'>still_incomplete_steps</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span><span class='comma'>,</span>
|
1491
|
+
<span class='label'>still_working_count:</span> <span class='id identifier rubyid_still_working_steps'>still_working_steps</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span><span class='comma'>,</span>
|
1492
|
+
<span class='label'>step_statuses:</span> <span class='ivar'>@sequence</span><span class='period'>.</span><span class='id identifier rubyid_steps'>steps</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_s'>s</span><span class='op'>|</span> <span class='lbrace'>{</span> <span class='label'>id:</span> <span class='id identifier rubyid_s'>s</span><span class='period'>.</span><span class='id identifier rubyid_workflow_step_id'>workflow_step_id</span><span class='comma'>,</span> <span class='label'>name:</span> <span class='id identifier rubyid_s'>s</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span><span class='comma'>,</span> <span class='label'>status:</span> <span class='id identifier rubyid_s'>s</span><span class='period'>.</span><span class='id identifier rubyid_status'>status</span> <span class='rbrace'>}</span> <span class='rbrace'>}</span><span class='comma'>,</span>
|
1493
|
+
<span class='label'>is_complete:</span> <span class='id identifier rubyid_complete?'>complete?</span><span class='comma'>,</span>
|
1494
|
+
<span class='label'>is_pending:</span> <span class='id identifier rubyid_pending?'>pending?</span><span class='comma'>,</span>
|
1495
|
+
<span class='label'>has_errors:</span> <span class='id identifier rubyid_error?'>error?</span>
|
1496
|
+
<span class='rbrace'>}</span>
|
1497
|
+
<span class='kw'>end</span></pre>
|
1498
|
+
</td>
|
1499
|
+
</tr>
|
1500
|
+
</table>
|
1501
|
+
</div>
|
1502
|
+
|
1503
|
+
<div class="method_details ">
|
1504
|
+
<h3 class="signature " id="error?-instance_method">
|
1505
|
+
|
1506
|
+
#<strong>error?</strong> ⇒ <tt>Boolean</tt>
|
1507
|
+
|
1508
|
+
|
1509
|
+
|
1510
|
+
|
1511
|
+
|
1512
|
+
</h3><div class="docstring">
|
1513
|
+
<div class="discussion">
|
1514
|
+
|
1515
|
+
<p>Check if the task has any steps in error states</p>
|
1516
|
+
|
1517
|
+
<p>A task has errors if any steps are in terminal error states that can’t be retried.</p>
|
1518
|
+
|
1519
|
+
|
1520
|
+
</div>
|
1521
|
+
</div>
|
1522
|
+
<div class="tags">
|
1523
|
+
|
1524
|
+
<p class="tag_title">Returns:</p>
|
1525
|
+
<ul class="return">
|
1526
|
+
|
1527
|
+
<li>
|
1528
|
+
|
1529
|
+
|
1530
|
+
<span class='type'>(<tt>Boolean</tt>)</span>
|
1531
|
+
|
1532
|
+
|
1533
|
+
|
1534
|
+
—
|
1535
|
+
<div class='inline'>
|
1536
|
+
<p>True if the task has error steps</p>
|
1537
|
+
</div>
|
1538
|
+
|
1539
|
+
</li>
|
1540
|
+
|
1541
|
+
</ul>
|
1542
|
+
|
1543
|
+
</div><table class="source_code">
|
1544
|
+
<tr>
|
1545
|
+
<td>
|
1546
|
+
<pre class="lines">
|
1547
|
+
|
1548
|
+
|
1549
|
+
155
|
1550
|
+
156
|
1551
|
+
157
|
1552
|
+
158
|
1553
|
+
159
|
1554
|
+
160
|
1555
|
+
161
|
1556
|
+
162</pre>
|
1557
|
+
</td>
|
1558
|
+
<td>
|
1559
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/task_handler/step_group.rb', line 155</span>
|
1560
|
+
|
1561
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_error?'>error?</span>
|
1562
|
+
<span class='comment'># Use efficient database query with existing failed scope
|
1563
|
+
</span> <span class='id identifier rubyid_step_ids'>step_ids</span> <span class='op'>=</span> <span class='ivar'>@sequence</span><span class='period'>.</span><span class='id identifier rubyid_steps'>steps</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span><span class='lparen'>(</span><span class='op'>&</span><span class='symbol'>:workflow_step_id</span><span class='rparen'>)</span>
|
1564
|
+
<span class='kw'>return</span> <span class='kw'>false</span> <span class='kw'>if</span> <span class='id identifier rubyid_step_ids'>step_ids</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span>
|
1565
|
+
|
1566
|
+
<span class='comment'># Query for any steps in error state using the failed scope
|
1567
|
+
</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="../WorkflowStep.html" title="Tasker::WorkflowStep (class)">WorkflowStep</a></span></span><span class='period'>.</span><span class='id identifier rubyid_failed'>failed</span><span class='period'>.</span><span class='id identifier rubyid_exists?'>exists?</span><span class='lparen'>(</span><span class='label'>workflow_step_id:</span> <span class='id identifier rubyid_step_ids'>step_ids</span><span class='rparen'>)</span>
|
1568
|
+
<span class='kw'>end</span></pre>
|
1569
|
+
</td>
|
1570
|
+
</tr>
|
1571
|
+
</table>
|
1572
|
+
</div>
|
1573
|
+
|
1574
|
+
<div class="method_details ">
|
1575
|
+
<h3 class="signature " id="find_incomplete_steps-instance_method">
|
1576
|
+
|
1577
|
+
#<strong>find_incomplete_steps</strong>(steps, visited_step_ids) ⇒ <tt>void</tt>
|
1578
|
+
|
1579
|
+
|
1580
|
+
|
1581
|
+
|
1582
|
+
|
1583
|
+
</h3><div class="docstring">
|
1584
|
+
<div class="discussion">
|
1585
|
+
<p class="note returns_void">This method returns an undefined value.</p>
|
1586
|
+
<p>Recursively traverse the DAG to find all incomplete steps</p>
|
1587
|
+
|
1588
|
+
|
1589
|
+
</div>
|
1590
|
+
</div>
|
1591
|
+
<div class="tags">
|
1592
|
+
<p class="tag_title">Parameters:</p>
|
1593
|
+
<ul class="param">
|
1594
|
+
|
1595
|
+
<li>
|
1596
|
+
|
1597
|
+
<span class='name'>steps</span>
|
1598
|
+
|
1599
|
+
|
1600
|
+
<span class='type'>(<tt>Array<<span class='object_link'><a href="../WorkflowStep.html" title="Tasker::WorkflowStep (class)">Tasker::WorkflowStep</a></span>></tt>)</span>
|
1601
|
+
|
1602
|
+
|
1603
|
+
|
1604
|
+
—
|
1605
|
+
<div class='inline'>
|
1606
|
+
<p>Steps to check</p>
|
1607
|
+
</div>
|
1608
|
+
|
1609
|
+
</li>
|
1610
|
+
|
1611
|
+
<li>
|
1612
|
+
|
1613
|
+
<span class='name'>visited_step_ids</span>
|
1614
|
+
|
1615
|
+
|
1616
|
+
<span class='type'>(<tt>Array<Integer></tt>)</span>
|
1617
|
+
|
1618
|
+
|
1619
|
+
|
1620
|
+
—
|
1621
|
+
<div class='inline'>
|
1622
|
+
<p>IDs of steps already visited</p>
|
1623
|
+
</div>
|
1624
|
+
|
1625
|
+
</li>
|
1626
|
+
|
1627
|
+
</ul>
|
1628
|
+
|
1629
|
+
|
1630
|
+
</div><table class="source_code">
|
1631
|
+
<tr>
|
1632
|
+
<td>
|
1633
|
+
<pre class="lines">
|
1634
|
+
|
1635
|
+
|
1636
|
+
80
|
1637
|
+
81
|
1638
|
+
82
|
1639
|
+
83
|
1640
|
+
84
|
1641
|
+
85
|
1642
|
+
86
|
1643
|
+
87
|
1644
|
+
88
|
1645
|
+
89
|
1646
|
+
90
|
1647
|
+
91
|
1648
|
+
92
|
1649
|
+
93
|
1650
|
+
94</pre>
|
1651
|
+
</td>
|
1652
|
+
<td>
|
1653
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/task_handler/step_group.rb', line 80</span>
|
1654
|
+
|
1655
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_find_incomplete_steps'>find_incomplete_steps</span><span class='lparen'>(</span><span class='id identifier rubyid_steps'>steps</span><span class='comma'>,</span> <span class='id identifier rubyid_visited_step_ids'>visited_step_ids</span><span class='rparen'>)</span>
|
1656
|
+
<span class='id identifier rubyid_steps'>steps</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_step'>step</span><span class='op'>|</span>
|
1657
|
+
<span class='comment'># Skip if we've already visited this step (avoid cycles, though they shouldn't exist in a DAG)
|
1658
|
+
</span> <span class='kw'>next</span> <span class='kw'>if</span> <span class='id identifier rubyid_visited_step_ids'>visited_step_ids</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_step'>step</span><span class='period'>.</span><span class='id identifier rubyid_workflow_step_id'>workflow_step_id</span><span class='rparen'>)</span>
|
1659
|
+
|
1660
|
+
<span class='comment'># Add this step to visited
|
1661
|
+
</span> <span class='id identifier rubyid_visited_step_ids'>visited_step_ids</span> <span class='op'><<</span> <span class='id identifier rubyid_step'>step</span><span class='period'>.</span><span class='id identifier rubyid_workflow_step_id'>workflow_step_id</span>
|
1662
|
+
|
1663
|
+
<span class='comment'># Add to prior_incomplete_steps if this step is incomplete
|
1664
|
+
</span> <span class='id identifier rubyid_prior_incomplete_steps'>prior_incomplete_steps</span> <span class='op'><<</span> <span class='id identifier rubyid_step'>step</span> <span class='kw'>if</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#VALID_STEP_COMPLETION_STATES-constant" title="Tasker::Constants::VALID_STEP_COMPLETION_STATES (constant)">VALID_STEP_COMPLETION_STATES</a></span></span><span class='period'>.</span><span class='id identifier rubyid_exclude?'>exclude?</span><span class='lparen'>(</span><span class='id identifier rubyid_step'>step</span><span class='period'>.</span><span class='id identifier rubyid_status'>status</span><span class='rparen'>)</span>
|
1665
|
+
|
1666
|
+
<span class='comment'># Recursively check all children
|
1667
|
+
</span> <span class='id identifier rubyid_find_incomplete_steps'>find_incomplete_steps</span><span class='lparen'>(</span><span class='id identifier rubyid_step'>step</span><span class='period'>.</span><span class='id identifier rubyid_children'>children</span><span class='comma'>,</span> <span class='id identifier rubyid_visited_step_ids'>visited_step_ids</span><span class='rparen'>)</span>
|
1668
|
+
<span class='kw'>end</span>
|
1669
|
+
<span class='kw'>end</span></pre>
|
1670
|
+
</td>
|
1671
|
+
</tr>
|
1672
|
+
</table>
|
1673
|
+
</div>
|
1674
|
+
|
1675
|
+
<div class="method_details ">
|
1676
|
+
<h3 class="signature " id="pending?-instance_method">
|
1677
|
+
|
1678
|
+
#<strong>pending?</strong> ⇒ <tt>Boolean</tt>
|
1679
|
+
|
1680
|
+
|
1681
|
+
|
1682
|
+
|
1683
|
+
|
1684
|
+
</h3><div class="docstring">
|
1685
|
+
<div class="discussion">
|
1686
|
+
|
1687
|
+
<p>Check if the task should be marked as pending for further processing</p>
|
1688
|
+
|
1689
|
+
<p>A task is considered pending if there are still steps in a working state.</p>
|
1690
|
+
|
1691
|
+
|
1692
|
+
</div>
|
1693
|
+
</div>
|
1694
|
+
<div class="tags">
|
1695
|
+
|
1696
|
+
<p class="tag_title">Returns:</p>
|
1697
|
+
<ul class="return">
|
1698
|
+
|
1699
|
+
<li>
|
1700
|
+
|
1701
|
+
|
1702
|
+
<span class='type'>(<tt>Boolean</tt>)</span>
|
1703
|
+
|
1704
|
+
|
1705
|
+
|
1706
|
+
—
|
1707
|
+
<div class='inline'>
|
1708
|
+
<p>True if the task should be pending</p>
|
1709
|
+
</div>
|
1710
|
+
|
1711
|
+
</li>
|
1712
|
+
|
1713
|
+
</ul>
|
1714
|
+
|
1715
|
+
</div><table class="source_code">
|
1716
|
+
<tr>
|
1717
|
+
<td>
|
1718
|
+
<pre class="lines">
|
1719
|
+
|
1720
|
+
|
1721
|
+
146
|
1722
|
+
147
|
1723
|
+
148</pre>
|
1724
|
+
</td>
|
1725
|
+
<td>
|
1726
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/task_handler/step_group.rb', line 146</span>
|
1727
|
+
|
1728
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_pending?'>pending?</span>
|
1729
|
+
<span class='id identifier rubyid_still_working_steps'>still_working_steps</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span><span class='period'>.</span><span class='id identifier rubyid_positive?'>positive?</span>
|
1730
|
+
<span class='kw'>end</span></pre>
|
1731
|
+
</td>
|
1732
|
+
</tr>
|
1733
|
+
</table>
|
1734
|
+
</div>
|
1735
|
+
|
1736
|
+
</div>
|
1737
|
+
|
1738
|
+
</div>
|
1739
|
+
|
1740
|
+
<div id="footer">
|
1741
|
+
Generated on Tue Jul 1 16:47:38 2025 by
|
1742
|
+
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
1743
|
+
0.9.37 (ruby-3.2.4).
|
1744
|
+
</div>
|
1745
|
+
|
1746
|
+
</div>
|
1747
|
+
</body>
|
1748
|
+
</html>
|