module Gem::Release::Registry::ClassMethods

def [](key)

def [](key)
  registry[key.to_sym]
end

def register(key)

def register(key)
  registry[key] = self
  @registry_key = key.to_sym
end

def registry

def registry
  @registry ||= superclass.respond_to?(:registry) ? superclass.registry : Registry.new
end

def underscore(string)

def underscore(string)
  string.gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
  gsub(/([a-z\d])([A-Z])/,'\1_\2').
  downcase
end