当您想使用模块A
作为命名空间来处理整个文件时,您可以放置:
include A
以及随后的内容将在A
之内。有没有办法与班级B
做类似的事情?
把:
class B
在文件的开头,并在文件的所有内容之后,用
结束文件end
看起来不优雅,是错误的原因。我正在寻找一种不需要像end
这样的结束命令的方式。
修改我上面关于include A
的说明似乎有误。即使这样做,环境仍然是主要对象。我想要的是让它成为可能,如果我只是做
def foo; ... end
没有任何明确的嵌套,那么它将被定义为A
或B
针对相应案例的方法。
答案 0 :(得分:0)
据我所知,没有这样的指示。
虽然如果你的文件将由另一个脚本“执行”,你可以做的是:
档案file.rb
包含
puts self
档案main.rb
包含
class B
eval(File.read('file.rb'))
end
如果你想让它更透明,你甚至可以提供自己的需求实现,它隐藏了所有这些魔力。