动态需要文件?

Roj*_*uck 19 ruby rubygems namespaces dynamic require

有没有人知道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
Run Code Online (Sandbox Code Playgroud)

如果是这样,将requiregem放在全局命名空间中,就像放在文件顶部一样?

Sim*_*tti 16

如果是这样,需要将gem放入全局命名空间中,因为文件顶部的需要是吗?

是.require虽然没有范围load.


Chr*_*ley 5

是的,它完全有效,并按预期工作,因为要求不是范围

需要从指定文件中提取代码并尝试就地使用它 - 这可能意味着这样做是不明智的,但是可以这样做.

本地方法范围不受影响,任何类定义等都在预期范围内