Sha256: fd949320678c2d5f5984caa5eef91fac3ca6429664e3418e115fb158c3f8c5a6

Contents?: true

Size: 672 Bytes

Versions: 9

Compression:

Stored size: 672 Bytes

Contents

# frozen_string_literal: true

module Shipit
  module ProvisioningHandler
    class << self
      def registry
        @registry ||= reset_registry!
      end

      def reset_registry!
        @registry = {}
      end

      def register(handler_class)
        registry[handler_class.to_s] = handler_class
      end

      def fetch(name)
        return default if name.blank?
        registry.fetch(name) { ProvisioningHandler::UnregisteredProvisioningHandler }
      end

      def default=(handler_class)
        registry[:default] = handler_class
      end

      def default
        registry.fetch(:default) { ProvisioningHandler::Base }
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
shipit-engine-0.39.0 app/models/shipit/provisioning_handler.rb
shipit-engine-0.38.0 app/models/shipit/provisioning_handler.rb
shipit-engine-0.37.0 app/models/shipit/provisioning_handler.rb
shipit-engine-0.36.1 app/models/shipit/provisioning_handler.rb
shipit-engine-0.36.0 app/models/shipit/provisioning_handler.rb
shipit-engine-0.35.1 app/models/shipit/provisioning_handler.rb
shipit-engine-0.35.0 app/models/shipit/provisioning_handler.rb
shipit-engine-0.34.0 app/models/shipit/provisioning_handler.rb
shipit-engine-0.33.0 app/models/shipit/provisioning_handler.rb