Sha256: 1fe1d1cad0c9933cf0a84f48c434493e39de31b178ad34a91f9c4c3dcfa11dba
Contents?: true
Size: 750 Bytes
Versions: 6
Compression:
Stored size: 750 Bytes
Contents
module Xing module Services module ClassRegistry module ClassMethods def registry @registry ||= {} end def register(name, klass=self) raise "Invalid registration: #{name} exists" if registrar.registry.has_key?(name) && registrar.registry[name] != klass registrar.registry[name] = klass end def registry_key(klass) registrar.registry.select{ |key, val| val == klass}.keys.first end def registry_get(name) registrar.registry.fetch(name) end end def self.included(base) base.define_singleton_method(:registrar) do base end base.extend(ClassMethods) end end end end
Version data entries
6 entries across 6 versions & 1 rubygems