class JsonDeepCompare::DocumentComparison
Public Class Methods
new(lval, rval, options = {})
click to toggle source
# File lib/json-deep-compare/document_comparison.rb, line 3 def initialize(lval, rval, options = {}) if exclusions = options[:exclusions] options[:exclusions] = [exclusions] unless exclusions.is_a?(Array) else options[:exclusions] = [] end if substitute_with = options[:substitute_with] options[:substitutions] = SubstitutionsBuilder.new(substitute_with).result end @root_comparisons = [] @root_comparisons << NodeComparison.new( lval, rval, ":root", options.merge(direction: :left) ) @root_comparisons << NodeComparison.new( rval, lval, ":root", options.merge(direction: :right) ) end
Public Instance Methods
difference_messages()
click to toggle source
# File lib/json-deep-compare/document_comparison.rb, line 22 def difference_messages ldiffs = @root_comparisons.first.differences rdiffs = @root_comparisons.last.differences differences = ldiffs.dup ldiff_selectors = ldiffs.map { |ldiff| ldiff.selector } rdiffs.each do |rdiff| unless ldiff_selectors.include?(rdiff.selector) differences << rdiff.reverse end end differences = differences.sort_by &:selector differences.map(&:message).join("\n") end
equal?()
click to toggle source
# File lib/json-deep-compare/document_comparison.rb, line 36 def equal? @root_comparisons.all?(&:equal?) end