Skip to content

al6x/class_loader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Automatically finds, loads and reloads classes

Suppose there's following directory structure:

/lib
  /some_class.rb        # class SomeClass; end
  /some_namespace
    /another_class.rb   # class SomeNamespace:AnotherClass; end
  /some_namespace.rb    # module SomeNamespace; end

All these classes will be loaded automatically:

require 'class_loader'

SomeClass
SomeNamespace::AnotherClass

No need for require, autoload and code like this:

require 'some_class'
require 'some_namespace'
require 'some_namespace/another_class'

autoload :SomeClass,      'some_class'
autoload :SomeNamespace,  'some_namespace'
module SomeNamespace
  autoload :AnotherClass, 'some_namespace/another_class'
end

Watching and reloading changed classes:

ClassLoader.watch 'my_app/lib'

Preload classes eagerly:

ClassLoader.preload 'my_app/lib'

Execute callbacks after loading class:

ClassLoader.after 'SomeClass' do |klass|
  klass.include SomeModule
end

It's also very small, sources are about 150 lines (and third of it are comments).

Installation

$ gem install class_loader

License

Copyright (c) Alexey Petrushin http://petrush.in, released under the MIT license.

About

Automatically finds, loads and reloads classes

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages