abbrev

abbrevを使うと、与えた文字列の配列を元にして、各文字列を特定するための省略形が得られます。
詳細は、ri Array#abbrevとri Abbrev#abbrevを参照してください。ri Array#abbrevの例にはrequire 'abbrev'が書いてなかったので最初悩みました。
はてなで言語をお勉強している方のidを例題にお借りしますね。

require 'abbrev'
require 'pp'

a = %w[ rubyco rubyo rubyta javazo pylet rubymi ]

pp a.abbrev

実行結果です。

{"pylet"=>"pylet",
 "rubyta"=>"rubyta",
 "rubym"=>"rubymi",
 "ja"=>"javazo",
 "java"=>"javazo",
 "rubyc"=>"rubyco",
 "rubyo"=>"rubyo",
 "pyl"=>"pylet",
 "rubymi"=>"rubymi",
 "javazo"=>"javazo",
 "p"=>"pylet",
 "pyle"=>"pylet",
 "javaz"=>"javazo",
 "rubyt"=>"rubyta",
 "py"=>"pylet",
 "jav"=>"javazo",
 "rubyco"=>"rubyco",
 "j"=>"javazo"}