Sha256: eb8d5a0062ca0257df652278b18862146e97049a47ed7f606ceb937eb97b4d41

Contents?: true

Size: 1.5 KB

Versions: 6

Compression:

Stored size: 1.5 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(*)
        registry.reset_workflows(*)
      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

6 entries across 6 versions & 1 rubygems

Version Path
decidim-verifications-0.29.1 lib/decidim/verifications/workflows.rb
decidim-verifications-0.29.0 lib/decidim/verifications/workflows.rb
decidim-verifications-0.29.0.rc4 lib/decidim/verifications/workflows.rb
decidim-verifications-0.29.0.rc3 lib/decidim/verifications/workflows.rb
decidim-verifications-0.29.0.rc2 lib/decidim/verifications/workflows.rb
decidim-verifications-0.29.0.rc1 lib/decidim/verifications/workflows.rb