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