module Kmc::PackageUtils
Public Instance Methods
find(name)
click to toggle source
# 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)
click to toggle source
Lowercases and hyphenates a package name; this is the format packages are expected to be supplied as when passed from the user.
# File lib/kmc/package_utils.rb, line 5 def normalize_for_find(name) name.downcase.gsub(/[ \-]+/, "-") end
normalized_title()
click to toggle source
# File lib/kmc/package_utils.rb, line 9 def normalized_title normalize_for_find(title) end
search(name)
click to toggle source
# 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