漂亮的Ruby的require语句?

时间:2009-10-07 17:07:26

标签: ruby-on-rails ruby require

我一直认为这种丑陋的东西:

require File.join(File.dirname(__FILE__), 'hirb/config')

是否有一个更漂亮的替代方案,也许是为Rails写的一个?

require_relative 'hirb/config'
require_relative '../another/file'

3 个答案:

答案 0 :(得分:7)

最好的方法可能是准备你的负载路径,所以你不需要做所有这些。主模块或init文件引入其他几个位置并不是特别困难。

这也受RUBYLIB环境变量以及-I命令行参数的影响。

$: << File.expand_path(File.join('..', 'lib'), File.dirname(__FILE__))

答案 1 :(得分:6)

你可以做到

Dir.chdir(File.dirname(__FILE__) do
  require 'hirb/config'
  require '../another/file'
end

当然,这是否更好才是品味问题。

答案 2 :(得分:4)

你可以extend the kernel

module Kernel
    def require_relative(path)
      require File.join(File.dirname(caller[0]), path.to_str)
    end
end