Module: Philiprehberger::Differ::Similarity

Defined in:
lib/philiprehberger/differ/similarity.rb

Class Method Summary collapse

Class Method Details

.call(old_val, new_val, ignore: [], array_key: nil) ⇒ Object



6
7
8
9
10
11
12
13
# File 'lib/philiprehberger/differ/similarity.rb', line 6

def self.call(old_val, new_val, ignore: [], array_key: nil)
  total = count_fields(old_val, new_val, ignore: ignore, array_key: array_key)
  return 1.0 if total.zero?

  changes = Comparator.call(old_val, new_val, ignore: ignore, array_key: array_key)
  changed = changes.length
  (total - changed).to_f / total
end