Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Automatically finds, loads and reloads classes
Ruby
branch: master
Failed to load latest commit information.
lib tmp
spec tmp
.gitignore upd rake
Rakefile minor upd
readme.md add after callback

readme.md

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.

Something went wrong with that request. Please try again.