medjool 0.6.0 → 0.7.0
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.
- checksums.yaml +5 -5
- data/.ruby-version +1 -1
- data/Gemfile.lock +2 -2
- data/lib/medjool/parser.rb +14 -2
- data/lib/medjool.rb +1 -1
- data/test/test_medjool.rb +18 -1
- metadata +7 -7
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 3e849a9ee874d8112e2ee66c5428fc52d483a9517132b9ce5c781d762d687687
|
|
4
|
+
data.tar.gz: a35b502d072b296279bd0b1882a3d8a042e7c0ef7d9229af1d16ce4c540a94d8
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2882248b162c9e0d09332ea1fa10b1e3ac109c8b9e6fd34c72d9edbf7dd5bc876035a57f50d4f2a2f8839b3659d0d3917379baf8b24fa3143ba304f12aaf7450
|
|
7
|
+
data.tar.gz: a6948793120f4ee891e2dccd2bd759d01b4a265fa896d0bce3718fb90aeca798ffeda5bf7d3a767a575f33c08a5f77aaa7af112427b9a158779d41ef36970438
|
data/.ruby-version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
2.
|
|
1
|
+
2.5.8
|
data/Gemfile.lock
CHANGED
|
@@ -8,7 +8,7 @@ GEM
|
|
|
8
8
|
thread_safe (~> 0.3, >= 0.3.4)
|
|
9
9
|
tzinfo (~> 1.1)
|
|
10
10
|
i18n (0.7.0)
|
|
11
|
-
json (1.8.
|
|
11
|
+
json (1.8.6)
|
|
12
12
|
minitest (5.9.1)
|
|
13
13
|
rake (11.1.2)
|
|
14
14
|
thread_safe (0.3.5)
|
|
@@ -25,4 +25,4 @@ DEPENDENCIES
|
|
|
25
25
|
timecop (~> 0.6.3)
|
|
26
26
|
|
|
27
27
|
BUNDLED WITH
|
|
28
|
-
1.
|
|
28
|
+
1.17.3
|
data/lib/medjool/parser.rb
CHANGED
|
@@ -74,10 +74,22 @@ class Medjool::Parser
|
|
|
74
74
|
end
|
|
75
75
|
end
|
|
76
76
|
|
|
77
|
-
|
|
77
|
+
should_determine_ambiguity = false
|
|
78
|
+
if @context[:now]
|
|
79
|
+
should_determine_ambiguity = true
|
|
80
|
+
else
|
|
78
81
|
# In the absence of context, always fall back on the default guess
|
|
79
82
|
guess_date = base_date
|
|
80
|
-
|
|
83
|
+
|
|
84
|
+
# Only exception for that is the special case where it's currently December,
|
|
85
|
+
# and "January" *obviouly* should mean January NEXT year not THIS year
|
|
86
|
+
if Date.today.month == 12 && guess_date < 10.months.ago
|
|
87
|
+
should_determine_ambiguity = true
|
|
88
|
+
@context[:now] = Date.today
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
if should_determine_ambiguity
|
|
81
93
|
# Determine the ambiguity level for this data
|
|
82
94
|
ambiguity = determine_ambiguity(text)
|
|
83
95
|
|
data/lib/medjool.rb
CHANGED
data/test/test_medjool.rb
CHANGED
|
@@ -2,6 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
require 'helper'
|
|
4
4
|
|
|
5
|
+
class TestMedjoolInDecember < TestCase
|
|
6
|
+
|
|
7
|
+
def setup
|
|
8
|
+
# 23rd December 2013
|
|
9
|
+
Timecop.freeze("2022-12-23".to_date)
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def teardown
|
|
13
|
+
Timecop.return
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def test_january_date_in_december
|
|
17
|
+
assert_equal "2023-01-01".to_date, Medjool.parse("January 1st")
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
5
21
|
class TestMedjool < TestCase
|
|
6
22
|
|
|
7
23
|
def setup
|
|
@@ -17,7 +33,8 @@ class TestMedjool < TestCase
|
|
|
17
33
|
@variations = ["*Monday", "1st July", "2nd July 2010", "1 July 2009", "Monday 2nd July 2009", "Monday 2nd", "Monday 2", "Monday 2 July",
|
|
18
34
|
"Tue", "Tues", "tuesday", "Tuesday", "Wed", "Wednesday", "Thu", "Thur", "Thurs", "Thursday", "Fri", "Friday-"]
|
|
19
35
|
@variations.each do |t|
|
|
20
|
-
|
|
36
|
+
stripped_date = t.sub(/[*-]/, "")
|
|
37
|
+
assert_equal Date.parse(stripped_date), Medjool.parse(t), "Error parsing '#{t}'"
|
|
21
38
|
end
|
|
22
39
|
end
|
|
23
40
|
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: medjool
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.7.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Andy Geers
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2022-12-23 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activesupport
|
|
@@ -81,7 +81,7 @@ homepage: http://github.com/andygeers/medjool
|
|
|
81
81
|
licenses:
|
|
82
82
|
- MIT
|
|
83
83
|
metadata: {}
|
|
84
|
-
post_install_message:
|
|
84
|
+
post_install_message:
|
|
85
85
|
rdoc_options:
|
|
86
86
|
- "--charset=UTF-8"
|
|
87
87
|
require_paths:
|
|
@@ -97,9 +97,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
97
97
|
- !ruby/object:Gem::Version
|
|
98
98
|
version: '0'
|
|
99
99
|
requirements: []
|
|
100
|
-
rubyforge_project:
|
|
101
|
-
rubygems_version: 2.
|
|
102
|
-
signing_key:
|
|
100
|
+
rubyforge_project:
|
|
101
|
+
rubygems_version: 2.7.6.2
|
|
102
|
+
signing_key:
|
|
103
103
|
specification_version: 4
|
|
104
104
|
summary: Date parsing with context
|
|
105
105
|
test_files:
|