medjool 0.5.3 → 0.5.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/medjool/parser.rb +1 -1
- data/lib/medjool/regexs.rb +5 -3
- data/lib/medjool.rb +1 -1
- data/test/test_medjool.rb +7 -1
- metadata +4 -4
data/lib/medjool/parser.rb
CHANGED
data/lib/medjool/regexs.rb
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
1
3
|
module Medjool
|
|
2
|
-
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*)/
|
|
3
|
-
MONTH_NAME_MATCHER = /(Jan(uary)?|Feb(ruary)?|Mar(ch)?|Apr(il)?|May|June?|July?|Aug(ust)?|Sept(ember)?|Oct(ober)?|Nov(ember)?|Dec(ember)?)/
|
|
4
|
+
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]|$)/
|
|
5
|
+
MONTH_NAME_MATCHER = /(Jan(uary)?|Feb(ruary)?|Mar(ch)?|Apr(il)?|May|June?|July?|Aug(ust)?|Sept(ember)?|Oct(ober)?|Nov(ember)?|Dec(ember)?)([^a-zA-Z]|$)/
|
|
4
6
|
MONTH_MATCHER = /\s*#{MONTH_NAME_MATCHER},?\s*/
|
|
5
7
|
YYYY_MM_DD_MATCHER = /(\s*[0-9]{4}-[0-9]{2}-[0-9]{2}\s*)/
|
|
6
8
|
DM_DM_YYYY_MATCHER = /(\s*[0-9]{2}[-\/][0-9]{2}[-\/][0-9]{2,4}\s*)/
|
|
@@ -11,5 +13,5 @@ module Medjool
|
|
|
11
13
|
TEXT_DATE_MATCHER = /(#{DAYNAME_MATCHER}|#{ORDINAL_MATCHER}|#{YEAR_MATCHER}|#{MONTH_MATCHER})/
|
|
12
14
|
DATE_MATCHER = /^[^a-zA-Z0-9]*(#{TEXT_DATE_MATCHER}+|#{DM_DM_YYYY_MATCHER}|#{YYYY_MM_DD_MATCHER})/
|
|
13
15
|
|
|
14
|
-
DATE_RANGE_MATCHER = /^((([0-9]+)
|
|
16
|
+
DATE_RANGE_MATCHER = /^((([0-9]+) ?[-–] ?([0-9]+) #{MONTH_NAME_MATCHER})|#{MONTH_NAME_MATCHER})$/
|
|
15
17
|
end
|
data/lib/medjool.rb
CHANGED
data/test/test_medjool.rb
CHANGED
|
@@ -14,12 +14,17 @@ class TestMedjool < TestCase
|
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
def test_parse_without_context
|
|
17
|
-
@variations = ["
|
|
17
|
+
@variations = ["*Monday", "1st July", "2nd July 2010", "1 July 2009", "Monday 2nd July 2009", "Monday 2nd", "Monday 2", "Monday 2 July",
|
|
18
|
+
"Tue", "Tues", "Tuesday", "Wed", "Wednesday", "Thu", "Thur", "Thurs", "Thursday", "Fri", "Friday-"]
|
|
18
19
|
@variations.each do |t|
|
|
19
20
|
assert_equal Date.parse(t), Medjool.parse(t), "Error parsing '#{t}'"
|
|
20
21
|
end
|
|
21
22
|
end
|
|
22
23
|
|
|
24
|
+
def test_month_prefixes
|
|
25
|
+
["Monolith", "Octavia", "Augustus"].map { |name| assert Medjool.parse(name).nil?, "Treated name '#{name}' as date" }
|
|
26
|
+
end
|
|
27
|
+
|
|
23
28
|
def test_parse_with_context
|
|
24
29
|
assert_equal "2013-09-02".to_date, Medjool.parse("Monday", { :now => 1.week.from_now })
|
|
25
30
|
|
|
@@ -60,6 +65,7 @@ class TestMedjool < TestCase
|
|
|
60
65
|
parser = Medjool::Parser.new
|
|
61
66
|
assert parser.is_date_range?("October")
|
|
62
67
|
assert parser.is_date_range?("12-15 Jan")
|
|
68
|
+
assert parser.is_date_range?("12–15 Jan")
|
|
63
69
|
assert !parser.is_date_range?("October 15")
|
|
64
70
|
assert !parser.is_date_range?("09/12/2012")
|
|
65
71
|
assert !parser.is_date_range?("I am working until next October")
|
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: medjool
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
hash:
|
|
4
|
+
hash: 3
|
|
5
5
|
prerelease:
|
|
6
6
|
segments:
|
|
7
7
|
- 0
|
|
8
8
|
- 5
|
|
9
|
-
-
|
|
10
|
-
version: 0.5.
|
|
9
|
+
- 4
|
|
10
|
+
version: 0.5.4
|
|
11
11
|
platform: ruby
|
|
12
12
|
authors:
|
|
13
13
|
- Andy Geers
|
|
@@ -15,7 +15,7 @@ autorequire:
|
|
|
15
15
|
bindir: bin
|
|
16
16
|
cert_chain: []
|
|
17
17
|
|
|
18
|
-
date: 2013-11-
|
|
18
|
+
date: 2013-11-19 00:00:00 Z
|
|
19
19
|
dependencies:
|
|
20
20
|
- !ruby/object:Gem::Dependency
|
|
21
21
|
name: activesupport
|