Module: AwesomeLoader

Defined in:
lib/awesome_loader/autoloader.rb,
lib/awesome_loader/utils.rb,
lib/awesome_loader/version.rb,
lib/awesome_loader/module_builder.rb

Overview

The module that holds the awesomeness.

Defined Under Namespace

Modules: Utils Classes: Autoloader, ModuleBuilder

Constant Summary collapse

VERSION =

Library version

'1.5.0'.freeze

Class Method Summary collapse

Class Method Details

.autoload(root_depth: Autoloader::DEFAULT_ROOT_DEPTH, root_path: Dir.pwd, root_module: Object, eager_load: false, &block) ⇒ AwesomeLoader::Autoloader

Set up an AwesomeLoader::Autoloader instance.

AwesomeLoader.autoload root_depth: 2 do
paths %w(app routes ** *.rb), root_depth: 1
paths %w(app ** *.rb)
end

Parameters:

  • (defaults to: Autoloader::DEFAULT_ROOT_DEPTH)

    Tells AwesomeLoader to start creating Modules for dirs after this level (default 2)

  • (defaults to: Dir.pwd)

    Path to root of the application (default Dir.pwd)

  • (defaults to: Object)

    Module to load your modules into (default Object). You'll probably always want to keep the default.

  • (defaults to: false)

    Make sure all files get loaded by the time the block finishes (default false)

Returns:



22
23
24
25
26
27
28
29
# File 'lib/awesome_loader/autoloader.rb', line 22

def self.autoload(root_depth: Autoloader::DEFAULT_ROOT_DEPTH, root_path: Dir.pwd, root_module: Object, eager_load: false, &block)
  autoloader = Autoloader.new(root_depth: root_depth, root_path: root_path, root_module: root_module, eager_load: eager_load)
  if block
    autoloader.instance_eval(&block)
    autoloader.finalize!
  end
  autoloader
end