當一串串文字在年輕人眼前盤旋時,他的腦海裡浮現出 對很多事情的想法。然而,當他集中精力時,他們必須等待 全神貫注於他面前不斷變化的模式。一絲光芒 一段埋藏程式碼的反射吸引了他的注意,他的任何希望都化為泡影 丟失的。就在他向一邊看去的那一刻,風景變得不同了。 年輕人輕輕嘆了口氣,神情嚴肅地拖著腳步繼續前行, 注定要永遠在荒涼的程式碼庫中徘徊。
Differ 是一個靈活的純 Ruby diff 函式庫,適用於命令列腳本和 Web 應用程式。靈活性來自於這樣一個事實:差異可以完全任意的粒度等級建構(一些常見的粒度是內建的),並且可以以多種格式輸出。
sudo gem install不同
有多種使用 Differ 的方法,取決於您的情況和需求。
@original = “史詩般的哈哈貓失敗了!” @current = “史詩狼人失敗了!”
您可以直接呼叫Differ模組。
要求“不同”
有許多內建的 diff 方法可供選擇...
@diff =不同。 diff_by_line ( @當前, @原始) # => "{"史詩般的笑貓失敗了! @diff =不同。 diff_by_word ( @當前, @原始) # =>“史詩{“lolcat”>>“狼人”}失敗!” @diff =不同。 diff_by_char ( @當前, @原始) # => "史詩{+"wo"}l{-"olcat "}f{+"m"}a{+"n fa"}il!"
...或直接呼叫#diff並提供您自己的邊界字串!
@diff =不同。 diff ( @current , @original ) # 隱式按行! # => "{"史詩般的笑貓失敗了! @diff =不同。差異( @當前, @原始, '我' ) # => "Epi{"c lolcat fa" >> "c Wolfman fa"}il"
如果你想要一些更內聯的東西...
需要“不同/字串” @diff = @當前。 diff ( @original ) # 隱式按行! # => "{"史詩般的笑貓失敗了!
…或更多內聯…
@diff = ( @current - @original ) # 隱式按行! # => "{"史詩般的笑貓失敗了! $; = '' @diff = ( @當前- @原始) # =>“史詩{“lolcat”>>“狼人”}失敗!”
……我們幾乎已經為您提供了幫助。
需要不同的輸出格式?我們也有一些。
不同。格式= :ascii # <- 默認 不同。格式= :顏色 不同。格式= :html 不同。格式= MyCustomFormatModule
不想僅更改單一差異輸出的系統範圍預設值?是的,我也是。
@diff = ( @當前- @原始) @差異。格式為( :顏色)
版權所有 © 2009 彼得范德布魯根。
(GIFT 許可證,v1)
特此授予您將本軟體和/或其原始程式碼用於您選擇的任何目的的許可。說真的,發瘋吧。將其用於您的個人 RSS 提要閱讀器、您利潤豐厚的社交網絡或您的火星任務。
我不在乎,這是你的。如果您願意,可以更改它的名稱 - 事實上,如果您開始顯著更改它的功能,我寧願您這樣做!讓它成為您自己的小藝術品,並在角落裡加上時尚流暢的簽名。我真正做的只是給你一個畫布。還有我的祝福。
時刻明辨是非,讓別人看到你的好作品。