Ответ 1
Если это так, потребовалось бы место драгоценного камня в глобальное пространство имен как одно и то же требуется в верхней части файла?
Да. require
не имеет области видимости, а load
делает.
Кто-нибудь знает достаточно о Ruby require
, чтобы сказать мне, является ли следующий синтаксис действительным:
class Something
def initialize(mode)
case mode
when :one then require 'some_gem'
when :two then require 'other_gem'
end
end
end
s = Something.new
Если да, то require
поместите камень в глобальное пространство имен, как это было бы в верхней части файла?
Если это так, потребовалось бы место драгоценного камня в глобальное пространство имен как одно и то же требуется в верхней части файла?
Да. require
не имеет области видимости, а load
делает.
Да, это абсолютно корректно и работает как ожидалось, потому что требование не ограничено
Требовать вытягивания кода из указанного файла и попытки использовать его на месте - это может означать, что это неразумно, но да, это можно сделать.
Локальная область метода не будет затронута, и любое определение класса и т.д. будет в ожидаемой области