Красивая версия Ruby'а, требующего утверждения? - PullRequest
4 голосов
/ 07 октября 2009

Я всегда думал, что такие уродливые вещи:

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

Есть ли более симпатичная альтернатива, может быть, написанная для Rails?

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

Ответы [ 3 ]

7 голосов
/ 07 октября 2009

Наилучшим подходом, вероятно, является подготовка вашего пути загрузки, поэтому вам не нужно делать все это. Для вашего основного модуля или файла инициализации не составляет особого труда представить несколько других мест.

На это также влияют переменная среды RUBYLIB и параметр командной строки -I.

$: << File.expand_path(File.join('..', 'lib'), File.dirname(__FILE__))
6 голосов
/ 07 октября 2009

Вы могли бы сделать

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

Конечно, лучше это вопрос вкуса.

4 голосов
/ 08 октября 2009

Вы можете расширить ядро ​​.

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