Sha256: 15cdb21e8c8a6292b4c12b0116db783a93c938b1a4eb3411b397e3a16a93f4cc
Contents?: true
Size: 895 Bytes
Versions: 3
Compression:
Stored size: 895 Bytes
Contents
module Cl class << self def []=(key, object) registry[key.to_sym] = object end def [](key) key && registry[key.to_sym] end def cmds registry.values end def registry @registry ||= {} end end module Registry class << self def included(const) const.send(:extend, ClassMethods) const.send(:include, InstanceMethods) end end module ClassMethods attr_reader :registry_key def [](key) Cl[key.to_sym] end def register(key) Cl[key] = self @registry_key = key.to_sym end def underscore(string) string.gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2'). gsub(/([a-z\d])([A-Z])/,'\1_\2'). downcase end end module InstanceMethods def registry_key self.class.registry_key end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
cl-0.0.4 | lib/cl/registry.rb |
cl-0.0.3 | lib/cl/registry.rb |
cl-0.0.2 | lib/cl/registry.rb |