Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
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.
Ruby
Branch: master
Pull request Compare This branch is 50 commits behind grsmv:master.

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. Move Unicode gem (unicode-0.4.0) in dependencies
  2. Write tests for sure in equality of numerical and literal days values and for sure in right date recognition
  3. Write YARD documentation
  4. Pack as gem
  5. Type error recognition ('черз' instead 'через') and fixing. (?!: vocabulary + Levenshtein distance). (and look at the http://en.wikipedia.org/wiki/Damerau%E2%80%93Levenshtein_distance)
  6. 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.