class Date
Adds fuzzy methods to standard classes for comparing two instances on a rules-based scale between 0.0 and 1.0.
Public Instance Methods
similarity_to(other_date, opts={})
click to toggle source
Calculates a score between 0.0 and 1.0 for all dates within :days_scale of each other.
# File lib/matching/similarity.rb, line 11 def similarity_to(other_date, opts={}) days_scale = opts[:days_scale] || 30 raise ArgumentError, 'days_scale must be numeric' unless days_scale.class == Fixnum days_scale = days_scale.to_f delta = (self - other_date).to_f.abs (delta < days_scale ? (days_scale - delta) / days_scale : 0.0) end