comment puis-je faire:avec des blocs
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
et produire suivants:
MyClass.build #=>{:title=>'some title',:collection=>{:node1=>'node1',:node2=>'node2',:another_collection=>{:node1=>'node1',:node2=>'node2'}},:end_node=>'some text'}
Ce que je tentais est de rendre DSL simple et construire arbre de hachage. Je suis sûr que cela peut être fait avec method_missing et instance_eval, mais je ne sais pas comment construire cette logique.
Merci pour l'aide
Qu'avez-vous essayé jusqu'à présent? Pour commencer, essayez de gérer uniquement les appels de méthode de premier niveau, c'est-à-dire d'abord l'utilisation sans blocs. –
Mladen, merci pour la réponse .. Il est trivial de créer des premiers nœuds et blocs. juste dans method_missing fusionner hash avec les noms de méthodes ... le problème est de créer des nœuds d'arbre imbriqués profonds ... – alex