LoginSignup
7
7

More than 5 years have passed since last update.

Ruby の Array#abbrev で略称を生成し、最小の入力で曜日を取得する

Last updated at Posted at 2015-05-24

概要

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
7
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
7