Рубиновый камень Diffy не возвращает различий

Мне нужно сравнить два файла XML и отобразить различия в отчете HTML. Для этого я установил рубиновый гем Diffy (и гемы rspec и diff-lcs, как указано в документации Diffy), но, похоже, он не работает должным образом, так как различия не возвращаются.

У меня есть два файла xmls, которые я хочу сравнить.

XML-файл один:

<?xml version="1.0" encoding="UTF-8"?>
<SourceDetails>
    <Origin>Origin</Origin>
    <Identifier>Identifier</Identifier>
    <Timestamp>2001-12-31T12:00:00</Timestamp>
  </SourceDetails>
  <AsOfDate>2001-01-01</AsOfDate>
  <Instrument>
    <ASXExchangeSecurityIdentifier>ASX</ASXExchangeSecurityIdentifier>
  </Instrument>
  <Rate>0.0</Rate>

XML-файл два:

<?xml version="1.0" encoding="UTF-8"?>
<SourceDetails>
        <Origin>FEED</Origin>
        <Identifier>IR</Identifier>
        <Timestamp>2017-01-01T02:11:01Z</Timestamp>
    </SourceDetails>
    <AsOfDate>2017-01-02</AsOfDate>
    <Instrument>
        <CommonCode>GB0</CommonCode>
    </Instrument>
    <Rate>0.69</Rate>

Когда я предоставляю два xml-файла в качестве аргументов функции diffy:

puts Diffy::Diff.new('xmldoc1', 'xmldoc2', :source => 'files').to_s(:html)

никаких различий не возвращается. Когда я сохраняю два xml-файла в переменных String и предоставляю эти переменные в качестве аргументов функции Diffy:

puts Diffy::Diff.new(doc1, doc2, :include_plus_and_minus_in_html => true).to_s(:html)

опять никаких различий не возвращается. Чтобы выяснить, были ли мои xmls причиной проблемы, я также попытался предоставить две разные строки для функции Diffy:

puts Diffy::Diff.new("Hello how are you", "Hello how are you\nI'm fine\nThat's great\n")

но это также ничего не дало, когда есть явные различия.

Кто-нибудь знает в чем может быть проблема?

0 ответов

Другие вопросы по тегам