class DomGlancy::ChangeAnalyzer

Attributes

change_factors[RW]

Public Class Methods

new(change_factors = []) click to toggle source
# File lib/dom_glancy/change_anlyzer.rb, line 5
def initialize(change_factors = [])
  @change_factors = Array.new(change_factors)[0..4]

  @change_factors << 0   if @change_factors.length == 0
  @change_factors << 1   if @change_factors.length == 1
  @change_factors << 1.2 if @change_factors.length == 2
  @change_factors << 2   if @change_factors.length == 3
  @change_factors << 5  if @change_factors.length == 4
end

Public Instance Methods

compare(element1, element2) click to toggle source
# File lib/dom_glancy/change_anlyzer.rb, line 15
def compare(element1, element2)
  change_info = element1.change_info(element2)
  deltas = change_info.map { |changed| (element1.send(changed.to_sym) - element2.send(changed.to_sym)).abs }
  comparison_value = deltas.inject { |sum, n| n + n * deltas.count * @change_factors[deltas.count] }
  comparison_value
end