class LogCabin::BaseCollection

Basic collection object for subclassing

Public Class Methods

new(_) click to toggle source
# File lib/logcabin.rb, line 21
def initialize(_)
  @modules = {}
end

Private Instance Methods

cache(name) { || ... } click to toggle source
# File lib/logcabin.rb, line 27
def cache(name)
  @modules[name] ||= yield
end
load_class_from_module(mod_name, name) click to toggle source
# File lib/logcabin.rb, line 31
def load_class_from_module(mod_name, name)
  require mod_name
  class_name = parse_class_name(name)
  LogCabin::Modules.const_get(class_name)
rescue LoadError
  raise("Error while loading #{mod_name} / #{class_name}")
end
parse_class_name(name) click to toggle source

Convert file name to class name Borrowed with love from Homebrew: git.io/vEoDg

# File lib/logcabin.rb, line 42
def parse_class_name(name)
  class_name = name.to_s.capitalize
  class_name.gsub(/[-_.\s]([a-zA-Z0-9])/) { Regexp.last_match[1].upcase }
end