Class: Picky::Generators::Similarity::Phonetic
- Inherits:
-
Picky::Generators::Strategy
- Object
- Picky::Generators::Strategy
- Picky::Generators::Similarity::Phonetic
- Defined in:
- lib/picky/generators/similarity/phonetic.rb
Overview
It's actually a combination of double metaphone and Levenshtein.
It uses the double metaphone to get similar words and ranks them using the levenshtein.
Direct Known Subclasses
Instance Attribute Summary collapse
-
#amount ⇒ Object
readonly
Returns the value of attribute amount.
Instance Method Summary collapse
-
#check_gem ⇒ Object
Tries to require the text gem.
-
#initialize(amount = 3) ⇒ Phonetic
constructor
A new instance of Phonetic.
-
#prioritize(ary, code) ⇒ Object
Sorts the index values in place.
Methods inherited from Picky::Generators::Strategy
Constructor Details
#initialize(amount = 3) ⇒ Phonetic
Returns a new instance of Phonetic.
21 22 23 24 |
# File 'lib/picky/generators/similarity/phonetic.rb', line 21 def initialize amount = 3 check_gem @amount = amount end |
Instance Attribute Details
#amount ⇒ Object (readonly)
Returns the value of attribute amount.
17 18 19 |
# File 'lib/picky/generators/similarity/phonetic.rb', line 17 def amount @amount end |
Instance Method Details
#check_gem ⇒ Object
Tries to require the text gem.
28 29 30 31 32 33 |
# File 'lib/picky/generators/similarity/phonetic.rb', line 28 def check_gem require 'text' rescue LoadError warn_gem_missing 'text', 'a phonetic Similarity' exit 1 end |
#prioritize(ary, code) ⇒ Object
Sorts the index values in place.
37 38 39 40 |
# File 'lib/picky/generators/similarity/phonetic.rb', line 37 def prioritize ary, code ary.sort_by_levenshtein! code ary.slice! amount, ary.size # Note: The ary.size is not perfectly correct. end |