module Cargobull::Initialize
Public Class Methods
dir(*args)
click to toggle source
# File lib/cargobull/initialize.rb, line 10 def self.dir(*args) sanitized_args = args.map{ |d| sanitize_file_name(d).sub(/\/$/, '') }. select{ |d| File.directory?(d) } sanitized_args.each do |dir| ruby_files = Dir["#{dir}/**/*.rb"] @file_map = ruby_files.each do |f| full_klass = f.sub(/^#{dir}\/?/, '').sub(/\.rb$/, '').camelize register_file(full_klass, f) end end end
file(klass_str, file_name)
click to toggle source
# File lib/cargobull/initialize.rb, line 23 def self.file(klass_str, file_name) file_name = sanitize_file_name(file_name) return unless File.file?(file_name) register_file(klass_str, file_name) end
init_all()
click to toggle source
# File lib/cargobull/initialize.rb, line 43 def self.init_all @file_map.each{ |file| require file } end
register_file(full_klass, fname)
click to toggle source
# File lib/cargobull/initialize.rb, line 29 def self.register_file(full_klass, fname) *mods, klass_name = full_klass.split('::') mod = mods.reduce(Object) do |acc, mod_str| unless acc.const_defined?(mod_str) acc.const_set(mod_str, Module.new) end next acc.const_get(mod_str) end mod.autoload(klass_name, fname) @file_map << fname Service.register(full_klass) end
sanitize_file_name(file_name)
click to toggle source
# File lib/cargobull/initialize.rb, line 6 def self.sanitize_file_name(file_name) "./#{File.basename(file_name)}" end