module Stockboy::Registry

Holds a collection of registered classes for convenient reference by symbolic name

Public Class Methods

extended(base) click to toggle source
# File lib/stockboy/registry.rb, line 8
def self.extended(base)
  base.class_eval do
    @registry = {}
  end
end

Public Instance Methods

[](key)
Alias for: find
all() click to toggle source

List all named classes in the registry

@return [Hash]

# File lib/stockboy/registry.rb, line 37
def all
  @registry
end
build(key, options, block) click to toggle source
# File lib/stockboy/registry.rb, line 41
def build(key, options, block)
  options = [options] unless options.is_a? Array
  key = find(key) if key.is_a? Symbol
  key = key.new(*options, &block) if key.is_a? Class
  key
end
find(key) click to toggle source

Look up a class and return it by symbolic name

@param [Symbol] key @return [Class]

# File lib/stockboy/registry.rb, line 28
def find(key)
  @registry[key]
end
Also aliased as: []
register(key, provider) click to toggle source

Register a class under a convenient symbolic name

@param [Symbol] key Symbolic name of the class @param [Class] provider Class to be returned when requested

# File lib/stockboy/registry.rb, line 19
def register(key, provider)
  @registry[key] = provider
end