fuzzy_record 0.0.2 → 0.0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/fuzzy_record/fuzzy_searcher.rb +4 -4
- data/lib/fuzzy_record/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f1e42137634487900d528ff42a11bacbf15b8784
|
4
|
+
data.tar.gz: cf0d3aa5cbc23adefdcbbe15bf852a231ee720ac
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e4f20eb6efca2299934b31b4fc5e5a8a1570be6de45759f02363e6d2af4eb485d7f36f4e90d7bc778006d10d4fa15b4a515879e218d3a5347308bb1cebaa8c30
|
7
|
+
data.tar.gz: ee6043ea3391796ad3fd3112115a4b472a50192c7ef3d4e80cda27ffde48052166e0b434d528c667f3d50c062601363b7e4bb49de112ab221fa7cbc18e3870a2
|
@@ -9,10 +9,10 @@ class FuzzyRecord::FuzzySearcher
|
|
9
9
|
@class.all.select{ |record| include_record(record)}.sort_by{|record| sorter(record)}
|
10
10
|
end
|
11
11
|
private
|
12
|
-
def generalize(str)
|
13
|
-
def ave(arry)
|
14
|
-
def matches?(record,k,v)
|
15
|
-
def sorter(record)
|
12
|
+
def generalize(str) ".*#{str.gsub(/[^a-zA-Z&0-9]/, "").chars.to_a.join(".*")}.*" rescue(nil) end
|
13
|
+
def ave(arry) arry.sum.to_f / arry.length end
|
14
|
+
def matches?(record,k,v) !!(record.send(k) == v || record.send(k).to_s =~ /#{generalize(v)}/i) end
|
15
|
+
def sorter(record) ave(@search.map{|k,v| (record.send(k).to_s ^ v rescue(0))}) end
|
16
16
|
def include_record(record) @search.map{|k,v| matches?(record,k,v)}.inject(:&) end
|
17
17
|
|
18
18
|
def create_search
|
data/lib/fuzzy_record/version.rb
CHANGED