Sha256: 7cd30adc59bef0fc50cbec92d93b4b88173cea61c071d583a867b6486c04c936

Contents?: true

Size: 1.21 KB

Versions: 1

Compression:

Stored size: 1.21 KB

Contents

# encoding: utf-8

require 'inky'

def reformat_html(html)
  html
    .gsub(/\s+/, ' ')                                 # Compact all whitespace to a single space
    .gsub(/> *</, ">\n<")                             # Use returns between tags
    .gsub(%r{<(\w+)([^>]*)>\n</\1>}, '<\1\2/>')       # Auto close empty tags, e.g. <hr>\n</hr> => <hr/>
    .gsub(/ "/, '"').gsub(/\=" /, '="')               # Remove leading/trailing spaces inside attributes
    .gsub(/ </, '<').gsub(/> /, '>')                  # Remove leading/trailing spaces inside tags
    .gsub(' data-parsed=""', '')                      # Don't consider this known inky-node artefact
    .gsub('&#xA0;', ' ')                              # These are the same entity...
    .gsub(/(align="[^"]+") (class="[^"]+")/, '\2 \1') # Tweak order to match inky-node on container
    .gsub(/class\="([^"]+)"/) do                      # Sort class names
      classes = $1.split(' ').sort.join(' ')
      %{class="#{classes}"}
    end
end

def expect_same_html(input, expected)
  expect(reformat_html(input)).to eql(reformat_html(expected))
end

def compare(input, expected)
  inky = Inky::Core.new
  output = inky.release_the_kraken(input)
  expect_same_html(output, expected)
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
inky-rb-1.3.7.3 spec/spec_helper.rb