I've always thought this sort of thing ugly:
require File.join(File.dirname(__FILE__), 'hirb/config')
Is there a prettier alternative, maybe one written for Rails?
require_relative 'hirb/config'
require_relative '../another/file'
I've always thought this sort of thing ugly:
require File.join(File.dirname(__FILE__), 'hirb/config')
Is there a prettier alternative, maybe one written for Rails?
require_relative 'hirb/config'
require_relative '../another/file'
You could do
Dir.chdir(File.dirname(__FILE__) do
require 'hirb/config'
require '../another/file'
end
Whether or not that's better is a matter of taste, of course.
The best approach is probably preparing your load path so you don't need to do all this. It's not especially difficult for your main module or init file to introduce a few other locations.
This is also affected by the RUBYLIB environment variable, as well as the -I command line parameter.
$: << File.expand_path(File.join('..', 'lib'), File.dirname(__FILE__))
You can extend the kernel.
module Kernel
def require_relative(path)
require File.join(File.dirname(caller[0]), path.to_str)
end
end