first-try-software/manufacturable

View on GitHub
lib/manufacturable/simple_registrar.rb

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
module Manufacturable
  class SimpleRegistrar
    class << self
      def register(key, value)
        self.new(registry, key).register(value)
      end

      def entries(*keys)
        registry.slice(*keys)
      end

      private

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

    def initialize(registry, key)
      @registry, @key = registry, key
    end

    def register(value)
      @registry[registry_key] = value
    end

    private

    def registry_key
      @registry_key ||= (@key.respond_to?(:to_sym) && @key.to_sym) || @key
    end
  end
end