我想为我正在构建的 cms 加载一个主题.. 我正在考虑有一个名为 name_of_theme.themespec 的文件.. 我会加载这个.. 类似于 Bundler 对 gemspecs 的收费.. 我在想这个里面文件我会有类似的东西:
Theme.new do |t|
t.value = 'hi'
end
我想在加载脚本后捕获这个主题实例。我应该抓住文件的内容并评估它们吗?这导致我提出一个后续问题,加载文件..和读取内容和评估..我知道'eval'通常被认为是破坏的预兆......也许这个用例好吗?
跟进
根据选择的答案..为什么我会得到:
evaluationContext = Fiber.new {$SAFE = 4; Fiber.yield binding}.resume
=> #<Binding:0x007f85fc8a0fc8>
a = evaluationContext.eval('puts $SAFE')
=> 0