Dirge

DEPRECATED

This library is no longer maintained. Everything it does and so much more is now provided by github.com/joshbuddy/callsite. To get back Dirge’s specific functionality, you can do the following

gem install 'callsite'

And in ruby

require 'dirge'

Now everything below will work as-is!

Usage

require 'dirge'
require_relative '../to_my_file'

Or, the much simpler notation

require ~'../to_my_file'

annnd.

class MyAwesomeClass
  autoload_relative :MyConstant, 'my_awesome_class/my_constant'
end

Again, this could be

class MyAwesomeClass
  autoload :MyConstant, ~'my_awesome_class/my_constant'
end

All of this is powered by the new function:

__DIR__

which takes a single line off of Kernel.caller and give you back the relative path. Calling __DIR__(caller.first) for instance, will give you the relative path to whoever called you.

There is also a more explicit, and probably, more readable version.

File.relative(path)

This will convert your path into a relative directory from wherever you are.

require_relative 'to/my/file'

and

require File.relative('to/my/file')

should be identical.