Можно ли загрузить файл без запуска кода?
Нет, все в файле ruby является исполняемым кодом, включая определения классов и методов (вы можете увидеть это, когда попытаетесь определить метод внутри оператора if, например, который работает просто отлично). Поэтому, если вы не выполняете ничего в файле, ничего не будет определено.
Однако вы можете сказать ruby, что определенный код должен выполняться только в том случае, если файл запускается напрямую, а не в том случае, если это требуется. Для этого просто поместите рассматриваемый код внутри блока if __FILE__ == $0
. Так что для вашего примера это будет работать:
file.rb
def method
puts "This won't be outputted."
end
if __FILE__ == $0
puts "This will not be outputted."
end
main.rb
require "./file"