Kombinieren Sie Nokogiri XML Builder

9

Ich mag das Nokogiri::XML::Builder -Konstrukt, aber es wäre einfacher, große XML-Dokumente zu erstellen, wenn ich den Bauprozess weiter modularisieren könnte, indem ich den Job auf mehrere Builder aufteilen würde.

Sieht jemand einen Weg, mehrere Bauherren zur Zusammenarbeit zu bewegen? (Beispielsweise ruft ein Eltern-Builder Funktionen auf, die untergeordnete Builder zum Erstellen kleinerer Teile des Dokuments festlegen)

Oder gibt es eine Möglichkeit, einen Builder zu ändern, nachdem sein Block beendet wurde? (--- kurz, XML auszugeben, dann in ein Nokogiri :: XML :: -Dokument zu analysieren, dann Knoten hinzuzufügen und dann wieder XML auszugeben)

    
JellicleCat 24.07.2012, 16:47
quelle

1 Antwort

13

Delegation Builder-Funktionalität

  

zum Beispiel ein Eltern-Builder, der Funktionen aufruft, die untergeordnete Builder zum Erstellen kleinerer Teile des Dokuments festlegen

Sie können die Verantwortung einfach an Methoden delegieren, die den aktuellen Status des Builders verwenden und ihn verwenden. Zum Beispiel:

%Vor%

Übergeben Sie einfach die xml (oder wie auch immer Sie Ihr Builder-Objekt nennen) an die Methode und lassen Sie diese Methode das tun, was sie benötigt (entweder prozedural oder manuell).

Ändern eines Builders nach der Erstellung

  

Oder gibt es eine Möglichkeit, einen Builder zu ändern, nachdem sein Block beendet wurde?

Ja! :) Du willst die doc -Methode des Builders nutzen, um den Nokogiri::XML::Document zu bekommen. Das obige Beispiel weiterführen:

%Vor%     
Phrogz 24.07.2012, 22:30
quelle

Tags und Links