与えられた文字列の短縮形を生成するモジュールです。
require 'abbrev' require 'pp' pp Abbrev.abbrev(%w[ruby rules]).sort # => [["rub", "ruby"], # ["ruby", "ruby"], # ["rul", "rules"], # ["rule", "rules"], # ["rules", "rules"]]
abbrev(words, pattern = nil) -> Hash
[permalink][rdoc]文字列の配列から一意に決まる短縮形を計算し、短縮形をキー、元の文字列を値とするハッシュを返します。
第二引数に正規表現を指定すると、words のうちそのパターンにマッチしたものから短縮形を計算します。第二引数に文字列を指定すると、words のうちその文字列で始まるものから短縮形を計算します。
require 'abbrev' # words に同じ文字列が含まれている場合は # 以下のようにその文字列しか返しません。 pp Abbrev.abbrev(%w[ruby ruby]).sort # => [["ruby", "ruby"]] # 空白が含まれていても適切に処理します。 pp Abbrev.abbrev(['ru by']).sort # => [["r", "ru by"], # ["ru", "ru by"], # ["ru ", "ru by"], # ["ru b", "ru by"], # ["ru by", "ru by"]] # sort していない例 p %w[ruby rubyist].abbrev #=> {"ruby" => "ruby", # "rubyi" => "rubyist", # "rubyis" => "rubyist", # "rubyist" => "rubyist"}