module Datte MATCHER = [ /(?\d{1,4})\/(?\d{1,2})\/(?\d{1,2})/, /(?\d{1,2})\/(?\d{1,2})/ ].freeze ABSOLUTE_DATES = [ # -- '(?\d{1,4})-(?\d{1,2})-(?\d{1,2})', # // '(?\d{1,4})\/(?\d{1,2})\/(?\d{1,2})', # 日 '(?\d{1,4})年(?\d{1,2})月(?\d{1,2})日', # - '(?\d{1,2})-(?\d{1,2})', # / '(?\d{1,2})\/(?\d{1,2})', # 日 '(?\d{1,2})月(?\d{1,2})日', # 月 '(?\d{1,2})月', # 日 '(?\d{1,2})日' ].map { |pattern| Regexp.compile(pattern) }.freeze ABSOLUTE_TIMES = [ # - '(?\d{1,2})-(?\d{1,2})', # : '(?\d{1,2}):(?\d{1,2})', # 分, '(?\d{1,2})時(?\d{1,2})分', # 時 '(?\d{1,2})時', # 分 '(?\d{1,2})分' ].map { |pattern| Regexp.compile(pattern) }.freeze NOUNS = { '明日|あした|あす': 'send(:next_day, 1)', '明後日|あさって': 'send(:next_day, 2)', '明々後日|しあさって': 'send(:next_day, 3)', '今日|きょう': 'send(:next_day, 0)' } AFTERS = [ # 何年後 '(?\d{1)年後', # 何ヶ月後 '(?\d{1,2}ヶ月後)', # 何日後 '(?\d{1,2})日後', # 何時間後 '(?\d{1,2})時間後', # 何分後 '(?\d{1,2})分後' ].map { |pattern| Regexp.compile(pattern) }.freeze WEEKS = { '来週|らいしゅう': 1, '再来週|さらいしゅう': 2, '次の': 1, '翌週': 1 } WDAYS = { '日曜日|にちようび': 0, '月曜日|げつようび': 1, '火曜日|かようび': 2, '水曜日|すいようび': 3, '木曜日|もくようび': 4, '金曜日|きんようび': 5, '土曜日|どようび': 6 } class DatetimeTable def initialize end end end