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,1774 @@
|
|
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::Telemetry::PluginRegistry
|
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::Telemetry::PluginRegistry";
|
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 (P)</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="../Telemetry.html" title="Tasker::Telemetry (module)">Telemetry</a></span></span>
|
41
|
+
»
|
42
|
+
<span class="title">PluginRegistry</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::Telemetry::PluginRegistry
|
63
|
+
|
64
|
+
|
65
|
+
|
66
|
+
</h1>
|
67
|
+
<div class="box_info">
|
68
|
+
|
69
|
+
<dl>
|
70
|
+
<dt>Inherits:</dt>
|
71
|
+
<dd>
|
72
|
+
<span class="inheritName"><span class='object_link'><a href="../Registry/BaseRegistry.html" title="Tasker::Registry::BaseRegistry (class)">Registry::BaseRegistry</a></span></span>
|
73
|
+
|
74
|
+
<ul class="fullTree">
|
75
|
+
<li>Object</li>
|
76
|
+
|
77
|
+
<li class="next"><span class='object_link'><a href="../Registry/BaseRegistry.html" title="Tasker::Registry::BaseRegistry (class)">Registry::BaseRegistry</a></span></li>
|
78
|
+
|
79
|
+
<li class="next">Tasker::Telemetry::PluginRegistry</li>
|
80
|
+
|
81
|
+
</ul>
|
82
|
+
<a href="#" class="inheritanceTree">show all</a>
|
83
|
+
|
84
|
+
</dd>
|
85
|
+
</dl>
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
|
90
|
+
|
91
|
+
|
92
|
+
<dl>
|
93
|
+
<dt>Includes:</dt>
|
94
|
+
<dd>Singleton</dd>
|
95
|
+
</dl>
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
|
100
|
+
|
101
|
+
|
102
|
+
<dl>
|
103
|
+
<dt>Defined in:</dt>
|
104
|
+
<dd>lib/tasker/telemetry/plugin_registry.rb</dd>
|
105
|
+
</dl>
|
106
|
+
|
107
|
+
</div>
|
108
|
+
|
109
|
+
<h2>Overview</h2><div class="docstring">
|
110
|
+
<div class="discussion">
|
111
|
+
|
112
|
+
<p>Registry for managing export plugins</p>
|
113
|
+
|
114
|
+
<p>Provides centralized management of export plugins with discovery, registration, and format-based lookup capabilities. Now modernized with BaseRegistry patterns for consistency across all registry systems.</p>
|
115
|
+
|
116
|
+
|
117
|
+
</div>
|
118
|
+
</div>
|
119
|
+
<div class="tags">
|
120
|
+
|
121
|
+
<div class="examples">
|
122
|
+
<h4 class="tag_title">Examples:</h4>
|
123
|
+
|
124
|
+
|
125
|
+
<h5 class="example_title"><div class='inline'>
|
126
|
+
<p>Register a plugin</p>
|
127
|
+
</div></h5>
|
128
|
+
|
129
|
+
<pre class="example code"><code><span class='id identifier rubyid_registry'>registry</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../../Tasker.html" title="Tasker (module)">Tasker</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Telemetry.html" title="Tasker::Telemetry (module)">Telemetry</a></span></span><span class='op'>::</span><span class='const'>PluginRegistry</span><span class='period'>.</span><span class='id identifier rubyid_instance'>instance</span>
|
130
|
+
<span class='id identifier rubyid_registry'>registry</span><span class='period'>.</span><span class='id identifier rubyid_register'>register</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>my_exporter</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='const'>MyExporter</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='rparen'>)</span></code></pre>
|
131
|
+
|
132
|
+
|
133
|
+
<h5 class="example_title"><div class='inline'>
|
134
|
+
<p>Find plugins by format</p>
|
135
|
+
</div></h5>
|
136
|
+
|
137
|
+
<pre class="example code"><code><span class='id identifier rubyid_json_plugins'>json_plugins</span> <span class='op'>=</span> <span class='id identifier rubyid_registry'>registry</span><span class='period'>.</span><span class='id identifier rubyid_find_by_format'>find_by_format</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>json</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
|
138
|
+
<span class='id identifier rubyid_csv_plugins'>csv_plugins</span> <span class='op'>=</span> <span class='id identifier rubyid_registry'>registry</span><span class='period'>.</span><span class='id identifier rubyid_find_by_format'>find_by_format</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>csv</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span></code></pre>
|
139
|
+
|
140
|
+
|
141
|
+
<h5 class="example_title"><div class='inline'>
|
142
|
+
<p>Auto-discover plugins</p>
|
143
|
+
</div></h5>
|
144
|
+
|
145
|
+
<pre class="example code"><code><span class='id identifier rubyid_registry'>registry</span><span class='period'>.</span><span class='id identifier rubyid_auto_discover_plugins'>auto_discover_plugins</span></code></pre>
|
146
|
+
|
147
|
+
</div>
|
148
|
+
|
149
|
+
|
150
|
+
</div>
|
151
|
+
|
152
|
+
|
153
|
+
<h2>Constant Summary</h2>
|
154
|
+
|
155
|
+
<h3 class="inherited">Constants included
|
156
|
+
from <span class='object_link'><a href="../Concerns/StructuredLogging.html" title="Tasker::Concerns::StructuredLogging (module)">Concerns::StructuredLogging</a></span></h3>
|
157
|
+
<p class="inherited"><span class='object_link'><a href="../Concerns/StructuredLogging.html#CORRELATION_ID_KEY-constant" title="Tasker::Concerns::StructuredLogging::CORRELATION_ID_KEY (constant)">Concerns::StructuredLogging::CORRELATION_ID_KEY</a></span></p>
|
158
|
+
|
159
|
+
|
160
|
+
|
161
|
+
|
162
|
+
|
163
|
+
|
164
|
+
<h2>
|
165
|
+
Instance Method Summary
|
166
|
+
<small><a href="#" class="summary_toggle">collapse</a></small>
|
167
|
+
</h2>
|
168
|
+
|
169
|
+
<ul class="summary">
|
170
|
+
|
171
|
+
<li class="public ">
|
172
|
+
<span class="summary_signature">
|
173
|
+
|
174
|
+
<a href="#all_items-instance_method" title="#all_items (instance method)">#<strong>all_items</strong> ⇒ Hash </a>
|
175
|
+
|
176
|
+
|
177
|
+
|
178
|
+
</span>
|
179
|
+
|
180
|
+
|
181
|
+
|
182
|
+
|
183
|
+
|
184
|
+
|
185
|
+
|
186
|
+
|
187
|
+
|
188
|
+
<span class="summary_desc"><div class='inline'>
|
189
|
+
<p>Get all registered plugins (required by BaseRegistry).</p>
|
190
|
+
</div></span>
|
191
|
+
|
192
|
+
</li>
|
193
|
+
|
194
|
+
|
195
|
+
<li class="public ">
|
196
|
+
<span class="summary_signature">
|
197
|
+
|
198
|
+
<a href="#all_plugins-instance_method" title="#all_plugins (instance method)">#<strong>all_plugins</strong> ⇒ Hash </a>
|
199
|
+
|
200
|
+
|
201
|
+
|
202
|
+
</span>
|
203
|
+
|
204
|
+
|
205
|
+
|
206
|
+
|
207
|
+
|
208
|
+
|
209
|
+
|
210
|
+
|
211
|
+
|
212
|
+
<span class="summary_desc"><div class='inline'>
|
213
|
+
<p>Get all registered plugins.</p>
|
214
|
+
</div></span>
|
215
|
+
|
216
|
+
</li>
|
217
|
+
|
218
|
+
|
219
|
+
<li class="public ">
|
220
|
+
<span class="summary_signature">
|
221
|
+
|
222
|
+
<a href="#auto_discover_plugins-instance_method" title="#auto_discover_plugins (instance method)">#<strong>auto_discover_plugins</strong>(directory = nil) ⇒ Integer </a>
|
223
|
+
|
224
|
+
|
225
|
+
|
226
|
+
</span>
|
227
|
+
|
228
|
+
|
229
|
+
|
230
|
+
|
231
|
+
|
232
|
+
|
233
|
+
|
234
|
+
|
235
|
+
|
236
|
+
<span class="summary_desc"><div class='inline'>
|
237
|
+
<p>Auto-discover plugins in the plugins directory.</p>
|
238
|
+
</div></span>
|
239
|
+
|
240
|
+
</li>
|
241
|
+
|
242
|
+
|
243
|
+
<li class="public ">
|
244
|
+
<span class="summary_signature">
|
245
|
+
|
246
|
+
<a href="#clear!-instance_method" title="#clear! (instance method)">#<strong>clear!</strong> ⇒ Boolean </a>
|
247
|
+
|
248
|
+
|
249
|
+
|
250
|
+
</span>
|
251
|
+
|
252
|
+
|
253
|
+
|
254
|
+
|
255
|
+
|
256
|
+
|
257
|
+
|
258
|
+
|
259
|
+
|
260
|
+
<span class="summary_desc"><div class='inline'>
|
261
|
+
<p>Clear all registered plugins (required by BaseRegistry).</p>
|
262
|
+
</div></span>
|
263
|
+
|
264
|
+
</li>
|
265
|
+
|
266
|
+
|
267
|
+
<li class="public ">
|
268
|
+
<span class="summary_signature">
|
269
|
+
|
270
|
+
<a href="#clear_all!-instance_method" title="#clear_all! (instance method)">#<strong>clear_all!</strong> ⇒ Boolean </a>
|
271
|
+
|
272
|
+
|
273
|
+
|
274
|
+
</span>
|
275
|
+
|
276
|
+
|
277
|
+
|
278
|
+
|
279
|
+
|
280
|
+
|
281
|
+
|
282
|
+
|
283
|
+
|
284
|
+
<span class="summary_desc"><div class='inline'>
|
285
|
+
<p>Legacy method for backward compatibility.</p>
|
286
|
+
</div></span>
|
287
|
+
|
288
|
+
</li>
|
289
|
+
|
290
|
+
|
291
|
+
<li class="public ">
|
292
|
+
<span class="summary_signature">
|
293
|
+
|
294
|
+
<a href="#find_by-instance_method" title="#find_by (instance method)">#<strong>find_by</strong>(format:) ⇒ Array<Object> </a>
|
295
|
+
|
296
|
+
|
297
|
+
|
298
|
+
</span>
|
299
|
+
|
300
|
+
|
301
|
+
|
302
|
+
|
303
|
+
|
304
|
+
|
305
|
+
|
306
|
+
|
307
|
+
|
308
|
+
<span class="summary_desc"><div class='inline'>
|
309
|
+
<p>Find plugins by criteria (supports keyword arguments for test compatibility).</p>
|
310
|
+
</div></span>
|
311
|
+
|
312
|
+
</li>
|
313
|
+
|
314
|
+
|
315
|
+
<li class="public ">
|
316
|
+
<span class="summary_signature">
|
317
|
+
|
318
|
+
<a href="#find_by_format-instance_method" title="#find_by_format (instance method)">#<strong>find_by_format</strong>(format) ⇒ Array<Object> </a>
|
319
|
+
|
320
|
+
|
321
|
+
|
322
|
+
</span>
|
323
|
+
|
324
|
+
|
325
|
+
|
326
|
+
|
327
|
+
|
328
|
+
|
329
|
+
|
330
|
+
|
331
|
+
|
332
|
+
<span class="summary_desc"><div class='inline'>
|
333
|
+
<p>Find plugins that support a specific format.</p>
|
334
|
+
</div></span>
|
335
|
+
|
336
|
+
</li>
|
337
|
+
|
338
|
+
|
339
|
+
<li class="public ">
|
340
|
+
<span class="summary_signature">
|
341
|
+
|
342
|
+
<a href="#get_plugin-instance_method" title="#get_plugin (instance method)">#<strong>get_plugin</strong>(name) ⇒ Object<sup>?</sup> </a>
|
343
|
+
|
344
|
+
|
345
|
+
|
346
|
+
</span>
|
347
|
+
|
348
|
+
|
349
|
+
|
350
|
+
|
351
|
+
|
352
|
+
|
353
|
+
|
354
|
+
|
355
|
+
|
356
|
+
<span class="summary_desc"><div class='inline'>
|
357
|
+
<p>Get plugin by name.</p>
|
358
|
+
</div></span>
|
359
|
+
|
360
|
+
</li>
|
361
|
+
|
362
|
+
|
363
|
+
<li class="public ">
|
364
|
+
<span class="summary_signature">
|
365
|
+
|
366
|
+
<a href="#initialize-instance_method" title="#initialize (instance method)">#<strong>initialize</strong> ⇒ PluginRegistry </a>
|
367
|
+
|
368
|
+
|
369
|
+
|
370
|
+
</span>
|
371
|
+
|
372
|
+
|
373
|
+
<span class="note title constructor">constructor</span>
|
374
|
+
|
375
|
+
|
376
|
+
|
377
|
+
|
378
|
+
|
379
|
+
|
380
|
+
|
381
|
+
|
382
|
+
<span class="summary_desc"><div class='inline'>
|
383
|
+
<p>A new instance of PluginRegistry.</p>
|
384
|
+
</div></span>
|
385
|
+
|
386
|
+
</li>
|
387
|
+
|
388
|
+
|
389
|
+
<li class="public ">
|
390
|
+
<span class="summary_signature">
|
391
|
+
|
392
|
+
<a href="#register-instance_method" title="#register (instance method)">#<strong>register</strong>(name, plugin, replace: false, **options) ⇒ Boolean </a>
|
393
|
+
|
394
|
+
|
395
|
+
|
396
|
+
</span>
|
397
|
+
|
398
|
+
|
399
|
+
|
400
|
+
|
401
|
+
|
402
|
+
|
403
|
+
|
404
|
+
|
405
|
+
|
406
|
+
<span class="summary_desc"><div class='inline'>
|
407
|
+
<p>Register a plugin.</p>
|
408
|
+
</div></span>
|
409
|
+
|
410
|
+
</li>
|
411
|
+
|
412
|
+
|
413
|
+
<li class="public ">
|
414
|
+
<span class="summary_signature">
|
415
|
+
|
416
|
+
<a href="#stats-instance_method" title="#stats (instance method)">#<strong>stats</strong> ⇒ Hash </a>
|
417
|
+
|
418
|
+
|
419
|
+
|
420
|
+
</span>
|
421
|
+
|
422
|
+
|
423
|
+
|
424
|
+
|
425
|
+
|
426
|
+
|
427
|
+
|
428
|
+
|
429
|
+
|
430
|
+
<span class="summary_desc"><div class='inline'>
|
431
|
+
<p>Get comprehensive registry statistics.</p>
|
432
|
+
</div></span>
|
433
|
+
|
434
|
+
</li>
|
435
|
+
|
436
|
+
|
437
|
+
<li class="public ">
|
438
|
+
<span class="summary_signature">
|
439
|
+
|
440
|
+
<a href="#supported_formats-instance_method" title="#supported_formats (instance method)">#<strong>supported_formats</strong> ⇒ Array<String> </a>
|
441
|
+
|
442
|
+
|
443
|
+
|
444
|
+
</span>
|
445
|
+
|
446
|
+
|
447
|
+
|
448
|
+
|
449
|
+
|
450
|
+
|
451
|
+
|
452
|
+
|
453
|
+
|
454
|
+
<span class="summary_desc"><div class='inline'>
|
455
|
+
<p>Get supported formats across all plugins.</p>
|
456
|
+
</div></span>
|
457
|
+
|
458
|
+
</li>
|
459
|
+
|
460
|
+
|
461
|
+
<li class="public ">
|
462
|
+
<span class="summary_signature">
|
463
|
+
|
464
|
+
<a href="#supports_format%3F-instance_method" title="#supports_format? (instance method)">#<strong>supports_format?</strong>(format) ⇒ Boolean </a>
|
465
|
+
|
466
|
+
|
467
|
+
|
468
|
+
</span>
|
469
|
+
|
470
|
+
|
471
|
+
|
472
|
+
|
473
|
+
|
474
|
+
|
475
|
+
|
476
|
+
|
477
|
+
|
478
|
+
<span class="summary_desc"><div class='inline'>
|
479
|
+
<p>Check if a format is supported by any plugin.</p>
|
480
|
+
</div></span>
|
481
|
+
|
482
|
+
</li>
|
483
|
+
|
484
|
+
|
485
|
+
<li class="public ">
|
486
|
+
<span class="summary_signature">
|
487
|
+
|
488
|
+
<a href="#unregister-instance_method" title="#unregister (instance method)">#<strong>unregister</strong>(name) ⇒ Boolean </a>
|
489
|
+
|
490
|
+
|
491
|
+
|
492
|
+
</span>
|
493
|
+
|
494
|
+
|
495
|
+
|
496
|
+
|
497
|
+
|
498
|
+
|
499
|
+
|
500
|
+
|
501
|
+
|
502
|
+
<span class="summary_desc"><div class='inline'>
|
503
|
+
<p>Unregister a plugin.</p>
|
504
|
+
</div></span>
|
505
|
+
|
506
|
+
</li>
|
507
|
+
|
508
|
+
|
509
|
+
</ul>
|
510
|
+
|
511
|
+
|
512
|
+
|
513
|
+
|
514
|
+
|
515
|
+
|
516
|
+
|
517
|
+
|
518
|
+
|
519
|
+
|
520
|
+
|
521
|
+
|
522
|
+
<h3 class="inherited">Methods inherited from <span class='object_link'><a href="../Registry/BaseRegistry.html" title="Tasker::Registry::BaseRegistry (class)">Registry::BaseRegistry</a></span></h3>
|
523
|
+
<p class="inherited"><span class='object_link'><a href="../Registry/BaseRegistry.html#base_stats-instance_method" title="Tasker::Registry::BaseRegistry#base_stats (method)">#base_stats</a></span>, <span class='object_link'><a href="../Registry/BaseRegistry.html#health_check-instance_method" title="Tasker::Registry::BaseRegistry#health_check (method)">#health_check</a></span>, <span class='object_link'><a href="../Registry/BaseRegistry.html#healthy%3F-instance_method" title="Tasker::Registry::BaseRegistry#healthy? (method)">#healthy?</a></span>, <span class='object_link'><a href="../Registry/BaseRegistry.html#log_registration-instance_method" title="Tasker::Registry::BaseRegistry#log_registration (method)">#log_registration</a></span>, <span class='object_link'><a href="../Registry/BaseRegistry.html#log_registry_error-instance_method" title="Tasker::Registry::BaseRegistry#log_registry_error (method)">#log_registry_error</a></span>, <span class='object_link'><a href="../Registry/BaseRegistry.html#log_registry_operation-instance_method" title="Tasker::Registry::BaseRegistry#log_registry_operation (method)">#log_registry_operation</a></span>, <span class='object_link'><a href="../Registry/BaseRegistry.html#log_unregistration-instance_method" title="Tasker::Registry::BaseRegistry#log_unregistration (method)">#log_unregistration</a></span>, <span class='object_link'><a href="../Registry/BaseRegistry.html#log_validation_failure-instance_method" title="Tasker::Registry::BaseRegistry#log_validation_failure (method)">#log_validation_failure</a></span>, <span class='object_link'><a href="../Registry/BaseRegistry.html#thread_safe_operation-instance_method" title="Tasker::Registry::BaseRegistry#thread_safe_operation (method)">#thread_safe_operation</a></span>, <span class='object_link'><a href="../Registry/BaseRegistry.html#validate_registration_params!-instance_method" title="Tasker::Registry::BaseRegistry#validate_registration_params! (method)">#validate_registration_params!</a></span></p>
|
524
|
+
|
525
|
+
|
526
|
+
|
527
|
+
|
528
|
+
|
529
|
+
|
530
|
+
|
531
|
+
|
532
|
+
|
533
|
+
<h3 class="inherited">Methods included from <span class='object_link'><a href="../Concerns/StructuredLogging.html" title="Tasker::Concerns::StructuredLogging (module)">Concerns::StructuredLogging</a></span></h3>
|
534
|
+
<p class="inherited"><span class='object_link'><a href="../Concerns/StructuredLogging.html#correlation_id-instance_method" title="Tasker::Concerns::StructuredLogging#correlation_id (method)">#correlation_id</a></span>, <span class='object_link'><a href="../Concerns/StructuredLogging.html#correlation_id=-instance_method" title="Tasker::Concerns::StructuredLogging#correlation_id= (method)">#correlation_id=</a></span>, <span class='object_link'><a href="../Concerns/StructuredLogging.html#log_exception-instance_method" title="Tasker::Concerns::StructuredLogging#log_exception (method)">#log_exception</a></span>, <span class='object_link'><a href="../Concerns/StructuredLogging.html#log_orchestration_event-instance_method" title="Tasker::Concerns::StructuredLogging#log_orchestration_event (method)">#log_orchestration_event</a></span>, <span class='object_link'><a href="../Concerns/StructuredLogging.html#log_performance_event-instance_method" title="Tasker::Concerns::StructuredLogging#log_performance_event (method)">#log_performance_event</a></span>, <span class='object_link'><a href="../Concerns/StructuredLogging.html#log_step_event-instance_method" title="Tasker::Concerns::StructuredLogging#log_step_event (method)">#log_step_event</a></span>, <span class='object_link'><a href="../Concerns/StructuredLogging.html#log_structured-instance_method" title="Tasker::Concerns::StructuredLogging#log_structured (method)">#log_structured</a></span>, <span class='object_link'><a href="../Concerns/StructuredLogging.html#log_task_event-instance_method" title="Tasker::Concerns::StructuredLogging#log_task_event (method)">#log_task_event</a></span>, <span class='object_link'><a href="../Concerns/StructuredLogging.html#with_correlation_id-instance_method" title="Tasker::Concerns::StructuredLogging#with_correlation_id (method)">#with_correlation_id</a></span></p>
|
535
|
+
|
536
|
+
<div id="constructor_details" class="method_details_list">
|
537
|
+
<h2>Constructor Details</h2>
|
538
|
+
|
539
|
+
<div class="method_details first">
|
540
|
+
<h3 class="signature first" id="initialize-instance_method">
|
541
|
+
|
542
|
+
#<strong>initialize</strong> ⇒ <tt><span class='object_link'><a href="" title="Tasker::Telemetry::PluginRegistry (class)">PluginRegistry</a></span></tt>
|
543
|
+
|
544
|
+
|
545
|
+
|
546
|
+
|
547
|
+
|
548
|
+
</h3><div class="docstring">
|
549
|
+
<div class="discussion">
|
550
|
+
|
551
|
+
<p>Returns a new instance of PluginRegistry.</p>
|
552
|
+
|
553
|
+
|
554
|
+
</div>
|
555
|
+
</div>
|
556
|
+
<div class="tags">
|
557
|
+
|
558
|
+
|
559
|
+
</div><table class="source_code">
|
560
|
+
<tr>
|
561
|
+
<td>
|
562
|
+
<pre class="lines">
|
563
|
+
|
564
|
+
|
565
|
+
28
|
566
|
+
29
|
567
|
+
30
|
568
|
+
31
|
569
|
+
32
|
570
|
+
33</pre>
|
571
|
+
</td>
|
572
|
+
<td>
|
573
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/telemetry/plugin_registry.rb', line 28</span>
|
574
|
+
|
575
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span>
|
576
|
+
<span class='kw'>super</span>
|
577
|
+
<span class='ivar'>@plugins</span> <span class='op'>=</span> <span class='const'>Concurrent</span><span class='op'>::</span><span class='const'>Hash</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
|
578
|
+
<span class='ivar'>@formats</span> <span class='op'>=</span> <span class='const'>Concurrent</span><span class='op'>::</span><span class='const'>Hash</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
|
579
|
+
<span class='id identifier rubyid_log_registry_operation'>log_registry_operation</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>initialized</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='label'>total_plugins:</span> <span class='int'>0</span><span class='comma'>,</span> <span class='label'>total_formats:</span> <span class='int'>0</span><span class='rparen'>)</span>
|
580
|
+
<span class='kw'>end</span></pre>
|
581
|
+
</td>
|
582
|
+
</tr>
|
583
|
+
</table>
|
584
|
+
</div>
|
585
|
+
|
586
|
+
</div>
|
587
|
+
|
588
|
+
|
589
|
+
<div id="instance_method_details" class="method_details_list">
|
590
|
+
<h2>Instance Method Details</h2>
|
591
|
+
|
592
|
+
|
593
|
+
<div class="method_details first">
|
594
|
+
<h3 class="signature first" id="all_items-instance_method">
|
595
|
+
|
596
|
+
#<strong>all_items</strong> ⇒ <tt>Hash</tt>
|
597
|
+
|
598
|
+
|
599
|
+
|
600
|
+
|
601
|
+
|
602
|
+
</h3><div class="docstring">
|
603
|
+
<div class="discussion">
|
604
|
+
|
605
|
+
<p>Get all registered plugins (required by BaseRegistry)</p>
|
606
|
+
|
607
|
+
|
608
|
+
</div>
|
609
|
+
</div>
|
610
|
+
<div class="tags">
|
611
|
+
|
612
|
+
<p class="tag_title">Returns:</p>
|
613
|
+
<ul class="return">
|
614
|
+
|
615
|
+
<li>
|
616
|
+
|
617
|
+
|
618
|
+
<span class='type'>(<tt>Hash</tt>)</span>
|
619
|
+
|
620
|
+
|
621
|
+
|
622
|
+
—
|
623
|
+
<div class='inline'>
|
624
|
+
<p>All registered plugins</p>
|
625
|
+
</div>
|
626
|
+
|
627
|
+
</li>
|
628
|
+
|
629
|
+
</ul>
|
630
|
+
|
631
|
+
</div><table class="source_code">
|
632
|
+
<tr>
|
633
|
+
<td>
|
634
|
+
<pre class="lines">
|
635
|
+
|
636
|
+
|
637
|
+
122
|
638
|
+
123
|
639
|
+
124</pre>
|
640
|
+
</td>
|
641
|
+
<td>
|
642
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/telemetry/plugin_registry.rb', line 122</span>
|
643
|
+
|
644
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_all_items'>all_items</span>
|
645
|
+
<span class='id identifier rubyid_all_plugins'>all_plugins</span>
|
646
|
+
<span class='kw'>end</span></pre>
|
647
|
+
</td>
|
648
|
+
</tr>
|
649
|
+
</table>
|
650
|
+
</div>
|
651
|
+
|
652
|
+
<div class="method_details ">
|
653
|
+
<h3 class="signature " id="all_plugins-instance_method">
|
654
|
+
|
655
|
+
#<strong>all_plugins</strong> ⇒ <tt>Hash</tt>
|
656
|
+
|
657
|
+
|
658
|
+
|
659
|
+
|
660
|
+
|
661
|
+
</h3><div class="docstring">
|
662
|
+
<div class="discussion">
|
663
|
+
|
664
|
+
<p>Get all registered plugins</p>
|
665
|
+
|
666
|
+
|
667
|
+
</div>
|
668
|
+
</div>
|
669
|
+
<div class="tags">
|
670
|
+
|
671
|
+
<p class="tag_title">Returns:</p>
|
672
|
+
<ul class="return">
|
673
|
+
|
674
|
+
<li>
|
675
|
+
|
676
|
+
|
677
|
+
<span class='type'>(<tt>Hash</tt>)</span>
|
678
|
+
|
679
|
+
|
680
|
+
|
681
|
+
—
|
682
|
+
<div class='inline'>
|
683
|
+
<p>Hash of plugin name => plugin info</p>
|
684
|
+
</div>
|
685
|
+
|
686
|
+
</li>
|
687
|
+
|
688
|
+
</ul>
|
689
|
+
|
690
|
+
</div><table class="source_code">
|
691
|
+
<tr>
|
692
|
+
<td>
|
693
|
+
<pre class="lines">
|
694
|
+
|
695
|
+
|
696
|
+
115
|
697
|
+
116
|
698
|
+
117</pre>
|
699
|
+
</td>
|
700
|
+
<td>
|
701
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/telemetry/plugin_registry.rb', line 115</span>
|
702
|
+
|
703
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_all_plugins'>all_plugins</span>
|
704
|
+
<span class='ivar'>@plugins</span><span class='period'>.</span><span class='id identifier rubyid_dup'>dup</span>
|
705
|
+
<span class='kw'>end</span></pre>
|
706
|
+
</td>
|
707
|
+
</tr>
|
708
|
+
</table>
|
709
|
+
</div>
|
710
|
+
|
711
|
+
<div class="method_details ">
|
712
|
+
<h3 class="signature " id="auto_discover_plugins-instance_method">
|
713
|
+
|
714
|
+
#<strong>auto_discover_plugins</strong>(directory = nil) ⇒ <tt>Integer</tt>
|
715
|
+
|
716
|
+
|
717
|
+
|
718
|
+
|
719
|
+
|
720
|
+
</h3><div class="docstring">
|
721
|
+
<div class="discussion">
|
722
|
+
|
723
|
+
<p>Auto-discover plugins in the plugins directory</p>
|
724
|
+
|
725
|
+
|
726
|
+
</div>
|
727
|
+
</div>
|
728
|
+
<div class="tags">
|
729
|
+
<p class="tag_title">Parameters:</p>
|
730
|
+
<ul class="param">
|
731
|
+
|
732
|
+
<li>
|
733
|
+
|
734
|
+
<span class='name'>directory</span>
|
735
|
+
|
736
|
+
|
737
|
+
<span class='type'>(<tt>String</tt>)</span>
|
738
|
+
|
739
|
+
|
740
|
+
<em class="default">(defaults to: <tt>nil</tt>)</em>
|
741
|
+
|
742
|
+
|
743
|
+
—
|
744
|
+
<div class='inline'>
|
745
|
+
<p>Directory to search for plugins</p>
|
746
|
+
</div>
|
747
|
+
|
748
|
+
</li>
|
749
|
+
|
750
|
+
</ul>
|
751
|
+
|
752
|
+
<p class="tag_title">Returns:</p>
|
753
|
+
<ul class="return">
|
754
|
+
|
755
|
+
<li>
|
756
|
+
|
757
|
+
|
758
|
+
<span class='type'>(<tt>Integer</tt>)</span>
|
759
|
+
|
760
|
+
|
761
|
+
|
762
|
+
—
|
763
|
+
<div class='inline'>
|
764
|
+
<p>Number of plugins discovered</p>
|
765
|
+
</div>
|
766
|
+
|
767
|
+
</li>
|
768
|
+
|
769
|
+
</ul>
|
770
|
+
|
771
|
+
</div><table class="source_code">
|
772
|
+
<tr>
|
773
|
+
<td>
|
774
|
+
<pre class="lines">
|
775
|
+
|
776
|
+
|
777
|
+
173
|
778
|
+
174
|
779
|
+
175
|
780
|
+
176
|
781
|
+
177
|
782
|
+
178
|
783
|
+
179
|
784
|
+
180
|
785
|
+
181
|
786
|
+
182
|
787
|
+
183
|
788
|
+
184
|
789
|
+
185
|
790
|
+
186
|
791
|
+
187
|
792
|
+
188
|
793
|
+
189
|
794
|
+
190
|
795
|
+
191
|
796
|
+
192
|
797
|
+
193
|
798
|
+
194
|
799
|
+
195
|
800
|
+
196
|
801
|
+
197
|
802
|
+
198
|
803
|
+
199
|
804
|
+
200
|
805
|
+
201
|
806
|
+
202
|
807
|
+
203
|
808
|
+
204
|
809
|
+
205</pre>
|
810
|
+
</td>
|
811
|
+
<td>
|
812
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/telemetry/plugin_registry.rb', line 173</span>
|
813
|
+
|
814
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_auto_discover_plugins'>auto_discover_plugins</span><span class='lparen'>(</span><span class='id identifier rubyid_directory'>directory</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
|
815
|
+
<span class='id identifier rubyid_directory'>directory</span> <span class='op'>||=</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_join'>join</span><span class='lparen'>(</span><span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_dirname'>dirname</span><span class='lparen'>(</span><span class='kw'>__FILE__</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>plugins</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
|
816
|
+
|
817
|
+
<span class='kw'>return</span> <span class='int'>0</span> <span class='kw'>unless</span> <span class='const'>Dir</span><span class='period'>.</span><span class='id identifier rubyid_exist?'>exist?</span><span class='lparen'>(</span><span class='id identifier rubyid_directory'>directory</span><span class='rparen'>)</span>
|
818
|
+
|
819
|
+
<span class='id identifier rubyid_discovered_count'>discovered_count</span> <span class='op'>=</span> <span class='int'>0</span>
|
820
|
+
|
821
|
+
<span class='const'>Dir</span><span class='period'>.</span><span class='id identifier rubyid_glob'>glob</span><span class='lparen'>(</span><span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_join'>join</span><span class='lparen'>(</span><span class='id identifier rubyid_directory'>directory</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>*_exporter.rb</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='rparen'>)</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_file'>file</span><span class='op'>|</span>
|
822
|
+
<span class='id identifier rubyid_require'>require</span> <span class='id identifier rubyid_file'>file</span>
|
823
|
+
|
824
|
+
<span class='comment'># Extract class name from filename
|
825
|
+
</span> <span class='id identifier rubyid_class_name'>class_name</span> <span class='op'>=</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_basename'>basename</span><span class='lparen'>(</span><span class='id identifier rubyid_file'>file</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>.rb</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_camelize'>camelize</span>
|
826
|
+
<span class='id identifier rubyid_full_class_name'>full_class_name</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Tasker::Telemetry::Plugins::</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_class_name'>class_name</span><span class='embexpr_end'>}</span><span class='tstring_end'>"</span></span>
|
827
|
+
|
828
|
+
<span class='comment'># Try to instantiate the plugin
|
829
|
+
</span> <span class='id identifier rubyid_plugin_class'>plugin_class</span> <span class='op'>=</span> <span class='id identifier rubyid_full_class_name'>full_class_name</span><span class='period'>.</span><span class='id identifier rubyid_constantize'>constantize</span>
|
830
|
+
<span class='id identifier rubyid_plugin_instance'>plugin_instance</span> <span class='op'>=</span> <span class='id identifier rubyid_plugin_class'>plugin_class</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
|
831
|
+
|
832
|
+
<span class='id identifier rubyid_register'>register</span><span class='lparen'>(</span><span class='id identifier rubyid_class_name'>class_name</span><span class='period'>.</span><span class='id identifier rubyid_underscore'>underscore</span><span class='comma'>,</span> <span class='id identifier rubyid_plugin_instance'>plugin_instance</span><span class='comma'>,</span> <span class='label'>auto_discovered:</span> <span class='kw'>true</span><span class='rparen'>)</span>
|
833
|
+
<span class='id identifier rubyid_discovered_count'>discovered_count</span> <span class='op'>+=</span> <span class='int'>1</span>
|
834
|
+
|
835
|
+
<span class='id identifier rubyid_log_registry_operation'>log_registry_operation</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>auto_discovered_plugin</span><span class='tstring_end'>'</span></span><span class='comma'>,</span>
|
836
|
+
<span class='label'>plugin_name:</span> <span class='id identifier rubyid_class_name'>class_name</span><span class='comma'>,</span>
|
837
|
+
<span class='label'>plugin_class:</span> <span class='id identifier rubyid_full_class_name'>full_class_name</span><span class='comma'>,</span>
|
838
|
+
<span class='label'>file_path:</span> <span class='id identifier rubyid_file'>file</span><span class='rparen'>)</span>
|
839
|
+
<span class='kw'>rescue</span> <span class='const'>StandardError</span> <span class='op'>=></span> <span class='id identifier rubyid_e'>e</span>
|
840
|
+
<span class='id identifier rubyid_log_registry_error'>log_registry_error</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>auto_discovery_failed</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='id identifier rubyid_e'>e</span><span class='comma'>,</span>
|
841
|
+
<span class='label'>file_path:</span> <span class='id identifier rubyid_file'>file</span><span class='comma'>,</span>
|
842
|
+
<span class='label'>class_name:</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_basename'>basename</span><span class='lparen'>(</span><span class='id identifier rubyid_file'>file</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>.rb</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_camelize'>camelize</span><span class='rparen'>)</span>
|
843
|
+
<span class='kw'>end</span>
|
844
|
+
|
845
|
+
<span class='id identifier rubyid_discovered_count'>discovered_count</span>
|
846
|
+
<span class='kw'>end</span></pre>
|
847
|
+
</td>
|
848
|
+
</tr>
|
849
|
+
</table>
|
850
|
+
</div>
|
851
|
+
|
852
|
+
<div class="method_details ">
|
853
|
+
<h3 class="signature " id="clear!-instance_method">
|
854
|
+
|
855
|
+
#<strong>clear!</strong> ⇒ <tt>Boolean</tt>
|
856
|
+
|
857
|
+
|
858
|
+
|
859
|
+
|
860
|
+
|
861
|
+
</h3><div class="docstring">
|
862
|
+
<div class="discussion">
|
863
|
+
|
864
|
+
<p>Clear all registered plugins (required by BaseRegistry)</p>
|
865
|
+
|
866
|
+
|
867
|
+
</div>
|
868
|
+
</div>
|
869
|
+
<div class="tags">
|
870
|
+
|
871
|
+
<p class="tag_title">Returns:</p>
|
872
|
+
<ul class="return">
|
873
|
+
|
874
|
+
<li>
|
875
|
+
|
876
|
+
|
877
|
+
<span class='type'>(<tt>Boolean</tt>)</span>
|
878
|
+
|
879
|
+
|
880
|
+
|
881
|
+
—
|
882
|
+
<div class='inline'>
|
883
|
+
<p>True if cleared successfully</p>
|
884
|
+
</div>
|
885
|
+
|
886
|
+
</li>
|
887
|
+
|
888
|
+
</ul>
|
889
|
+
|
890
|
+
</div><table class="source_code">
|
891
|
+
<tr>
|
892
|
+
<td>
|
893
|
+
<pre class="lines">
|
894
|
+
|
895
|
+
|
896
|
+
225
|
897
|
+
226
|
898
|
+
227
|
899
|
+
228
|
900
|
+
229
|
901
|
+
230
|
902
|
+
231
|
903
|
+
232</pre>
|
904
|
+
</td>
|
905
|
+
<td>
|
906
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/telemetry/plugin_registry.rb', line 225</span>
|
907
|
+
|
908
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_clear!'>clear!</span>
|
909
|
+
<span class='id identifier rubyid_thread_safe_operation'>thread_safe_operation</span> <span class='kw'>do</span>
|
910
|
+
<span class='ivar'>@plugins</span><span class='period'>.</span><span class='id identifier rubyid_clear'>clear</span>
|
911
|
+
<span class='ivar'>@formats</span><span class='period'>.</span><span class='id identifier rubyid_clear'>clear</span>
|
912
|
+
<span class='id identifier rubyid_log_registry_operation'>log_registry_operation</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>cleared_all</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
|
913
|
+
<span class='kw'>true</span>
|
914
|
+
<span class='kw'>end</span>
|
915
|
+
<span class='kw'>end</span></pre>
|
916
|
+
</td>
|
917
|
+
</tr>
|
918
|
+
</table>
|
919
|
+
</div>
|
920
|
+
|
921
|
+
<div class="method_details ">
|
922
|
+
<h3 class="signature " id="clear_all!-instance_method">
|
923
|
+
|
924
|
+
#<strong>clear_all!</strong> ⇒ <tt>Boolean</tt>
|
925
|
+
|
926
|
+
|
927
|
+
|
928
|
+
|
929
|
+
|
930
|
+
</h3><div class="docstring">
|
931
|
+
<div class="discussion">
|
932
|
+
|
933
|
+
<p>Legacy method for backward compatibility</p>
|
934
|
+
|
935
|
+
|
936
|
+
</div>
|
937
|
+
</div>
|
938
|
+
<div class="tags">
|
939
|
+
|
940
|
+
<p class="tag_title">Returns:</p>
|
941
|
+
<ul class="return">
|
942
|
+
|
943
|
+
<li>
|
944
|
+
|
945
|
+
|
946
|
+
<span class='type'>(<tt>Boolean</tt>)</span>
|
947
|
+
|
948
|
+
|
949
|
+
|
950
|
+
—
|
951
|
+
<div class='inline'>
|
952
|
+
<p>True if cleared successfully</p>
|
953
|
+
</div>
|
954
|
+
|
955
|
+
</li>
|
956
|
+
|
957
|
+
</ul>
|
958
|
+
|
959
|
+
</div><table class="source_code">
|
960
|
+
<tr>
|
961
|
+
<td>
|
962
|
+
<pre class="lines">
|
963
|
+
|
964
|
+
|
965
|
+
237
|
966
|
+
238
|
967
|
+
239</pre>
|
968
|
+
</td>
|
969
|
+
<td>
|
970
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/telemetry/plugin_registry.rb', line 237</span>
|
971
|
+
|
972
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_clear_all!'>clear_all!</span>
|
973
|
+
<span class='id identifier rubyid_clear!'>clear!</span>
|
974
|
+
<span class='kw'>end</span></pre>
|
975
|
+
</td>
|
976
|
+
</tr>
|
977
|
+
</table>
|
978
|
+
</div>
|
979
|
+
|
980
|
+
<div class="method_details ">
|
981
|
+
<h3 class="signature " id="find_by-instance_method">
|
982
|
+
|
983
|
+
#<strong>find_by</strong>(format:) ⇒ <tt>Array<Object></tt>
|
984
|
+
|
985
|
+
|
986
|
+
|
987
|
+
|
988
|
+
|
989
|
+
</h3><div class="docstring">
|
990
|
+
<div class="discussion">
|
991
|
+
|
992
|
+
<p>Find plugins by criteria (supports keyword arguments for test compatibility)</p>
|
993
|
+
|
994
|
+
|
995
|
+
</div>
|
996
|
+
</div>
|
997
|
+
<div class="tags">
|
998
|
+
<p class="tag_title">Parameters:</p>
|
999
|
+
<ul class="param">
|
1000
|
+
|
1001
|
+
<li>
|
1002
|
+
|
1003
|
+
<span class='name'>format</span>
|
1004
|
+
|
1005
|
+
|
1006
|
+
<span class='type'>(<tt>String</tt>, <tt>Symbol</tt>)</span>
|
1007
|
+
|
1008
|
+
|
1009
|
+
|
1010
|
+
—
|
1011
|
+
<div class='inline'>
|
1012
|
+
<p>Format to search for</p>
|
1013
|
+
</div>
|
1014
|
+
|
1015
|
+
</li>
|
1016
|
+
|
1017
|
+
</ul>
|
1018
|
+
|
1019
|
+
<p class="tag_title">Returns:</p>
|
1020
|
+
<ul class="return">
|
1021
|
+
|
1022
|
+
<li>
|
1023
|
+
|
1024
|
+
|
1025
|
+
<span class='type'>(<tt>Array<Object></tt>)</span>
|
1026
|
+
|
1027
|
+
|
1028
|
+
|
1029
|
+
—
|
1030
|
+
<div class='inline'>
|
1031
|
+
<p>Array of plugin instances</p>
|
1032
|
+
</div>
|
1033
|
+
|
1034
|
+
</li>
|
1035
|
+
|
1036
|
+
</ul>
|
1037
|
+
|
1038
|
+
</div><table class="source_code">
|
1039
|
+
<tr>
|
1040
|
+
<td>
|
1041
|
+
<pre class="lines">
|
1042
|
+
|
1043
|
+
|
1044
|
+
150
|
1045
|
+
151
|
1046
|
+
152</pre>
|
1047
|
+
</td>
|
1048
|
+
<td>
|
1049
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/telemetry/plugin_registry.rb', line 150</span>
|
1050
|
+
|
1051
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_find_by'>find_by</span><span class='lparen'>(</span><span class='label'>format:</span><span class='rparen'>)</span>
|
1052
|
+
<span class='id identifier rubyid_find_by_format'>find_by_format</span><span class='lparen'>(</span><span class='id identifier rubyid_format'>format</span><span class='rparen'>)</span>
|
1053
|
+
<span class='kw'>end</span></pre>
|
1054
|
+
</td>
|
1055
|
+
</tr>
|
1056
|
+
</table>
|
1057
|
+
</div>
|
1058
|
+
|
1059
|
+
<div class="method_details ">
|
1060
|
+
<h3 class="signature " id="find_by_format-instance_method">
|
1061
|
+
|
1062
|
+
#<strong>find_by_format</strong>(format) ⇒ <tt>Array<Object></tt>
|
1063
|
+
|
1064
|
+
|
1065
|
+
|
1066
|
+
|
1067
|
+
|
1068
|
+
</h3><div class="docstring">
|
1069
|
+
<div class="discussion">
|
1070
|
+
|
1071
|
+
<p>Find plugins that support a specific format</p>
|
1072
|
+
|
1073
|
+
|
1074
|
+
</div>
|
1075
|
+
</div>
|
1076
|
+
<div class="tags">
|
1077
|
+
<p class="tag_title">Parameters:</p>
|
1078
|
+
<ul class="param">
|
1079
|
+
|
1080
|
+
<li>
|
1081
|
+
|
1082
|
+
<span class='name'>format</span>
|
1083
|
+
|
1084
|
+
|
1085
|
+
<span class='type'>(<tt>String</tt>, <tt>Symbol</tt>)</span>
|
1086
|
+
|
1087
|
+
|
1088
|
+
|
1089
|
+
—
|
1090
|
+
<div class='inline'>
|
1091
|
+
<p>Format to search for</p>
|
1092
|
+
</div>
|
1093
|
+
|
1094
|
+
</li>
|
1095
|
+
|
1096
|
+
</ul>
|
1097
|
+
|
1098
|
+
<p class="tag_title">Returns:</p>
|
1099
|
+
<ul class="return">
|
1100
|
+
|
1101
|
+
<li>
|
1102
|
+
|
1103
|
+
|
1104
|
+
<span class='type'>(<tt>Array<Object></tt>)</span>
|
1105
|
+
|
1106
|
+
|
1107
|
+
|
1108
|
+
—
|
1109
|
+
<div class='inline'>
|
1110
|
+
<p>Array of plugin instances</p>
|
1111
|
+
</div>
|
1112
|
+
|
1113
|
+
</li>
|
1114
|
+
|
1115
|
+
</ul>
|
1116
|
+
|
1117
|
+
</div><table class="source_code">
|
1118
|
+
<tr>
|
1119
|
+
<td>
|
1120
|
+
<pre class="lines">
|
1121
|
+
|
1122
|
+
|
1123
|
+
139
|
1124
|
+
140
|
1125
|
+
141
|
1126
|
+
142
|
1127
|
+
143
|
1128
|
+
144</pre>
|
1129
|
+
</td>
|
1130
|
+
<td>
|
1131
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/telemetry/plugin_registry.rb', line 139</span>
|
1132
|
+
|
1133
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_find_by_format'>find_by_format</span><span class='lparen'>(</span><span class='id identifier rubyid_format'>format</span><span class='rparen'>)</span>
|
1134
|
+
<span class='id identifier rubyid_format'>format</span> <span class='op'>=</span> <span class='id identifier rubyid_format'>format</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='period'>.</span><span class='id identifier rubyid_downcase'>downcase</span>
|
1135
|
+
<span class='id identifier rubyid_plugin_names'>plugin_names</span> <span class='op'>=</span> <span class='ivar'>@formats</span><span class='lbracket'>[</span><span class='id identifier rubyid_format'>format</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_a'>to_a</span>
|
1136
|
+
|
1137
|
+
<span class='id identifier rubyid_plugin_names'>plugin_names</span><span class='period'>.</span><span class='id identifier rubyid_filter_map'>filter_map</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_name'>name</span><span class='op'>|</span> <span class='id identifier rubyid_get_plugin'>get_plugin</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
|
1138
|
+
<span class='kw'>end</span></pre>
|
1139
|
+
</td>
|
1140
|
+
</tr>
|
1141
|
+
</table>
|
1142
|
+
</div>
|
1143
|
+
|
1144
|
+
<div class="method_details ">
|
1145
|
+
<h3 class="signature " id="get_plugin-instance_method">
|
1146
|
+
|
1147
|
+
#<strong>get_plugin</strong>(name) ⇒ <tt>Object</tt><sup>?</sup>
|
1148
|
+
|
1149
|
+
|
1150
|
+
|
1151
|
+
|
1152
|
+
|
1153
|
+
</h3><div class="docstring">
|
1154
|
+
<div class="discussion">
|
1155
|
+
|
1156
|
+
<p>Get plugin by name</p>
|
1157
|
+
|
1158
|
+
|
1159
|
+
</div>
|
1160
|
+
</div>
|
1161
|
+
<div class="tags">
|
1162
|
+
<p class="tag_title">Parameters:</p>
|
1163
|
+
<ul class="param">
|
1164
|
+
|
1165
|
+
<li>
|
1166
|
+
|
1167
|
+
<span class='name'>name</span>
|
1168
|
+
|
1169
|
+
|
1170
|
+
<span class='type'>(<tt>String</tt>, <tt>Symbol</tt>)</span>
|
1171
|
+
|
1172
|
+
|
1173
|
+
|
1174
|
+
—
|
1175
|
+
<div class='inline'>
|
1176
|
+
<p>Plugin identifier</p>
|
1177
|
+
</div>
|
1178
|
+
|
1179
|
+
</li>
|
1180
|
+
|
1181
|
+
</ul>
|
1182
|
+
|
1183
|
+
<p class="tag_title">Returns:</p>
|
1184
|
+
<ul class="return">
|
1185
|
+
|
1186
|
+
<li>
|
1187
|
+
|
1188
|
+
|
1189
|
+
<span class='type'>(<tt>Object</tt>, <tt>nil</tt>)</span>
|
1190
|
+
|
1191
|
+
|
1192
|
+
|
1193
|
+
—
|
1194
|
+
<div class='inline'>
|
1195
|
+
<p>Plugin instance or nil if not found</p>
|
1196
|
+
</div>
|
1197
|
+
|
1198
|
+
</li>
|
1199
|
+
|
1200
|
+
</ul>
|
1201
|
+
|
1202
|
+
</div><table class="source_code">
|
1203
|
+
<tr>
|
1204
|
+
<td>
|
1205
|
+
<pre class="lines">
|
1206
|
+
|
1207
|
+
|
1208
|
+
130
|
1209
|
+
131
|
1210
|
+
132
|
1211
|
+
133</pre>
|
1212
|
+
</td>
|
1213
|
+
<td>
|
1214
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/telemetry/plugin_registry.rb', line 130</span>
|
1215
|
+
|
1216
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_get_plugin'>get_plugin</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span>
|
1217
|
+
<span class='id identifier rubyid_plugin_config'>plugin_config</span> <span class='op'>=</span> <span class='ivar'>@plugins</span><span class='lbracket'>[</span><span class='id identifier rubyid_name'>name</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='rbracket'>]</span>
|
1218
|
+
<span class='id identifier rubyid_plugin_config'>plugin_config</span><span class='op'>&.</span><span class='id identifier rubyid_dig'>dig</span><span class='lparen'>(</span><span class='symbol'>:instance</span><span class='rparen'>)</span>
|
1219
|
+
<span class='kw'>end</span></pre>
|
1220
|
+
</td>
|
1221
|
+
</tr>
|
1222
|
+
</table>
|
1223
|
+
</div>
|
1224
|
+
|
1225
|
+
<div class="method_details ">
|
1226
|
+
<h3 class="signature " id="register-instance_method">
|
1227
|
+
|
1228
|
+
#<strong>register</strong>(name, plugin, replace: false, **options) ⇒ <tt>Boolean</tt>
|
1229
|
+
|
1230
|
+
|
1231
|
+
|
1232
|
+
|
1233
|
+
|
1234
|
+
</h3><div class="docstring">
|
1235
|
+
<div class="discussion">
|
1236
|
+
|
1237
|
+
<p>Register a plugin</p>
|
1238
|
+
|
1239
|
+
|
1240
|
+
</div>
|
1241
|
+
</div>
|
1242
|
+
<div class="tags">
|
1243
|
+
<p class="tag_title">Parameters:</p>
|
1244
|
+
<ul class="param">
|
1245
|
+
|
1246
|
+
<li>
|
1247
|
+
|
1248
|
+
<span class='name'>name</span>
|
1249
|
+
|
1250
|
+
|
1251
|
+
<span class='type'>(<tt>String</tt>, <tt>Symbol</tt>)</span>
|
1252
|
+
|
1253
|
+
|
1254
|
+
|
1255
|
+
—
|
1256
|
+
<div class='inline'>
|
1257
|
+
<p>Plugin identifier</p>
|
1258
|
+
</div>
|
1259
|
+
|
1260
|
+
</li>
|
1261
|
+
|
1262
|
+
<li>
|
1263
|
+
|
1264
|
+
<span class='name'>plugin</span>
|
1265
|
+
|
1266
|
+
|
1267
|
+
<span class='type'>(<tt>Object</tt>)</span>
|
1268
|
+
|
1269
|
+
|
1270
|
+
|
1271
|
+
—
|
1272
|
+
<div class='inline'>
|
1273
|
+
<p>Plugin instance</p>
|
1274
|
+
</div>
|
1275
|
+
|
1276
|
+
</li>
|
1277
|
+
|
1278
|
+
<li>
|
1279
|
+
|
1280
|
+
<span class='name'>replace</span>
|
1281
|
+
|
1282
|
+
|
1283
|
+
<span class='type'>(<tt>Boolean</tt>)</span>
|
1284
|
+
|
1285
|
+
|
1286
|
+
<em class="default">(defaults to: <tt>false</tt>)</em>
|
1287
|
+
|
1288
|
+
|
1289
|
+
—
|
1290
|
+
<div class='inline'>
|
1291
|
+
<p>Whether to replace existing plugin</p>
|
1292
|
+
</div>
|
1293
|
+
|
1294
|
+
</li>
|
1295
|
+
|
1296
|
+
<li>
|
1297
|
+
|
1298
|
+
<span class='name'>options</span>
|
1299
|
+
|
1300
|
+
|
1301
|
+
<span class='type'>(<tt>Hash</tt>)</span>
|
1302
|
+
|
1303
|
+
|
1304
|
+
|
1305
|
+
—
|
1306
|
+
<div class='inline'>
|
1307
|
+
<p>Plugin options</p>
|
1308
|
+
</div>
|
1309
|
+
|
1310
|
+
</li>
|
1311
|
+
|
1312
|
+
</ul>
|
1313
|
+
|
1314
|
+
<p class="tag_title">Returns:</p>
|
1315
|
+
<ul class="return">
|
1316
|
+
|
1317
|
+
<li>
|
1318
|
+
|
1319
|
+
|
1320
|
+
<span class='type'>(<tt>Boolean</tt>)</span>
|
1321
|
+
|
1322
|
+
|
1323
|
+
|
1324
|
+
—
|
1325
|
+
<div class='inline'>
|
1326
|
+
<p>True if registration successful</p>
|
1327
|
+
</div>
|
1328
|
+
|
1329
|
+
</li>
|
1330
|
+
|
1331
|
+
</ul>
|
1332
|
+
|
1333
|
+
</div><table class="source_code">
|
1334
|
+
<tr>
|
1335
|
+
<td>
|
1336
|
+
<pre class="lines">
|
1337
|
+
|
1338
|
+
|
1339
|
+
42
|
1340
|
+
43
|
1341
|
+
44
|
1342
|
+
45
|
1343
|
+
46
|
1344
|
+
47
|
1345
|
+
48
|
1346
|
+
49
|
1347
|
+
50
|
1348
|
+
51
|
1349
|
+
52
|
1350
|
+
53
|
1351
|
+
54
|
1352
|
+
55
|
1353
|
+
56
|
1354
|
+
57
|
1355
|
+
58
|
1356
|
+
59
|
1357
|
+
60
|
1358
|
+
61
|
1359
|
+
62
|
1360
|
+
63
|
1361
|
+
64
|
1362
|
+
65
|
1363
|
+
66
|
1364
|
+
67
|
1365
|
+
68
|
1366
|
+
69
|
1367
|
+
70
|
1368
|
+
71
|
1369
|
+
72
|
1370
|
+
73
|
1371
|
+
74
|
1372
|
+
75
|
1373
|
+
76
|
1374
|
+
77
|
1375
|
+
78
|
1376
|
+
79
|
1377
|
+
80
|
1378
|
+
81
|
1379
|
+
82
|
1380
|
+
83
|
1381
|
+
84
|
1382
|
+
85
|
1383
|
+
86
|
1384
|
+
87
|
1385
|
+
88</pre>
|
1386
|
+
</td>
|
1387
|
+
<td>
|
1388
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/telemetry/plugin_registry.rb', line 42</span>
|
1389
|
+
|
1390
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_register'>register</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='comma'>,</span> <span class='id identifier rubyid_plugin'>plugin</span><span class='comma'>,</span> <span class='label'>replace:</span> <span class='kw'>false</span><span class='comma'>,</span> <span class='op'>**</span><span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
|
1391
|
+
<span class='id identifier rubyid_name'>name</span> <span class='op'>=</span> <span class='id identifier rubyid_name'>name</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
|
1392
|
+
|
1393
|
+
<span class='id identifier rubyid_thread_safe_operation'>thread_safe_operation</span> <span class='kw'>do</span>
|
1394
|
+
<span class='comment'># Validate plugin interface
|
1395
|
+
</span> <span class='kw'>begin</span>
|
1396
|
+
<span class='const'><span class='object_link'><a href="../Registry.html" title="Tasker::Registry (module)">Registry</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Registry/InterfaceValidator.html" title="Tasker::Registry::InterfaceValidator (class)">InterfaceValidator</a></span></span><span class='period'>.</span><span class='id identifier rubyid_validate_plugin!'><span class='object_link'><a href="../Registry/InterfaceValidator.html#validate_plugin!-class_method" title="Tasker::Registry::InterfaceValidator.validate_plugin! (method)">validate_plugin!</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_plugin'>plugin</span><span class='rparen'>)</span>
|
1397
|
+
<span class='kw'>rescue</span> <span class='const'>ArgumentError</span> <span class='op'>=></span> <span class='id identifier rubyid_e'>e</span>
|
1398
|
+
<span class='id identifier rubyid_log_validation_failure'>log_validation_failure</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>telemetry_plugin</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='id identifier rubyid_name'>name</span><span class='comma'>,</span> <span class='id identifier rubyid_e'>e</span><span class='period'>.</span><span class='id identifier rubyid_message'>message</span><span class='rparen'>)</span>
|
1399
|
+
<span class='id identifier rubyid_raise'>raise</span>
|
1400
|
+
<span class='kw'>end</span>
|
1401
|
+
|
1402
|
+
<span class='comment'># Check for existing plugin
|
1403
|
+
</span> <span class='kw'>if</span> <span class='ivar'>@plugins</span><span class='period'>.</span><span class='id identifier rubyid_key?'>key?</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span> <span class='op'>&&</span> <span class='op'>!</span><span class='id identifier rubyid_replace'>replace</span>
|
1404
|
+
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Plugin '</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_name'>name</span><span class='embexpr_end'>}</span><span class='tstring_content'>' already registered. Use replace: true to override.</span><span class='tstring_end'>"</span></span>
|
1405
|
+
<span class='kw'>end</span>
|
1406
|
+
|
1407
|
+
<span class='comment'># Remove existing plugin if replacing
|
1408
|
+
</span> <span class='kw'>if</span> <span class='ivar'>@plugins</span><span class='period'>.</span><span class='id identifier rubyid_key?'>key?</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span>
|
1409
|
+
<span class='id identifier rubyid_existing_config'>existing_config</span> <span class='op'>=</span> <span class='ivar'>@plugins</span><span class='lbracket'>[</span><span class='id identifier rubyid_name'>name</span><span class='rbracket'>]</span>
|
1410
|
+
<span class='id identifier rubyid_unregister_format_mappings'>unregister_format_mappings</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='comma'>,</span> <span class='id identifier rubyid_existing_config'>existing_config</span><span class='lbracket'>[</span><span class='symbol'>:supported_formats</span><span class='rbracket'>]</span><span class='rparen'>)</span>
|
1411
|
+
<span class='id identifier rubyid_log_unregistration'>log_unregistration</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>telemetry_plugin</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='id identifier rubyid_name'>name</span><span class='comma'>,</span> <span class='id identifier rubyid_existing_config'>existing_config</span><span class='lbracket'>[</span><span class='symbol'>:instance</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='rparen'>)</span>
|
1412
|
+
<span class='kw'>end</span>
|
1413
|
+
|
1414
|
+
<span class='comment'># Get supported formats
|
1415
|
+
</span> <span class='id identifier rubyid_supported_formats'>supported_formats</span> <span class='op'>=</span> <span class='id identifier rubyid_get_supported_formats'>get_supported_formats</span><span class='lparen'>(</span><span class='id identifier rubyid_plugin'>plugin</span><span class='rparen'>)</span>
|
1416
|
+
|
1417
|
+
<span class='comment'># Register plugin
|
1418
|
+
</span> <span class='id identifier rubyid_plugin_config'>plugin_config</span> <span class='op'>=</span> <span class='lbrace'>{</span>
|
1419
|
+
<span class='label'>instance:</span> <span class='id identifier rubyid_plugin'>plugin</span><span class='comma'>,</span>
|
1420
|
+
<span class='label'>name:</span> <span class='id identifier rubyid_name'>name</span><span class='comma'>,</span>
|
1421
|
+
<span class='label'>options:</span> <span class='id identifier rubyid_options'>options</span><span class='period'>.</span><span class='id identifier rubyid_merge'>merge</span><span class='lparen'>(</span><span class='label'>replace:</span> <span class='id identifier rubyid_replace'>replace</span><span class='rparen'>)</span><span class='comma'>,</span>
|
1422
|
+
<span class='label'>registered_at:</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_current'>current</span><span class='comma'>,</span>
|
1423
|
+
<span class='label'>supported_formats:</span> <span class='id identifier rubyid_supported_formats'>supported_formats</span>
|
1424
|
+
<span class='rbrace'>}</span>
|
1425
|
+
|
1426
|
+
<span class='ivar'>@plugins</span><span class='lbracket'>[</span><span class='id identifier rubyid_name'>name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_plugin_config'>plugin_config</span>
|
1427
|
+
|
1428
|
+
<span class='comment'># Index by supported formats
|
1429
|
+
</span> <span class='id identifier rubyid_register_format_mappings'>register_format_mappings</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='comma'>,</span> <span class='id identifier rubyid_supported_formats'>supported_formats</span><span class='rparen'>)</span>
|
1430
|
+
|
1431
|
+
<span class='id identifier rubyid_log_registration'>log_registration</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>telemetry_plugin</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='id identifier rubyid_name'>name</span><span class='comma'>,</span> <span class='id identifier rubyid_plugin'>plugin</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='comma'>,</span>
|
1432
|
+
<span class='lbrace'>{</span> <span class='label'>supported_formats:</span> <span class='id identifier rubyid_supported_formats'>supported_formats</span><span class='comma'>,</span> <span class='label'>format_count:</span> <span class='id identifier rubyid_supported_formats'>supported_formats</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span><span class='comma'>,</span> <span class='op'>**</span><span class='id identifier rubyid_options'>options</span> <span class='rbrace'>}</span><span class='rparen'>)</span>
|
1433
|
+
|
1434
|
+
<span class='kw'>true</span>
|
1435
|
+
<span class='kw'>end</span>
|
1436
|
+
<span class='kw'>end</span></pre>
|
1437
|
+
</td>
|
1438
|
+
</tr>
|
1439
|
+
</table>
|
1440
|
+
</div>
|
1441
|
+
|
1442
|
+
<div class="method_details ">
|
1443
|
+
<h3 class="signature " id="stats-instance_method">
|
1444
|
+
|
1445
|
+
#<strong>stats</strong> ⇒ <tt>Hash</tt>
|
1446
|
+
|
1447
|
+
|
1448
|
+
|
1449
|
+
|
1450
|
+
|
1451
|
+
</h3><div class="docstring">
|
1452
|
+
<div class="discussion">
|
1453
|
+
|
1454
|
+
<p>Get comprehensive registry statistics</p>
|
1455
|
+
|
1456
|
+
|
1457
|
+
</div>
|
1458
|
+
</div>
|
1459
|
+
<div class="tags">
|
1460
|
+
|
1461
|
+
<p class="tag_title">Returns:</p>
|
1462
|
+
<ul class="return">
|
1463
|
+
|
1464
|
+
<li>
|
1465
|
+
|
1466
|
+
|
1467
|
+
<span class='type'>(<tt>Hash</tt>)</span>
|
1468
|
+
|
1469
|
+
|
1470
|
+
|
1471
|
+
—
|
1472
|
+
<div class='inline'>
|
1473
|
+
<p>Detailed statistics about the registry</p>
|
1474
|
+
</div>
|
1475
|
+
|
1476
|
+
</li>
|
1477
|
+
|
1478
|
+
</ul>
|
1479
|
+
|
1480
|
+
</div><table class="source_code">
|
1481
|
+
<tr>
|
1482
|
+
<td>
|
1483
|
+
<pre class="lines">
|
1484
|
+
|
1485
|
+
|
1486
|
+
210
|
1487
|
+
211
|
1488
|
+
212
|
1489
|
+
213
|
1490
|
+
214
|
1491
|
+
215
|
1492
|
+
216
|
1493
|
+
217
|
1494
|
+
218
|
1495
|
+
219
|
1496
|
+
220</pre>
|
1497
|
+
</td>
|
1498
|
+
<td>
|
1499
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/telemetry/plugin_registry.rb', line 210</span>
|
1500
|
+
|
1501
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_stats'>stats</span>
|
1502
|
+
<span class='id identifier rubyid_base_stats'>base_stats</span><span class='period'>.</span><span class='id identifier rubyid_merge'>merge</span><span class='lparen'>(</span>
|
1503
|
+
<span class='label'>total_plugins:</span> <span class='ivar'>@plugins</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span><span class='comma'>,</span>
|
1504
|
+
<span class='label'>total_formats:</span> <span class='ivar'>@formats</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span><span class='comma'>,</span>
|
1505
|
+
<span class='label'>supported_formats:</span> <span class='ivar'>@formats</span><span class='period'>.</span><span class='id identifier rubyid_keys'>keys</span><span class='period'>.</span><span class='id identifier rubyid_sort'>sort</span><span class='comma'>,</span>
|
1506
|
+
<span class='label'>plugins_by_format:</span> <span class='ivar'>@formats</span><span class='period'>.</span><span class='id identifier rubyid_transform_values'>transform_values</span><span class='lparen'>(</span><span class='op'>&</span><span class='symbol'>:size</span><span class='rparen'>)</span><span class='comma'>,</span>
|
1507
|
+
<span class='label'>average_formats_per_plugin:</span> <span class='id identifier rubyid_calculate_average_formats_per_plugin'>calculate_average_formats_per_plugin</span><span class='comma'>,</span>
|
1508
|
+
<span class='label'>most_popular_formats:</span> <span class='id identifier rubyid_find_most_popular_formats'>find_most_popular_formats</span><span class='comma'>,</span>
|
1509
|
+
<span class='label'>plugin_distribution:</span> <span class='id identifier rubyid_calculate_plugin_distribution'>calculate_plugin_distribution</span>
|
1510
|
+
<span class='rparen'>)</span>
|
1511
|
+
<span class='kw'>end</span></pre>
|
1512
|
+
</td>
|
1513
|
+
</tr>
|
1514
|
+
</table>
|
1515
|
+
</div>
|
1516
|
+
|
1517
|
+
<div class="method_details ">
|
1518
|
+
<h3 class="signature " id="supported_formats-instance_method">
|
1519
|
+
|
1520
|
+
#<strong>supported_formats</strong> ⇒ <tt>Array<String></tt>
|
1521
|
+
|
1522
|
+
|
1523
|
+
|
1524
|
+
|
1525
|
+
|
1526
|
+
</h3><div class="docstring">
|
1527
|
+
<div class="discussion">
|
1528
|
+
|
1529
|
+
<p>Get supported formats across all plugins</p>
|
1530
|
+
|
1531
|
+
|
1532
|
+
</div>
|
1533
|
+
</div>
|
1534
|
+
<div class="tags">
|
1535
|
+
|
1536
|
+
<p class="tag_title">Returns:</p>
|
1537
|
+
<ul class="return">
|
1538
|
+
|
1539
|
+
<li>
|
1540
|
+
|
1541
|
+
|
1542
|
+
<span class='type'>(<tt>Array<String></tt>)</span>
|
1543
|
+
|
1544
|
+
|
1545
|
+
|
1546
|
+
—
|
1547
|
+
<div class='inline'>
|
1548
|
+
<p>Array of supported format names</p>
|
1549
|
+
</div>
|
1550
|
+
|
1551
|
+
</li>
|
1552
|
+
|
1553
|
+
</ul>
|
1554
|
+
|
1555
|
+
</div><table class="source_code">
|
1556
|
+
<tr>
|
1557
|
+
<td>
|
1558
|
+
<pre class="lines">
|
1559
|
+
|
1560
|
+
|
1561
|
+
157
|
1562
|
+
158
|
1563
|
+
159</pre>
|
1564
|
+
</td>
|
1565
|
+
<td>
|
1566
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/telemetry/plugin_registry.rb', line 157</span>
|
1567
|
+
|
1568
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_supported_formats'>supported_formats</span>
|
1569
|
+
<span class='ivar'>@formats</span><span class='period'>.</span><span class='id identifier rubyid_keys'>keys</span><span class='period'>.</span><span class='id identifier rubyid_sort'>sort</span>
|
1570
|
+
<span class='kw'>end</span></pre>
|
1571
|
+
</td>
|
1572
|
+
</tr>
|
1573
|
+
</table>
|
1574
|
+
</div>
|
1575
|
+
|
1576
|
+
<div class="method_details ">
|
1577
|
+
<h3 class="signature " id="supports_format?-instance_method">
|
1578
|
+
|
1579
|
+
#<strong>supports_format?</strong>(format) ⇒ <tt>Boolean</tt>
|
1580
|
+
|
1581
|
+
|
1582
|
+
|
1583
|
+
|
1584
|
+
|
1585
|
+
</h3><div class="docstring">
|
1586
|
+
<div class="discussion">
|
1587
|
+
|
1588
|
+
<p>Check if a format is supported by any plugin</p>
|
1589
|
+
|
1590
|
+
|
1591
|
+
</div>
|
1592
|
+
</div>
|
1593
|
+
<div class="tags">
|
1594
|
+
<p class="tag_title">Parameters:</p>
|
1595
|
+
<ul class="param">
|
1596
|
+
|
1597
|
+
<li>
|
1598
|
+
|
1599
|
+
<span class='name'>format</span>
|
1600
|
+
|
1601
|
+
|
1602
|
+
<span class='type'>(<tt>String</tt>, <tt>Symbol</tt>)</span>
|
1603
|
+
|
1604
|
+
|
1605
|
+
|
1606
|
+
—
|
1607
|
+
<div class='inline'>
|
1608
|
+
<p>Format to check</p>
|
1609
|
+
</div>
|
1610
|
+
|
1611
|
+
</li>
|
1612
|
+
|
1613
|
+
</ul>
|
1614
|
+
|
1615
|
+
<p class="tag_title">Returns:</p>
|
1616
|
+
<ul class="return">
|
1617
|
+
|
1618
|
+
<li>
|
1619
|
+
|
1620
|
+
|
1621
|
+
<span class='type'>(<tt>Boolean</tt>)</span>
|
1622
|
+
|
1623
|
+
|
1624
|
+
|
1625
|
+
—
|
1626
|
+
<div class='inline'>
|
1627
|
+
<p>True if format is supported</p>
|
1628
|
+
</div>
|
1629
|
+
|
1630
|
+
</li>
|
1631
|
+
|
1632
|
+
</ul>
|
1633
|
+
|
1634
|
+
</div><table class="source_code">
|
1635
|
+
<tr>
|
1636
|
+
<td>
|
1637
|
+
<pre class="lines">
|
1638
|
+
|
1639
|
+
|
1640
|
+
165
|
1641
|
+
166
|
1642
|
+
167</pre>
|
1643
|
+
</td>
|
1644
|
+
<td>
|
1645
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/telemetry/plugin_registry.rb', line 165</span>
|
1646
|
+
|
1647
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_supports_format?'>supports_format?</span><span class='lparen'>(</span><span class='id identifier rubyid_format'>format</span><span class='rparen'>)</span>
|
1648
|
+
<span class='ivar'>@formats</span><span class='period'>.</span><span class='id identifier rubyid_key?'>key?</span><span class='lparen'>(</span><span class='id identifier rubyid_format'>format</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='period'>.</span><span class='id identifier rubyid_downcase'>downcase</span><span class='rparen'>)</span>
|
1649
|
+
<span class='kw'>end</span></pre>
|
1650
|
+
</td>
|
1651
|
+
</tr>
|
1652
|
+
</table>
|
1653
|
+
</div>
|
1654
|
+
|
1655
|
+
<div class="method_details ">
|
1656
|
+
<h3 class="signature " id="unregister-instance_method">
|
1657
|
+
|
1658
|
+
#<strong>unregister</strong>(name) ⇒ <tt>Boolean</tt>
|
1659
|
+
|
1660
|
+
|
1661
|
+
|
1662
|
+
|
1663
|
+
|
1664
|
+
</h3><div class="docstring">
|
1665
|
+
<div class="discussion">
|
1666
|
+
|
1667
|
+
<p>Unregister a plugin</p>
|
1668
|
+
|
1669
|
+
|
1670
|
+
</div>
|
1671
|
+
</div>
|
1672
|
+
<div class="tags">
|
1673
|
+
<p class="tag_title">Parameters:</p>
|
1674
|
+
<ul class="param">
|
1675
|
+
|
1676
|
+
<li>
|
1677
|
+
|
1678
|
+
<span class='name'>name</span>
|
1679
|
+
|
1680
|
+
|
1681
|
+
<span class='type'>(<tt>String</tt>, <tt>Symbol</tt>)</span>
|
1682
|
+
|
1683
|
+
|
1684
|
+
|
1685
|
+
—
|
1686
|
+
<div class='inline'>
|
1687
|
+
<p>Plugin identifier</p>
|
1688
|
+
</div>
|
1689
|
+
|
1690
|
+
</li>
|
1691
|
+
|
1692
|
+
</ul>
|
1693
|
+
|
1694
|
+
<p class="tag_title">Returns:</p>
|
1695
|
+
<ul class="return">
|
1696
|
+
|
1697
|
+
<li>
|
1698
|
+
|
1699
|
+
|
1700
|
+
<span class='type'>(<tt>Boolean</tt>)</span>
|
1701
|
+
|
1702
|
+
|
1703
|
+
|
1704
|
+
—
|
1705
|
+
<div class='inline'>
|
1706
|
+
<p>True if unregistered successfully</p>
|
1707
|
+
</div>
|
1708
|
+
|
1709
|
+
</li>
|
1710
|
+
|
1711
|
+
</ul>
|
1712
|
+
|
1713
|
+
</div><table class="source_code">
|
1714
|
+
<tr>
|
1715
|
+
<td>
|
1716
|
+
<pre class="lines">
|
1717
|
+
|
1718
|
+
|
1719
|
+
94
|
1720
|
+
95
|
1721
|
+
96
|
1722
|
+
97
|
1723
|
+
98
|
1724
|
+
99
|
1725
|
+
100
|
1726
|
+
101
|
1727
|
+
102
|
1728
|
+
103
|
1729
|
+
104
|
1730
|
+
105
|
1731
|
+
106
|
1732
|
+
107
|
1733
|
+
108
|
1734
|
+
109
|
1735
|
+
110</pre>
|
1736
|
+
</td>
|
1737
|
+
<td>
|
1738
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/telemetry/plugin_registry.rb', line 94</span>
|
1739
|
+
|
1740
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_unregister'>unregister</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span>
|
1741
|
+
<span class='id identifier rubyid_name'>name</span> <span class='op'>=</span> <span class='id identifier rubyid_name'>name</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
|
1742
|
+
|
1743
|
+
<span class='id identifier rubyid_thread_safe_operation'>thread_safe_operation</span> <span class='kw'>do</span>
|
1744
|
+
<span class='id identifier rubyid_plugin_config'>plugin_config</span> <span class='op'>=</span> <span class='ivar'>@plugins</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span>
|
1745
|
+
|
1746
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_plugin_config'>plugin_config</span>
|
1747
|
+
<span class='comment'># Remove from format index
|
1748
|
+
</span> <span class='id identifier rubyid_unregister_format_mappings'>unregister_format_mappings</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='comma'>,</span> <span class='id identifier rubyid_plugin_config'>plugin_config</span><span class='lbracket'>[</span><span class='symbol'>:supported_formats</span><span class='rbracket'>]</span><span class='rparen'>)</span>
|
1749
|
+
|
1750
|
+
<span class='id identifier rubyid_log_unregistration'>log_unregistration</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>telemetry_plugin</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='id identifier rubyid_name'>name</span><span class='comma'>,</span> <span class='id identifier rubyid_plugin_config'>plugin_config</span><span class='lbracket'>[</span><span class='symbol'>:instance</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='rparen'>)</span>
|
1751
|
+
<span class='kw'>true</span>
|
1752
|
+
<span class='kw'>else</span>
|
1753
|
+
<span class='kw'>false</span>
|
1754
|
+
<span class='kw'>end</span>
|
1755
|
+
<span class='kw'>end</span>
|
1756
|
+
<span class='kw'>end</span></pre>
|
1757
|
+
</td>
|
1758
|
+
</tr>
|
1759
|
+
</table>
|
1760
|
+
</div>
|
1761
|
+
|
1762
|
+
</div>
|
1763
|
+
|
1764
|
+
</div>
|
1765
|
+
|
1766
|
+
<div id="footer">
|
1767
|
+
Generated on Tue Jul 1 16:47:38 2025 by
|
1768
|
+
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
1769
|
+
0.9.37 (ruby-3.2.4).
|
1770
|
+
</div>
|
1771
|
+
|
1772
|
+
</div>
|
1773
|
+
</body>
|
1774
|
+
</html>
|