概要
Ruby の Array#abbrev で略称を生成し、最小の入力で曜日を取得します
Abbrev modue, Array#abbrev
Abbrev.abbrev(array)
もしくは
Array#abbrev
で、配列の短縮形を取得します。
サンプル
仕様
曜日を最小入力で取得できるようにします。
コード
require 'abbrev'
require 'pp'
weeks = %w(Sunday Monday Tuesday Wednesday Thursday Friday Saturday)
abbrev_week = weeks.abbrev
pp abbrev_week, "\n"
print Abbrev.abbrev(weeks) == abbrev_week
puts
%w(S Su Sa T Tu Th F).each do |key|
week = abbrev_week[key]
print "input #{key} : key = "
puts week.nil? ? 'not exist' : week
end
動作確認
{"Sunday"=>"Sunday",
"Sunda"=>"Sunday",
"Sund"=>"Sunday",
"Sun"=>"Sunday",
"Su"=>"Sunday",
"Monday"=>"Monday",
"Monda"=>"Monday",
"Mond"=>"Monday",
"Mon"=>"Monday",
"Mo"=>"Monday",
"M"=>"Monday",
"Tuesday"=>"Tuesday",
"Tuesda"=>"Tuesday",
"Tuesd"=>"Tuesday",
"Tues"=>"Tuesday",
"Tue"=>"Tuesday",
"Tu"=>"Tuesday",
"Wednesday"=>"Wednesday",
"Wednesda"=>"Wednesday",
"Wednesd"=>"Wednesday",
"Wednes"=>"Wednesday",
"Wedne"=>"Wednesday",
"Wedn"=>"Wednesday",
"Wed"=>"Wednesday",
"We"=>"Wednesday",
"W"=>"Wednesday",
"Thursday"=>"Thursday",
"Thursda"=>"Thursday",
"Thursd"=>"Thursday",
"Thurs"=>"Thursday",
"Thur"=>"Thursday",
"Thu"=>"Thursday",
"Th"=>"Thursday",
"Friday"=>"Friday",
"Frida"=>"Friday",
"Frid"=>"Friday",
"Fri"=>"Friday",
"Fr"=>"Friday",
"F"=>"Friday",
"Saturday"=>"Saturday",
"Saturda"=>"Saturday",
"Saturd"=>"Saturday",
"Satur"=>"Saturday",
"Satu"=>"Saturday",
"Sat"=>"Saturday",
"Sa"=>"Saturday"}
"\n"
true
input S : key = not exist
input Su : key = Sunday
input Sa : key = Saturday
input T : key = not exist
input Tu : key = Tuesday
input Th : key = Thursday
input F : key = Friday