Module: SiteDiff::Diff

Defined in:
lib/sitediff/diff.rb

Class Method Summary collapse

Class Method Details

.binary_diffy(before, after, before_encoding, after_encoding) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/sitediff/diff.rb', line 27

def binary_diffy(before, after, before_encoding, after_encoding)
  if before_encoding || after_encoding
    Diffy::Diff.new(encoding_blurb(before_encoding),
                    encoding_blurb(after_encoding)).to_s(:html)
  elsif before == after
    nil
  else
    md5_before = Digest::MD5.hexdigest(before)
    md5_after = Digest::MD5.hexdigest(after)
    Diffy::Diff.new("Binary content returned md5: #{md5_before}",
                    "Binary content returned md5: #{md5_after}").to_s(:html)
  end
end

.cssObject



59
60
61
# File 'lib/sitediff/diff.rb', line 59

def css
  File.read(File.join(SiteDiff::FILES_DIR, 'sitediff.css'))
end

.encoding_blurb(encoding) ⇒ Object



19
20
21
22
23
24
25
# File 'lib/sitediff/diff.rb', line 19

def encoding_blurb(encoding)
  if encoding
    "Text content returned - charset #{encoding}"
  else
    'Binary content returned'
  end
end

.generate_diff_output(result) ⇒ Object



54
55
56
57
# File 'lib/sitediff/diff.rb', line 54

def generate_diff_output(result)
  erb_path = File.join(SiteDiff::FILES_DIR, 'diff.html.erb')
  ERB.new(File.read(erb_path)).result(binding)
end

.generate_html_report(results, before, after, cache) ⇒ Object



48
49
50
51
52
# File 'lib/sitediff/diff.rb', line 48

def generate_html_report(results, before, after, cache)
  erb_path = File.join(SiteDiff::FILES_DIR, 'html_report.html.erb')
  report_html = ERB.new(File.read(erb_path)).result(binding)
  report_html
end

.html_diffy(before_html, after_html) ⇒ Object



13
14
15
16
17
# File 'lib/sitediff/diff.rb', line 13

def html_diffy(before_html, after_html)
  diff = Diffy::Diff.new(before_html, after_html)
  diff.first ? # Is it non-empty?
    diff.to_s(:html) : nil
end

.terminal_diffy(before_html, after_html) ⇒ Object



41
42
43
44
45
46
# File 'lib/sitediff/diff.rb', line 41

def terminal_diffy(before_html, after_html)
  args = []
  args << :color if Rainbow.enabled
  Diffy::Diff.new(before_html, after_html, context: 3)
             .to_s(*args)
end