Module: Kmc::PackageUtils
- Included in:
- Package
- Defined in:
- lib/kmc/package_utils.rb
Instance Method Summary collapse
- #find(name) ⇒ Object
-
#normalize_for_find(name) ⇒ Object
Lowercases and hyphenates a package name; this is the format packages are expected to be supplied as when passed from the user.
- #normalized_title ⇒ Object
- #search(name) ⇒ Object
Instance Method Details
#find(name) ⇒ Object
13 14 15 16 17 18 19 |
# File 'lib/kmc/package_utils.rb', line 13 def find(name) packages.find do |package| package.names.any? do |candidate_name| normalize_for_find(candidate_name) == normalize_for_find(name) end end end |
#normalize_for_find(name) ⇒ Object
Lowercases and hyphenates a package name; this is the format packages are expected to be supplied as when passed from the user.
5 6 7 |
# File 'lib/kmc/package_utils.rb', line 5 def normalize_for_find(name) name.downcase.gsub(/[ \-]+/, "-") end |
#normalized_title ⇒ Object
9 10 11 |
# File 'lib/kmc/package_utils.rb', line 9 def normalized_title normalize_for_find(title) end |
#search(name) ⇒ Object
21 22 23 24 25 26 27 |
# File 'lib/kmc/package_utils.rb', line 21 def search(name) packages.min_by do |package| package.names.map do |candidate_name| DamerauLevenshtein.distance(name, candidate_name) end.min end end |