Пока перед глазами молодого человека кружились потоки текста, в его голове кружились мысли. мысли о многом. Однако им придется подождать, пока он сосредоточит свои усилия. полная концентрация на меняющихся закономерностях впереди. Блеск света размышления о куске скрытого кода привлекли его внимание, и всякая надежда, которая у него была, была потерянный. В тот самый момент, когда он взглянул в сторону, пейзаж стал другим. Молодой человек вздохнул и с торжественным смирением пошел дальше. обречен вечно бродить по пустынным банкам кодов.
Differ — это гибкая библиотека различий на чистом Ruby, подходящая для использования как в сценариях командной строки, так и в веб-приложениях. Гибкость достигается за счет того, что различия могут создаваться с совершенно произвольным уровнем детализации (некоторые распространенные из них являются встроенными) и могут выводиться в различных форматах.
установка sudo gem отличается
Существует несколько способов использования Differ, в зависимости от вашей ситуации и потребностей.
@original = "Эпический лолкот провал!" @current = "Эпический провал человека-волка!"
Вы можете вызвать модуль Differ напрямую.
требуют «разные»
Существует несколько встроенных методов сравнения на выбор…
@diff = Отличаться . diff_by_line ( @current , @original ) # => "{"Эпический провал лолкота!" >> "Эпический провал человека-волка!"}" @diff = Отличаться . diff_by_word ( @current , @original ) # => "Эпический {"lolcat" >> "человек-волк"} провалился!" @diff = Отличаться . diff_by_char ( @current , @original ) # => "Epic {+"wo"}l{-"olcat "}f{+"m"}a{+"n fa"}il!"
… или напрямую вызовите #diff и укажите свою собственную граничную строку!
@diff = Отличаться . diff ( @current , @original ) # неявно построчно! # => "{"Эпический провал лолкота!" >> "Эпический провал человека-волка!"}" @diff = Отличаться . разница ( @current , @original , 'i' ) # => "Epi{"c lolcat fa" >> "c wolfman fa"}il"
Если вам хочется чего-то более встроенного…
требуется «разница/строка» @diff = @current . diff ( @original ) # неявно построчно! # => "{"Эпический провал лолкота!" >> "Эпический провал человека-волка!"}"
… или многое другое…
@diff = ( @current - @original ) # неявно построчно! # => "{"Эпический провал лолкота!" >> "Эпический провал человека-волка!"}" $; = ' ' @diff = ( @current - @original ) # => "Эпический {"lolcat" >> "человек-волк"} провалился!"
… мы в значительной степени вас прикрыли.
Нужен другой формат вывода? У нас тоже есть несколько таких.
Отличаться . format = :ascii # <- По умолчанию Отличаться . формат = :цвет Отличаться . формат = :html Отличаться . формат = MyCustomFormatModule
Не хотите менять общесистемные настройки по умолчанию только для одного вывода различий? Да, я тоже.
@diff = ( @current - @original ) @дифф . format_as ( : цвет )
Авторские права © 2009 Питер Ванде Брюгген.
(Лицензия GIFT, версия 1)
Настоящим предоставляется разрешение на использование этого программного обеспечения и/или его исходного кода для любых целей, которые вы выберете. Серьезно, с ума сойти. Используйте его для своей личной программы чтения RSS-каналов, своей чрезвычайно прибыльной социальной сети или своей миссии на Марс.
Мне все равно, это твое. Измените его имя, если хотите – на самом деле, если вы начнете существенно менять его функции, я бы предпочел, чтобы вы это сделали! Сделайте это своим собственным маленьким произведением искусства, дополнив его стильной плавной подписью в углу. Все, что я действительно сделал, это дал тебе холст. И мое благословение.
Всегда отличайте хорошее от неправильного и позволяйте другим видеть ваши добрые дела.