Sha256: b601e9b6f79cfa9a15b4d2384ef90b98f261268a55f3b0103de484f035bc9b7c
Contents?: true
Size: 1.03 KB
Versions: 1
Compression:
Stored size: 1.03 KB
Contents
require 'registrable/version' # Allow a class to hold a registry of instances module Registrable # All registered instances # # @return [Hash] def registry @registry ||= {}.freeze end # Register an instance # # @param [Object] identifier # @param [Array] arguments The arguments to pass to #initialize # @param [Proc] block The block to pass to #initialize # @return [Object] The instance def register(identifier, *arguments, &block) @registry = @registry ? registry.dup : {} instance = new(*arguments, &block) @registry[identifier] = instance @registry.freeze instance end # Unregister an instance # # @param [Object] identifier # @return [Object] The instance def unregister(identifier) @registry = @registry ? registry.dup : {} instance = @registry.delete(identifier) @registry.freeze instance end # Get whether an instance is registered # # @param [Object] identifier # @return [Boolean] def registered?(identifier) registry.key?(identifier) end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
registrable-0.1.0 | lib/registrable.rb |