Как ссылаться на метод в другом файле кода Ruby?
У меня есть файл кода Ruby (somelogic.rb), который содержит несколько методов и классов, расположенных в файле say/home/user/code. Теперь я пишу еще один класс в том же каталоге и хотел бы ссылаться на методы и классы в somelogic.rb. Как мне это сделать? Я очень признателен за любые данные.
Ответы
Ответ 1
Если вы используете Ruby 1.9 или новее, это самый простой способ сделать это:
require_relative 'somelogic'
Если вы хотите, чтобы ваш код работал в 1,9 и более старых версиях Ruby, вы должны сделать это вместо:
require File.join File.dirname(__FILE__), 'somelogic'
Какую строку вы выберете, вы должны поместить ее в верхнюю часть своего рубинового файла. Тогда в вашу программу будут доступны любые классы, модули или глобальные переменные, определенные в somelogic.rb.
Ответ 2
Вот сценарий:
/home/user/code/somelogic.rb
class MyMath
def self.sin(number)
...
end
end
Вы хотите использовать методы sin
в другом файле mylogic.rb
.
В зависимости от версии ruby сделайте следующее:
Ruby 1.8.x
require "somelogic"
class OtherThings
def some_method
MyMath.sin(42)
end
end
Шаблон использования для всех версий ruby одинаковый, но оператор require может отличаться.
Ruby 1.9.x
require_relative "somelogic"
или вариации
Ruby 1.9.x
require "./somelogic"
Первая вариация работает все время, вторая - только в том случае, если вы вызываете ruby mylogic.rb
в каталоге, где расположены mylogic.rb
и somelogic.rb
.
Если вы хотите загрузить файлы из этого каталога из начальной точки, расположенной в другом каталоге, вы должны использовать:
Ruby 1.8.x and Ruby 1.9.x
$: << File.dirname(__FILE__)
Это расширяет путь загрузки Ruby. Он читает (относительный) путь __FILE__
, получает его каталог и добавляет (абсолютный) путь этого каталога к вашему пути загрузки. Поэтому при выполнении поиска require
файлы будут найдены.
Ответ 3
Отметьте ключевое слово Ruby require
Ответ 4
Во втором файле (скажем, otherlogic.rb) в первой строке введите "/home/user/code/somelogic.rb".