Class: Nokodiff::Differ

Inherits:
Object
  • Object
show all
Includes:
FormattingHelpers
Defined in:
lib/nokodiff/differ.rb

Constant Summary collapse

BOTTOM_LEVEL_ELEMENTS =
%w[p li tr h1 h2 h3 h4 h5 h6].freeze

Instance Method Summary collapse

Methods included from FormattingHelpers

#highlight_changes, #insert_table_row_change_marker

Constructor Details

#initialize(before, after) ⇒ Differ

Returns a new instance of Differ.



7
8
9
10
# File 'lib/nokodiff/differ.rb', line 7

def initialize(before, after)
  @before = before
  @after = after
end

Instance Method Details

#to_htmlObject



12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/nokodiff/differ.rb', line 12

def to_html
  compared_blocks.map { |diff|
    case diff[:status]
    when :unchanged
      unchanged_block(diff[:before])
    when :changed
      changed_block(diff[:before], diff[:after])
    when :deleted
      diff[:before].text? ? build_deleted_text_html(diff[:before]) : build_deleted_element_html(diff[:before])
    when :added
      diff[:after].text? ? build_added_text_html(diff[:after]) : build_added_element_html(diff[:after])
    end
  }.join("\n")
end