require ‘logger’ require ‘ostruct’
ENV ||= File.expand_path(‘../../Gemfile’, __FILE__) require ‘bundler/setup’ if File.exist?(ENV)
module <%= project.camelize %>
module_function def root @root ||= ::File.expand_path('../..', __FILE__) end def initialize! load_path 'config/initializers' load_path 'app' execute_after_initialize_blocks end def after_initialize(&block) @after_initialize_blocks ||= [] @after_initialize_blocks << block end def load_tasks load_path 'lib/tasks', extension: 'rake', type: :load end def config @config ||= OpenStruct.new end def logger config.logger ||= Logger.new(STDOUT) end def logger=(logger) config.logger = logger end def execute_after_initialize_blocks return if @after_initialize_blocks.nil? @after_initialize_blocks.each(&:call) @after_initialize_blocks.clear end def load_path(path, extension: 'rb', type: :require) full_path = ::File.join(root, path, '**', "*.#{extension}") files = ::Dir[full_path].sort files.each do |file| if type == :require require(file) else load(file) end end end
end