Changed: remove_xpaths called with String returns String, while called with Loofah fragment returns Loofah fragment. Added tests for this.
Renamed: remove_xpaths tests no longer prefixed with sanitizer.
Changed: return early from compare_doms if the two doms don't have the same number of children.
Changed: removed @selected and @page variables from HTMLSelector since one method used them. Passed the values directly to there instead.
Changed: HTMLSelector comparisons renamed to equality_tests.
Changed: put selector extraction into selector_from, which is renamed to extract_selector.
Removed unnecessary lines from HTMLSelector initialize.
Renamed: HTMLSelector css_selector to selector.
Changed: using duck typing instead of requiring subclasses of Node and NodeSet.
Moved: initial assignment of @selector_is_second_argument is now in initialize.
Changed conditional check in filter. Removed weird comments.
Extracted: create Regexp from match_with and use =~ to compare instead of checking .is_a? Regexp every time through the loop.
Fixed: added apostrophe to possessive noun.
Simplified the removal of xpaths in remove_xpaths. Added more tests for remove_xpaths.
Changed back to =~ or == comparison in HTMLSelector filter.
Removed html_strings variable, no splat operator needed.
Changed attributes_are_equal? to equal_attribute_nodes? which takes attribute_nodes instead of nodes.
Reworked some internal documentation for equal_attribute_nodes?.
Removed case statement in equal_children? used child.element? instead.
Removed unnecessary documentation in DomAssertions.