我想加載一個主題我正在建立一個CMS ..我正在考慮有一個名爲name_of_theme.themespec的文件..我會加載這個..類似於Bundler與gemspecs會費..我在想,這個文件中我會是這樣的:如何從紅寶石加載中獲取返回值?
Theme.new do |t|
t.value = 'hi'
end
我想加載腳本..如果我只是搶了文件的內容和eval後,他們捕捉到這個主題的實例?這導致我後續的問題是加載文件..和閱讀內容和評估之間有任何區別..我知道'eval'通常被認爲是毀滅的先兆...也許這個用例好嗎?
跟進基於選擇的答案
..那爲什麼我得到:
evaluationContext = Fiber.new {$SAFE = 4; Fiber.yield binding}.resume
=> #<Binding:0x007f85fc8a0fc8>
a = evaluationContext.eval('puts $SAFE')
=> 0
感謝@Linuxios,你給了我足夠的信息,到這裏開始,我覺得夠了概念我不知道,以瞭解更多的這個領域..我沒有意識到線程的安全級別..欣賞它。 – Inc1982
@ Inc1982:當然。如果您有任何問題,請留下評論。這是一個很難的話題,而我實際上在嘗試編寫沙箱代碼時發現了這一點。 – Linuxios
我根據你的回答添加了一個跟進問題..想知道你是否可以看看它。爲什麼$ SAFE的提示是說0,儘管從Fibre的綁定上下文執行? – Inc1982