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