Что лучше всего, если я хочу требовать
относительного файла в Ruby и . Я хочу, чтобы он работал и в 1.8.x, и в> = 1.9 .2?
Я вижу несколько вариантов:
$ LOAD_PATH << '.'
и забудьте все $ LOAD_PATH << Имя_файла (__ FILE__)
require './path/to/file'[1232 providedcheck if RUBY_VERSION
<1.9.2, затем определите require_relative
как require
, используйте require_relative
везде, где это необходимо, потом
require_relative
, если это так, попробуйте продолжить, как в предыдущем случае require File .join (File.dirname (__ FILE__), 'path / to / file')
- увы, они не делают 't, похоже, полностью работает в Ruby 1.9, потому что, например: $ cat caller.rb
требуется File.join (File.dirname (__ FILE__), 'путь / к / файлу')
$ cat путь / к / file.rb
ставит "Некоторое тестирование"
$ рубиновый абонент
Некоторое тестирование
$ pwd
/ tmp
$ рубин / tmp / вызывающий
Некоторое тестирование
$ ruby tmp / вызывающий
tmp / caller.rb: 1: in 'require': такого файла для загрузки нет - tmp / path / to / file (LoadError)
- Фактически, я уже упомянул большинство рассматриваемых вариантов. Мне нужно обоснование , т.е. , почему это лучшая практика, каковы ее плюсы и минусы и почему ее следует выбирать среди других.