Sha256: c67975b676e30b0f010c1f3140f8fcc74e1a5115c7d1394c804d36014bbe1952

Contents?: true

Size: 1.52 KB

Versions: 7

Compression:

Stored size: 1.52 KB

Contents

# frozen_string_literal: true

module Decidim
  module Verifications
    autoload :Adapter, "decidim/verifications/adapter"
    autoload :Registry, "decidim/verifications/registry"

    #
    # Provides direct access to the verification registry
    #
    class << self
      delegate :clear_workflows, to: :registry

      #
      # Restores registered verification workflows to the array being passed in
      #
      # Useful for testing.
      #
      def reset_workflows(*manifests)
        registry.reset_workflows(*manifests)
      end

      #
      # Registers a new verification workflow using the workflow manifest API
      #
      def register_workflow(name, &)
        registry.register_workflow(name, &)
      end

      #
      # Unregisters a verification workflow using the workflow manifest API
      #
      def unregister_workflow(name)
        manifest = find_workflow_manifest(name)

        registry.unregister_workflow(manifest)
      end

      #
      # Finds a verification workflow by name
      #
      def find_workflow_manifest(name)
        workflows.find { |workflow| workflow.name == name.to_s }
      end

      #
      # Collection of registered verification workflows
      #
      def workflows
        registry.workflow_collection
      end

      #
      # Collection of registered verification workflows having an admin engine
      #
      def admin_workflows
        workflows.select(&:admin_engine)
      end

      private

      def registry
        @registry ||= Registry.new
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
decidim-verifications-0.28.4 lib/decidim/verifications/workflows.rb
decidim-verifications-0.28.3 lib/decidim/verifications/workflows.rb
decidim-verifications-0.28.2 lib/decidim/verifications/workflows.rb
decidim-verifications-0.28.1 lib/decidim/verifications/workflows.rb
decidim-verifications-0.28.0 lib/decidim/verifications/workflows.rb
decidim-verifications-0.28.0.rc5 lib/decidim/verifications/workflows.rb
decidim-verifications-0.28.0.rc4 lib/decidim/verifications/workflows.rb