Während Textströme vor den Augen des jungen Mannes herumwirbelten, schwammen seine Gedanken mit Gedanken über viele Dinge. Sie würden jedoch warten müssen, während er sich konzentrierte volle Konzentration auf die sich verändernden Muster vor ihm. Ein Lichtschimmer Das Nachdenken über ein Stück vergrabenen Codes fiel ihm ins Auge und jede Hoffnung, die er hatte, war verschwunden verloren. In dem Moment, als er zur Seite blickte, wurde die Landschaft anders. Der junge Mann seufzte leise und trottete in feierlicher Resignation weiter. Das Schicksal ist es, für immer durch die verlassenen Codebanken zu wandern.
Differ ist eine flexible, reine Ruby-Diff-Bibliothek, die sich sowohl für die Verwendung in Befehlszeilenskripts als auch für Webanwendungen eignet. Die Flexibilität ergibt sich aus der Tatsache, dass Diffs auf völlig beliebigen Granularitätsebenen erstellt werden können (einige gängige sind integriert) und in verschiedenen Formaten ausgegeben werden können.
sudo gem install unterscheiden sich
Abhängig von Ihrer Situation und Ihren Anforderungen gibt es verschiedene Möglichkeiten, Differ zu verwenden.
@original = „Epischer Lolcat-Fehler!“ @current = „Epischer Wolfsmann scheitert!“
Sie können das Differ-Modul direkt aufrufen.
erfordern 'unterschieden'
Es stehen eine Reihe integrierter Diff-Methoden zur Auswahl …
@diff = Unterscheiden . diff_by_line ( @current , @original ) # => "{"Epic lolcat fail!" >> "Epic wolfman fail!"}" @diff = Unterscheiden . diff_by_word ( @current , @original ) # => „Epic {“lolcat“ >> „wolfman“} fehlgeschlagen!“ @diff = Unterscheiden . diff_by_char ( @current , @original ) # => "Epic {+"wo"}l{-"olcat "}f{+"m"}a{+"n fa"}il!"
… oder rufen Sie #diff direkt auf und geben Sie Ihre eigene Grenzzeichenfolge an!
@diff = Unterscheiden . diff ( @current , @original ) # implizit pro Zeile! # => "{"Epic lolcat fail!" >> "Epic wolfman fail!"}" @diff = Unterscheiden . diff ( @current , @original , 'i' ) # => „Epi{“c lolcat fa“ >> „c wolfman fa“}il“
Wenn Sie etwas mehr Inline wünschen …
erfordern 'differ/string' @diff = @current . diff ( @original ) # implizit nach Zeile! # => "{"Epic lolcat fail!" >> "Epic wolfman fail!"}"
… oder noch viel mehr inline…
@diff = ( @current - @original ) # implizit zeilenweise! # => "{"Epic lolcat fail!" >> "Epic wolfman fail!"}" $; = ' ' @diff = ( @current - @original ) # => „Epic {“lolcat“ >> „wolfman“} fehlgeschlagen!“
… wir sind so gut wie für Sie da.
Benötigen Sie ein anderes Ausgabeformat? Davon haben wir auch einige.
Unterscheiden . format = :ascii # <- Standard Unterscheiden . format = :color Unterscheiden . format = :html Unterscheiden . format = MyCustomFormatModule
Sie möchten die systemweite Standardeinstellung nicht nur für eine einzelne Diff-Ausgabe ändern? Ja, ich auch.
@diff = ( @current - @original ) @diff . format_as ( :color )
Copyright © 2009 Pieter Vande Bruggen.
(Die GIFT-Lizenz, v1)
Hiermit wird die Erlaubnis erteilt, diese Software und/oder ihren Quellcode für den von Ihnen gewählten Zweck zu verwenden. Im Ernst, verrückt werden. Verwenden Sie es für Ihren persönlichen RSS-Feed-Reader, Ihr äußerst profitables soziales Netzwerk oder Ihre Mission zum Mars.
Es ist mir egal, es gehört dir. Ändern Sie den Namen, wenn Sie möchten. Wenn Sie anfangen, die Funktion erheblich zu ändern, wäre es mir sogar lieber, wenn Sie das täten! Machen Sie es zu Ihrem eigenen kleinen Kunstwerk, komplett mit einer stilvollen, fließenden Signatur in der Ecke. Ich habe dir eigentlich nur die Leinwand gegeben. Und mein Segen.
Erkenne immer Recht und Unrecht und lass andere deine guten Taten sehen.