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"}