Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Gem for date recognition and parsing in natural language phrases.
Ruby Perl
tag: 0.0.2

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
data
lib
.gitignore
CHANGELOG.md
Gemfile
LICENSE
README.md
Rakefile
day.gemspec

README.md

Gem for date parsing (in the scale of the day, hours is not very important in my projects now). It support Russian and Ukrainian (in future) languages.

Table of possible phrase types to parse:

----------------------------------------------------------------------------------
по-русски                    |    по-украински                 | is implemented?
----------------------------------------------------------------------------------
вчера                        |                                 |       +
сегодня                      |                                 |       +
завтра                       |                                 |       +
два дня назад                |                                 |       +
три дня назад                |                                 |       +
(...) дней назад             |                                 |       +
2 дня назад                  |                                 |       +
3 дня назад                  |                                 |       +
5 дней назад                 |                                 |       +
через два дня                |                                 |       +
через три дня                |                                 |       +
через (...) дней             |                                 |       +
через 2 дня                  |                                 |       +
через 3 дня                  |                                 |       +
через 25 дней                |                                 |       +
в понедельник                |                                 |       +
во вторник и т.д.            |                                 |       +
в этот понедельник           |                                 |       +
в этот вторник и т.д.        |                                 |       +
пн (вт, ср, чт, пт, чб, вс)  |                                 |       +
в пн (во вт, в ср ...)       |                                 |
в следующий понедельник      |                                 |       +
в следующий вторник и т.д.   |                                 |       +
в след пн (в след.? вт)      |                                 |
в прошлый понедельник        |                                 |       +
в прошлый вторник и т.д.     |                                 |       +
в прошлый пн (вт, ср)        |                                 |
----------------------------------------------------------------------------------
через неделю                 |                                 |       +
через две недели и т.д.      |                                 |       +
через 2 недели               |                                 |       +
неделю назад                 |                                 |       +
две недели назад             |                                 |       +
2 недели назад               |                                 |       +
на следующей неделе          |                                 |
на след.(?) неделе           |                                 |
на прошлой неделе            |                                 |
----------------------------------------------------------------------------------
через месяц                  |                                 |       +
через два месяца             |                                 |       +
через 2 месяца               |                                 |       +
через мес                    |                                 |
через 2 мес                  |                                 |
месяц назад                  |                                 |       +
два месяца назад             |                                 |       +
пять месяцев назад           |                                 |       +
2 месяца назад               |                                 |       +
5 месяцев назад              |                                 |       +
----------------------------------------------------------------------------------
2 октября                    |                                 |       +
2 октября 2011               |                                 |       +
2 окт                        |                                 |       +
2 окт 2011                   |                                 |       +
17 июн, 2011                 |                                 |       +
----------------------------------------------------------------------------------
Date.parse (?):
----------------------------------------------------------------------------------
1.05.2011                    |                                 |       +
01.05.2011                   |                                 |       +
1-5-2011                     |                                 |       +
2011-5-1                     |                                 |       +
2011.5.1                     |                                 |       +
2011.1                       |                                 |  error raised

TODO:

  1. Write tests for sure in equality of numerical and literal days values and for sure in right date recognition
  2. Write YARD documentation
  3. Type error recognition ('черз' instead 'через') and fixing. (?!: vocabulary + Levenshtein distance). (and look at the http://en.wikipedia.org/wiki/Damerau%E2%80%93Levenshtein_distance)
  4. Set start date + Timezone

USAGE:

puts Day::Ru 'через 2 месяца'  #=> Wed Sep 14 00:00:00 +0300 2011
puts Day::Ru 'завтра'          #=> Wed Jul 15 00:00:00 +0300 2011

# (For other examples see table at the top)
Something went wrong with that request. Please try again.