Class: HumanDateRange::Parser
- Inherits:
-
Object
- Object
- HumanDateRange::Parser
- Defined in:
- lib/human_date_range/parser.rb
Constant Summary collapse
- NORMALIZERS =
Порядок имеет значение
{ russian: { /(января|январь|янв\.?|янвр\.?)/ => 'Jan', /(ферваль|февраля|фев\.?|февр\.?)/ => 'Feb', /(марта|март|мар\.?|март\.?)/ => 'Mar', /(апрель|апреля|апр\.?)/ => 'Apr', /(май|мая|май\.?)/ => 'May', /(июнь|июня|июн\.?)/ => 'Jun', /(июль|июля|июл\.?)/ => 'Jul', /(августа|август|авг\.?)/ => 'Aug', /(сентябрь|сентября|сен\.?)/ => 'Sep', /(октябрь|октября|окт\.?)/ => 'Oct', /(ноябрь|ноября|ноя\.?)/ => 'Nov', /(декабрь|декабря|дек\.?)/ => 'Dec', /((в )?(\d\d\:\d\d))/ => '', /\s(год|года)\s/ => '', /\s(пнд|втр|срд|чтв|птц|сбт|вск)/ => '', /\s(пн|вт|ср|чт|пт|сб|вс)/ => '', /сегодня/ => -> { Date.today.strftime("%d-%m-%Y") }.call , /послезавтра/ => -> { ( Date.today + 2 ).strftime("%d-%m-%Y") }.call , /завтра/ => -> { ( Date.today + 1 ).strftime("%d-%m-%Y") }.call , /вчера/ => -> { ( Date.today - 1 ).strftime("%d-%m-%Y") }.call , /с(?:о)?(.+)по(.+)/ => '\1 - \2', /\s+/ => ' ', /[,|-]\s?+\z/ => '', /(года|год|г)/ => '' } }
- MONTHES_REGEXP =
%w[jan feb mar apr may jun jul aug sep oct nov dec].join('|')
Instance Method Summary collapse
-
#initialize(string, language = :russian, output_format = "%d-%m-%Y") ⇒ Parser
constructor
A new instance of Parser.
- #parse ⇒ Object
Constructor Details
#initialize(string, language = :russian, output_format = "%d-%m-%Y") ⇒ Parser
Returns a new instance of Parser.
34 35 36 37 38 39 |
# File 'lib/human_date_range/parser.rb', line 34 def initialize(string, language=:russian, output_format="%d-%m-%Y") raise ArgumentError unless string.kind_of?(String) @string = string @language = language @output_format = output_format end |
Instance Method Details
#parse ⇒ Object
41 42 43 44 45 46 47 48 |
# File 'lib/human_date_range/parser.rb', line 41 def parse normalize! begin perform(@string) rescue ArgumentError nil end end |