我怎麼可以這樣做:紅寶石哈希樹塊
class MyClass
tile 'some title'
collection do
node1 'node1'
node2 'node2'
another_collection do
node1 'node1'
node2 'node2'
end
end
end_node 'some text'
end
及以下生產:
MyClass.build #=>{:title=>'some title',:collection=>{:node1=>'node1',:node2=>'node2',:another_collection=>{:node1=>'node1',:node2=>'node2'}},:end_node=>'some text'}
我試圖是進行簡單的DSL和生成哈希樹。我確信可以通過method_missing和instance_eval完成,但我現在不會如何構建該邏輯。
感謝您的幫助
你嘗試過這麼遠嗎?首先,嘗試僅處理一級方法調用,即首先使用無塊的封面使用。 –
Mladen,謝謝你的回答。創建第一個節點和塊是很簡單的。只是在method_missing合併散列與方法名稱...問題是創建深嵌套樹節點... – alex