Ruby 1.9.2 リファレンスマニュアル > ライブラリ一覧 > library abbrev > module Abbrev > abbrev

module function Abbrev.#abbrev

abbrev(words, pattern = nil) -> Hash

文字列の配列から一意に決まる短縮形を計算し、 短縮形をキー、元の文字列を値とするハッシュを返します。

第二引数に正規表現を指定すると、words のうちそのパターンにマッチしたものから短縮形を計算します。 第二引数に文字列を指定すると、words のうちその文字列で始まるものから短縮形を計算します。

[PARAM] words:
元となる文字列の配列。
[PARAM] pattern:
RegexpString を指定します。
[RETURN]
短縮形をキー、元の文字列を値とするハッシュを返します。
# 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"}