lib/yano/lenient.rb in yano-0.1.3 vs lib/yano/lenient.rb in yano-0.1.4

- old
+ new

@@ -1,5 +1,7 @@ +# frozen_string_literal: true + module Yano module Lenient YES_MATCH_SCORE_THRESHOLD = 2 NO_MATCH_SCORE_THRESHOLD = 1.25 @@ -11,11 +13,11 @@ 'y' => 1, 'u' => 0.75, 'g' => 0.25, 'h' => 0.25, 'k' => 0.25 - } + }.freeze E_MATCH = { '2' => 0.25, '3' => 0.25, '4' => 0.25, @@ -23,11 +25,11 @@ 'e' => 1, 'r' => 0.75, 's' => 0.25, 'd' => 0.25, 'f' => 0.25 - } + }.freeze S_MATCH = { 'q' => 0.25, 'w' => 0.25, 'e' => 0.25, @@ -35,41 +37,44 @@ 's' => 1, 'd' => 0.75, 'z' => 0.25, 'x' => 0.25, 'c' => 0.25 - } + }.freeze N_MATCH = { 'h' => 0.25, 'j' => 0.25, 'k' => 0.25, 'b' => 0.75, 'n' => 1, 'm' => 0.75 - } + }.freeze O_MATCH = { '9' => 0.25, '0' => 0.25, 'i' => 0.75, 'o' => 1, 'p' => 0.75, 'k' => 0.25, 'l' => 0.25 - } + }.freeze def self.get_yes_match_score(val) - y, e, s = val[0], val[1], val[2] + y = val[0] + e = val[1] + s = val[2] [].tap do |score| score << Y_MATCH[y].to_f score << E_MATCH[e].to_f score << S_MATCH[s].to_f end.reduce(:+) end def self.get_no_match_score(val) - n, o = val[0], val[1] + n = val[0] + o = val[1] [].tap do |score| score << N_MATCH[n].to_f score << O_MATCH[o].to_f end.reduce(:+)