# File lib/hashdiff/util.rb, line 6 def self.similar?(a, b, options = {}) return compare_values(a, b, options) unless a.is_a?(Array) || a.is_a?(Hash) || b.is_a?(Array) || b.is_a?(Hash) opts = { :similarity => 0.8 }.merge(options) count_a = count_nodes(a) count_b = count_nodes(b) diffs = count_diff diff(a, b, opts) if count_a + count_b == 0 return true else (1 - diffs.to_f/(count_a + count_b).to_f) >= opts[:similarity] end end