Sha256: 2f95e334d8fdedd7e12ba34fdd255a14bb10fb950a54f0edc9c7dcb6aa6f8d5e

Contents?: true

Size: 925 Bytes

Versions: 54

Compression:

Stored size: 925 Bytes

Contents

module Krikri

  ##
  # Provide a registry of defined items that can be looked up by a token
  # symbol.
  #
  # Expected to be extended as needed within other modules.
  # @see Krikri::Harvester::Registry
  # @see Krikri::Mapper::Registry
  #
  class Registry
    include Singleton
    include Enumerable

    attr_reader :items
    delegate :each, :[], :[]=, to: :items

    def initialize
      @items = {}
    end

    class << self

      def get(name)
        raise "#{name} is not registered." unless registered? name
        instance[name]
      end

      def register(name, item)
        raise "#{name} is already registered." if registered? name
        register!(name, item)
      end

      def register!(name, item)
        instance[name] = item
      end

      def registered?(name)
        instance.items.keys.include? name
      end

      def keys
        instance.items.keys
      end

    end

  end
end

Version data entries

54 entries across 54 versions & 1 rubygems

Version Path
krikri-0.15.2 lib/krikri/registry.rb
krikri-0.15.1 lib/krikri/registry.rb
krikri-0.15.0 lib/krikri/registry.rb
krikri-0.14.0 lib/krikri/registry.rb
krikri-0.13.2 lib/krikri/registry.rb
krikri-0.13.1 lib/krikri/registry.rb
krikri-0.13.0 lib/krikri/registry.rb
krikri-0.12.4 lib/krikri/registry.rb
krikri-0.12.3 lib/krikri/registry.rb
krikri-0.12.1 lib/krikri/registry.rb
krikri-0.12.0 lib/krikri/registry.rb
krikri-0.12.0.pre.rc.1 lib/krikri/registry.rb
krikri-0.11.2 lib/krikri/registry.rb
krikri-0.11.1 lib/krikri/registry.rb
krikri-0.11.0 lib/krikri/registry.rb
krikri-0.10.1 lib/krikri/registry.rb
krikri-0.10.0 lib/krikri/registry.rb
krikri-0.9.0 lib/krikri/registry.rb
krikri-0.8.9 lib/krikri/registry.rb
krikri-0.8.8 lib/krikri/registry.rb