Module: Medjool
- Defined in:
- lib/medjool.rb,
lib/medjool/regexs.rb
Defined Under Namespace
Classes: DateRange, Parser
Constant Summary
collapse
- VERSION =
'0.7.0'
- DAYNAME_MATCHER =
/(\s*Mon(day)?,?\s*|\s*Tue(s(day)?)?,?\s*|\s*Wed(nesday)?,?\s*|\s*Thu(r(s(day)?)?)?,?\s*|\s*Fri(day)?,?\s*|\s*Sat(urday)?,?\s*|\s*Sun(day)?,?\s*)([^a-zA-Z]|$)/i
- MONTH_NAME_MATCHER =
/(Jan(uary)?|Feb(ruary)?|Mar(ch)?|Apr(il)?|May|June?|July?|Aug(ust)?|Sept(ember)?|Oct(ober)?|Nov(ember)?|Dec(ember)?)/i
- MONTH_MATCHER =
/\s*#{MONTH_NAME_MATCHER},?\s*/
- YYYY_MM_DD_MATCHER =
/(\s*[0-9]{4}-[0-9]{2}-[0-9]{2}\s*)/
- DM_DM_YYYY_MATCHER =
/(\s*[0-9]{2}[-\/][0-9]{2}[-\/][0-9]{2,4}\s*)/
- ORDINAL_POSTFIX =
/(st|rd|nd|th)/i
- ORDINAL_MATCHER =
/(\s*([0-9]{1,2}#{ORDINAL_POSTFIX}?),?\s*)/
- END_OF_MONTH_MATCHER =
/^\s*(29|30|31)#{ORDINAL_POSTFIX}?\s*$/
- YEAR_MATCHER =
/(\s*([0-9]{4}\s*|\s*'?[0-9]{2}),?\s*)/
- TEXT_DATE_MATCHER =
/(#{DAYNAME_MATCHER}|#{ORDINAL_MATCHER}|#{YEAR_MATCHER}|#{MONTH_MATCHER}([^a-zA-Z]|$))/
- DATE_MATCHER =
/^[^a-zA-Z0-9]*(#{TEXT_DATE_MATCHER}+|#{DM_DM_YYYY_MATCHER}|#{YYYY_MM_DD_MATCHER})/
- DATE_RANGE_MATCHER =
/^([^:]+: )?((([0-9]+)( #{MONTH_NAME_MATCHER})? ?[-–] ?([0-9]+) #{MONTH_NAME_MATCHER}([^a-zA-Z]|$))|(#{MONTH_NAME_MATCHER} ([0-9]+) ?[-–] ?(#{MONTH_NAME_MATCHER} )?([0-9]+))|#{MONTH_NAME_MATCHER}([^a-zA-Z]|$))$/
Class Method Summary
collapse
Class Method Details
.parse(t, context = {}) ⇒ Object
12
13
14
|
# File 'lib/medjool.rb', line 12
def self.parse(t, context = {})
Medjool::Parser.new(context).parse(t)
end
|