class Manufacturable::Registrar

Constants

ALL_KEY
DEFAULT_KEY

Public Class Methods

get(type, key) click to toggle source
# File lib/manufacturable/registrar.rb, line 13
def get(type, key)
  self.new(registry, type, key).get
end
new(registry, type, key) click to toggle source
# File lib/manufacturable/registrar.rb, line 36
def initialize(registry, type, key)
  @registry, @type, @key = registry, type, key
end
register(type, key, klass) click to toggle source
# File lib/manufacturable/registrar.rb, line 9
def register(type, key, klass)
  self.new(registry, type, key).register(klass)
end
registered_keys(type) click to toggle source
# File lib/manufacturable/registrar.rb, line 21
def registered_keys(type)
  registry[type].keys
end
registered_types() click to toggle source
# File lib/manufacturable/registrar.rb, line 17
def registered_types
  registry.keys
end
reset!() click to toggle source
# File lib/manufacturable/registrar.rb, line 25
def reset!
  registry.clear
end

Private Class Methods

registry() click to toggle source
# File lib/manufacturable/registrar.rb, line 31
def registry
  @registry ||= Hash.new { |h,k| h[k] = Hash.new }
end

Public Instance Methods

get() click to toggle source
# File lib/manufacturable/registrar.rb, line 45
def get
  merged_klasses.empty? ? default_klasses : merged_klasses
end
register(klass) click to toggle source
# File lib/manufacturable/registrar.rb, line 40
def register(klass)
  assign_set if set.nil?
  set.add(klass)
end

Private Instance Methods

all_klasses() click to toggle source
# File lib/manufacturable/registrar.rb, line 71
def all_klasses
  get_for(ALL_KEY)
end
assign_set() click to toggle source
# File lib/manufacturable/registrar.rb, line 55
def assign_set
  @registry[@type][registry_key] = Set.new
end
default_klasses() click to toggle source
# File lib/manufacturable/registrar.rb, line 75
def default_klasses
  get_for(DEFAULT_KEY)
end
get_for(key) click to toggle source
# File lib/manufacturable/registrar.rb, line 79
def get_for(key)
  @registry[@type][key] || Set.new
end
key_klasses() click to toggle source
# File lib/manufacturable/registrar.rb, line 67
def key_klasses
  get_for(registry_key)
end
merged_klasses() click to toggle source
# File lib/manufacturable/registrar.rb, line 63
def merged_klasses
  key_klasses.merge(all_klasses)
end
registry_key() click to toggle source
# File lib/manufacturable/registrar.rb, line 51
def registry_key
  @registry_key ||= (@key.respond_to?(:to_sym) && @key.to_sym) || @key
end
set() click to toggle source
# File lib/manufacturable/registrar.rb, line 59
def set
  @registry[@type][registry_key]
end