Module: Kmc::PackageUtils

Included in:
Package
Defined in:
lib/kmc/package_utils.rb

Instance Method Summary collapse

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_titleObject



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