chronic 0.6.3 → 0.10.2
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 +7 -0
- data/.gitignore +4 -3
- data/.travis.yml +8 -0
- data/HISTORY.md +76 -0
- data/README.md +47 -42
- data/Rakefile +30 -12
- data/chronic.gemspec +10 -4
- data/lib/chronic/date.rb +82 -0
- data/lib/chronic/grabber.rb +9 -7
- data/lib/chronic/handler.rb +47 -40
- data/lib/chronic/handlers.rb +240 -28
- data/lib/chronic/numerizer.rb +11 -2
- data/lib/chronic/ordinal.rb +28 -23
- data/lib/chronic/parser.rb +268 -0
- data/lib/chronic/pointer.rb +9 -7
- data/lib/chronic/repeater.rb +58 -48
- data/lib/chronic/repeaters/repeater_day.rb +4 -3
- data/lib/chronic/repeaters/repeater_day_name.rb +5 -4
- data/lib/chronic/repeaters/repeater_day_portion.rb +33 -18
- data/lib/chronic/repeaters/repeater_fortnight.rb +4 -3
- data/lib/chronic/repeaters/repeater_hour.rb +4 -3
- data/lib/chronic/repeaters/repeater_minute.rb +4 -3
- data/lib/chronic/repeaters/repeater_month.rb +5 -4
- data/lib/chronic/repeaters/repeater_month_name.rb +4 -3
- data/lib/chronic/repeaters/repeater_season.rb +5 -3
- data/lib/chronic/repeaters/repeater_second.rb +4 -3
- data/lib/chronic/repeaters/repeater_time.rb +35 -25
- data/lib/chronic/repeaters/repeater_week.rb +4 -3
- data/lib/chronic/repeaters/repeater_weekday.rb +4 -3
- data/lib/chronic/repeaters/repeater_weekend.rb +4 -3
- data/lib/chronic/repeaters/repeater_year.rb +6 -5
- data/lib/chronic/scalar.rb +40 -68
- data/lib/chronic/season.rb +1 -12
- data/lib/chronic/separator.rb +142 -23
- data/lib/chronic/sign.rb +49 -0
- data/lib/chronic/span.rb +2 -2
- data/lib/chronic/tag.rb +10 -15
- data/lib/chronic/time.rb +40 -0
- data/lib/chronic/time_zone.rb +9 -7
- data/lib/chronic/token.rb +16 -10
- data/lib/chronic.rb +109 -70
- data/test/helper.rb +8 -2
- data/test/{test_Chronic.rb → test_chronic.rb} +69 -34
- data/test/{test_DaylightSavings.rb → test_daylight_savings.rb} +1 -1
- data/test/{test_Handler.rb → test_handler.rb} +38 -14
- data/test/{test_MiniDate.rb → test_mini_date.rb} +9 -9
- data/test/{test_Numerizer.rb → test_numerizer.rb} +16 -2
- data/test/test_parsing.rb +392 -22
- data/test/{test_RepeaterDayName.rb → test_repeater_day_name.rb} +1 -1
- data/test/test_repeater_day_portion.rb +254 -0
- data/test/{test_RepeaterFortnight.rb → test_repeater_fortnight.rb} +1 -1
- data/test/{test_RepeaterHour.rb → test_repeater_hour.rb} +1 -1
- data/test/{test_RepeaterMinute.rb → test_repeater_minute.rb} +1 -1
- data/test/{test_RepeaterMonth.rb → test_repeater_month.rb} +1 -1
- data/test/{test_RepeaterMonthName.rb → test_repeater_month_name.rb} +1 -1
- data/test/{test_RepeaterSeason.rb → test_repeater_season.rb} +1 -1
- data/test/{test_RepeaterTime.rb → test_repeater_time.rb} +19 -1
- data/test/{test_RepeaterWeek.rb → test_repeater_week.rb} +1 -1
- data/test/{test_RepeaterWeekday.rb → test_repeater_weekday.rb} +1 -1
- data/test/{test_RepeaterWeekend.rb → test_repeater_weekend.rb} +1 -1
- data/test/{test_RepeaterYear.rb → test_repeater_year.rb} +1 -1
- data/test/{test_Span.rb → test_span.rb} +2 -2
- data/test/{test_Token.rb → test_token.rb} +1 -1
- metadata +129 -87
- data/.gemtest +0 -0
- data/.yardopts +0 -3
- data/lib/chronic/chronic.rb +0 -323
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
require 'helper'
|
|
2
|
+
|
|
3
|
+
class TestRepeaterDayPortion < TestCase
|
|
4
|
+
|
|
5
|
+
def setup
|
|
6
|
+
@now = Time.local(2006, 8, 16, 14, 0, 0, 0)
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def test_am_future
|
|
10
|
+
day_portion = Chronic::RepeaterDayPortion.new(:am)
|
|
11
|
+
day_portion.start = @now
|
|
12
|
+
|
|
13
|
+
next_time = day_portion.next(:future)
|
|
14
|
+
assert_equal Time.local(2006, 8, 17, 00), next_time.begin
|
|
15
|
+
assert_equal Time.local(2006, 8, 17, 11, 59, 59), next_time.end
|
|
16
|
+
|
|
17
|
+
next_next_time = day_portion.next(:future)
|
|
18
|
+
assert_equal Time.local(2006, 8, 18, 00), next_next_time.begin
|
|
19
|
+
assert_equal Time.local(2006, 8, 18, 11, 59, 59), next_next_time.end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def test_am_past
|
|
23
|
+
day_portion = Chronic::RepeaterDayPortion.new(:am)
|
|
24
|
+
day_portion.start = @now
|
|
25
|
+
|
|
26
|
+
next_time = day_portion.next(:past)
|
|
27
|
+
assert_equal Time.local(2006, 8, 16, 00), next_time.begin
|
|
28
|
+
assert_equal Time.local(2006, 8, 16, 11, 59, 59), next_time.end
|
|
29
|
+
|
|
30
|
+
next_next_time = day_portion.next(:past)
|
|
31
|
+
assert_equal Time.local(2006, 8, 15, 00), next_next_time.begin
|
|
32
|
+
assert_equal Time.local(2006, 8, 15, 11, 59, 59), next_next_time.end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def test_am_future_with_daylight_savings_time_boundary
|
|
36
|
+
@now = Time.local(2012,11,3,0,0,0)
|
|
37
|
+
day_portion = Chronic::RepeaterDayPortion.new(:am)
|
|
38
|
+
day_portion.start = @now
|
|
39
|
+
|
|
40
|
+
next_time = day_portion.next(:future)
|
|
41
|
+
assert_equal Time.local(2012, 11, 4, 00), next_time.begin
|
|
42
|
+
assert_equal Time.local(2012, 11, 4, 11, 59, 59), next_time.end
|
|
43
|
+
|
|
44
|
+
next_next_time = day_portion.next(:future)
|
|
45
|
+
|
|
46
|
+
assert_equal Time.local(2012, 11, 5, 00), next_next_time.begin
|
|
47
|
+
assert_equal Time.local(2012, 11, 5, 11, 59, 59), next_next_time.end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def test_pm_future
|
|
51
|
+
day_portion = Chronic::RepeaterDayPortion.new(:pm)
|
|
52
|
+
day_portion.start = @now
|
|
53
|
+
|
|
54
|
+
next_time = day_portion.next(:future)
|
|
55
|
+
assert_equal Time.local(2006, 8, 17, 12), next_time.begin
|
|
56
|
+
assert_equal Time.local(2006, 8, 17, 23, 59, 59), next_time.end
|
|
57
|
+
|
|
58
|
+
next_next_time = day_portion.next(:future)
|
|
59
|
+
assert_equal Time.local(2006, 8, 18, 12), next_next_time.begin
|
|
60
|
+
assert_equal Time.local(2006, 8, 18, 23, 59, 59), next_next_time.end
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def test_pm_past
|
|
64
|
+
day_portion = Chronic::RepeaterDayPortion.new(:pm)
|
|
65
|
+
day_portion.start = @now
|
|
66
|
+
|
|
67
|
+
next_time = day_portion.next(:past)
|
|
68
|
+
assert_equal Time.local(2006, 8, 15, 12), next_time.begin
|
|
69
|
+
assert_equal Time.local(2006, 8, 15, 23, 59, 59), next_time.end
|
|
70
|
+
|
|
71
|
+
next_next_time = day_portion.next(:past)
|
|
72
|
+
assert_equal Time.local(2006, 8, 14, 12), next_next_time.begin
|
|
73
|
+
assert_equal Time.local(2006, 8, 14, 23, 59, 59), next_next_time.end
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
def test_pm_future_with_daylight_savings_time_boundary
|
|
77
|
+
@now = Time.local(2012,11,3,0,0,0)
|
|
78
|
+
day_portion = Chronic::RepeaterDayPortion.new(:pm)
|
|
79
|
+
day_portion.start = @now
|
|
80
|
+
|
|
81
|
+
next_time = day_portion.next(:future)
|
|
82
|
+
assert_equal Time.local(2012, 11, 3, 12), next_time.begin
|
|
83
|
+
assert_equal Time.local(2012, 11, 3, 23, 59, 59), next_time.end
|
|
84
|
+
|
|
85
|
+
next_next_time = day_portion.next(:future)
|
|
86
|
+
|
|
87
|
+
assert_equal Time.local(2012, 11, 4, 12), next_next_time.begin
|
|
88
|
+
assert_equal Time.local(2012, 11, 4, 23, 59, 59), next_next_time.end
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
def test_morning_future
|
|
92
|
+
day_portion = Chronic::RepeaterDayPortion.new(:morning)
|
|
93
|
+
day_portion.start = @now
|
|
94
|
+
|
|
95
|
+
next_time = day_portion.next(:future)
|
|
96
|
+
assert_equal Time.local(2006, 8, 17, 6), next_time.begin
|
|
97
|
+
assert_equal Time.local(2006, 8, 17, 12), next_time.end
|
|
98
|
+
|
|
99
|
+
next_next_time = day_portion.next(:future)
|
|
100
|
+
assert_equal Time.local(2006, 8, 18, 6), next_next_time.begin
|
|
101
|
+
assert_equal Time.local(2006, 8, 18, 12), next_next_time.end
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
def test_morning_past
|
|
105
|
+
day_portion = Chronic::RepeaterDayPortion.new(:morning)
|
|
106
|
+
day_portion.start = @now
|
|
107
|
+
|
|
108
|
+
next_time = day_portion.next(:past)
|
|
109
|
+
assert_equal Time.local(2006, 8, 16, 6), next_time.begin
|
|
110
|
+
assert_equal Time.local(2006, 8, 16, 12), next_time.end
|
|
111
|
+
|
|
112
|
+
next_next_time = day_portion.next(:past)
|
|
113
|
+
assert_equal Time.local(2006, 8, 15, 6), next_next_time.begin
|
|
114
|
+
assert_equal Time.local(2006, 8, 15, 12), next_next_time.end
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
def test_morning_future_with_daylight_savings_time_boundary
|
|
118
|
+
@now = Time.local(2012,11,3,0,0,0)
|
|
119
|
+
day_portion = Chronic::RepeaterDayPortion.new(:morning)
|
|
120
|
+
day_portion.start = @now
|
|
121
|
+
|
|
122
|
+
next_time = day_portion.next(:future)
|
|
123
|
+
assert_equal Time.local(2012, 11, 3, 6), next_time.begin
|
|
124
|
+
assert_equal Time.local(2012, 11, 3, 12), next_time.end
|
|
125
|
+
|
|
126
|
+
next_next_time = day_portion.next(:future)
|
|
127
|
+
|
|
128
|
+
assert_equal Time.local(2012, 11, 4, 6), next_next_time.begin
|
|
129
|
+
assert_equal Time.local(2012, 11, 4, 12), next_next_time.end
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
def test_afternoon_future
|
|
133
|
+
day_portion = Chronic::RepeaterDayPortion.new(:afternoon)
|
|
134
|
+
day_portion.start = @now
|
|
135
|
+
|
|
136
|
+
next_time = day_portion.next(:future)
|
|
137
|
+
assert_equal Time.local(2006, 8, 17, 13), next_time.begin
|
|
138
|
+
assert_equal Time.local(2006, 8, 17, 17), next_time.end
|
|
139
|
+
|
|
140
|
+
next_next_time = day_portion.next(:future)
|
|
141
|
+
assert_equal Time.local(2006, 8, 18, 13), next_next_time.begin
|
|
142
|
+
assert_equal Time.local(2006, 8, 18, 17), next_next_time.end
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
def test_afternoon_past
|
|
146
|
+
day_portion = Chronic::RepeaterDayPortion.new(:afternoon)
|
|
147
|
+
day_portion.start = @now
|
|
148
|
+
|
|
149
|
+
next_time = day_portion.next(:past)
|
|
150
|
+
assert_equal Time.local(2006, 8, 15, 13), next_time.begin
|
|
151
|
+
assert_equal Time.local(2006, 8, 15, 17), next_time.end
|
|
152
|
+
|
|
153
|
+
next_next_time = day_portion.next(:past)
|
|
154
|
+
assert_equal Time.local(2006, 8, 14, 13), next_next_time.begin
|
|
155
|
+
assert_equal Time.local(2006, 8, 14, 17), next_next_time.end
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
def test_afternoon_future_with_daylight_savings_time_boundary
|
|
159
|
+
@now = Time.local(2012,11,3,0,0,0)
|
|
160
|
+
day_portion = Chronic::RepeaterDayPortion.new(:afternoon)
|
|
161
|
+
day_portion.start = @now
|
|
162
|
+
|
|
163
|
+
next_time = day_portion.next(:future)
|
|
164
|
+
assert_equal Time.local(2012, 11, 3, 13), next_time.begin
|
|
165
|
+
assert_equal Time.local(2012, 11, 3, 17), next_time.end
|
|
166
|
+
|
|
167
|
+
next_next_time = day_portion.next(:future)
|
|
168
|
+
|
|
169
|
+
assert_equal Time.local(2012, 11, 4, 13), next_next_time.begin
|
|
170
|
+
assert_equal Time.local(2012, 11, 4, 17), next_next_time.end
|
|
171
|
+
end
|
|
172
|
+
|
|
173
|
+
def test_evening_future
|
|
174
|
+
day_portion = Chronic::RepeaterDayPortion.new(:evening)
|
|
175
|
+
day_portion.start = @now
|
|
176
|
+
|
|
177
|
+
next_time = day_portion.next(:future)
|
|
178
|
+
assert_equal Time.local(2006, 8, 16, 17), next_time.begin
|
|
179
|
+
assert_equal Time.local(2006, 8, 16, 20), next_time.end
|
|
180
|
+
|
|
181
|
+
next_next_time = day_portion.next(:future)
|
|
182
|
+
assert_equal Time.local(2006, 8, 17, 17), next_next_time.begin
|
|
183
|
+
assert_equal Time.local(2006, 8, 17, 20), next_next_time.end
|
|
184
|
+
end
|
|
185
|
+
|
|
186
|
+
def test_evening_past
|
|
187
|
+
day_portion = Chronic::RepeaterDayPortion.new(:evening)
|
|
188
|
+
day_portion.start = @now
|
|
189
|
+
|
|
190
|
+
next_time = day_portion.next(:past)
|
|
191
|
+
assert_equal Time.local(2006, 8, 15, 17), next_time.begin
|
|
192
|
+
assert_equal Time.local(2006, 8, 15, 20), next_time.end
|
|
193
|
+
|
|
194
|
+
next_next_time = day_portion.next(:past)
|
|
195
|
+
assert_equal Time.local(2006, 8, 14, 17), next_next_time.begin
|
|
196
|
+
assert_equal Time.local(2006, 8, 14, 20), next_next_time.end
|
|
197
|
+
end
|
|
198
|
+
|
|
199
|
+
def test_evening_future_with_daylight_savings_time_boundary
|
|
200
|
+
@now = Time.local(2012,11,3,0,0,0)
|
|
201
|
+
day_portion = Chronic::RepeaterDayPortion.new(:evening)
|
|
202
|
+
day_portion.start = @now
|
|
203
|
+
|
|
204
|
+
next_time = day_portion.next(:future)
|
|
205
|
+
assert_equal Time.local(2012, 11, 3, 17), next_time.begin
|
|
206
|
+
assert_equal Time.local(2012, 11, 3, 20), next_time.end
|
|
207
|
+
|
|
208
|
+
next_next_time = day_portion.next(:future)
|
|
209
|
+
|
|
210
|
+
assert_equal Time.local(2012, 11, 4, 17), next_next_time.begin
|
|
211
|
+
assert_equal Time.local(2012, 11, 4, 20), next_next_time.end
|
|
212
|
+
end
|
|
213
|
+
|
|
214
|
+
def test_night_future
|
|
215
|
+
day_portion = Chronic::RepeaterDayPortion.new(:night)
|
|
216
|
+
day_portion.start = @now
|
|
217
|
+
|
|
218
|
+
next_time = day_portion.next(:future)
|
|
219
|
+
assert_equal Time.local(2006, 8, 16, 20), next_time.begin
|
|
220
|
+
assert_equal Time.local(2006, 8, 17, 0), next_time.end
|
|
221
|
+
|
|
222
|
+
next_next_time = day_portion.next(:future)
|
|
223
|
+
assert_equal Time.local(2006, 8, 17, 20), next_next_time.begin
|
|
224
|
+
assert_equal Time.local(2006, 8, 18, 0), next_next_time.end
|
|
225
|
+
end
|
|
226
|
+
|
|
227
|
+
def test_night_past
|
|
228
|
+
day_portion = Chronic::RepeaterDayPortion.new(:night)
|
|
229
|
+
day_portion.start = @now
|
|
230
|
+
|
|
231
|
+
next_time = day_portion.next(:past)
|
|
232
|
+
assert_equal Time.local(2006, 8, 15, 20), next_time.begin
|
|
233
|
+
assert_equal Time.local(2006, 8, 16, 0), next_time.end
|
|
234
|
+
|
|
235
|
+
next_next_time = day_portion.next(:past)
|
|
236
|
+
assert_equal Time.local(2006, 8, 14, 20), next_next_time.begin
|
|
237
|
+
assert_equal Time.local(2006, 8, 15, 0), next_next_time.end
|
|
238
|
+
end
|
|
239
|
+
|
|
240
|
+
def test_night_future_with_daylight_savings_time_boundary
|
|
241
|
+
@now = Time.local(2012,11,3,0,0,0)
|
|
242
|
+
day_portion = Chronic::RepeaterDayPortion.new(:night)
|
|
243
|
+
day_portion.start = @now
|
|
244
|
+
|
|
245
|
+
next_time = day_portion.next(:future)
|
|
246
|
+
assert_equal Time.local(2012, 11, 3, 20), next_time.begin
|
|
247
|
+
assert_equal Time.local(2012, 11, 4, 0), next_time.end
|
|
248
|
+
|
|
249
|
+
next_next_time = day_portion.next(:future)
|
|
250
|
+
|
|
251
|
+
assert_equal Time.local(2012, 11, 4, 20), next_next_time.begin
|
|
252
|
+
assert_equal Time.local(2012, 11, 5, 0), next_next_time.end
|
|
253
|
+
end
|
|
254
|
+
end
|
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
require 'helper'
|
|
2
2
|
|
|
3
|
-
class TestRepeaterTime <
|
|
3
|
+
class TestRepeaterTime < TestCase
|
|
4
4
|
|
|
5
5
|
def setup
|
|
6
6
|
# Wed Aug 16 14:00:00 2006
|
|
7
7
|
@now = Time.local(2006, 8, 16, 14, 0, 0, 0)
|
|
8
8
|
end
|
|
9
9
|
|
|
10
|
+
def test_generic
|
|
11
|
+
assert_raises(ArgumentError) do
|
|
12
|
+
Chronic::RepeaterTime.new('00:01:02:03:004')
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
10
16
|
def test_next_future
|
|
11
17
|
t = Chronic::RepeaterTime.new('4:00')
|
|
12
18
|
t.start = @now
|
|
@@ -25,6 +31,12 @@ class TestRepeaterTime < Test::Unit::TestCase
|
|
|
25
31
|
|
|
26
32
|
assert_equal Time.local(2006, 8, 17, 4), t.next(:future).begin
|
|
27
33
|
assert_equal Time.local(2006, 8, 18, 4), t.next(:future).begin
|
|
34
|
+
|
|
35
|
+
t = Chronic::RepeaterTime.new('0000')
|
|
36
|
+
t.start = @now
|
|
37
|
+
|
|
38
|
+
assert_equal Time.local(2006, 8, 17, 0), t.next(:future).begin
|
|
39
|
+
assert_equal Time.local(2006, 8, 18, 0), t.next(:future).begin
|
|
28
40
|
end
|
|
29
41
|
|
|
30
42
|
def test_next_past
|
|
@@ -39,6 +51,12 @@ class TestRepeaterTime < Test::Unit::TestCase
|
|
|
39
51
|
|
|
40
52
|
assert_equal Time.local(2006, 8, 16, 13), t.next(:past).begin
|
|
41
53
|
assert_equal Time.local(2006, 8, 15, 13), t.next(:past).begin
|
|
54
|
+
|
|
55
|
+
t = Chronic::RepeaterTime.new('0:00.000')
|
|
56
|
+
t.start = @now
|
|
57
|
+
|
|
58
|
+
assert_equal Time.local(2006, 8, 16, 0), t.next(:past).begin
|
|
59
|
+
assert_equal Time.local(2006, 8, 15, 0), t.next(:past).begin
|
|
42
60
|
end
|
|
43
61
|
|
|
44
62
|
def test_type
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
require 'helper'
|
|
2
2
|
|
|
3
|
-
class TestSpan <
|
|
3
|
+
class TestSpan < TestCase
|
|
4
4
|
|
|
5
5
|
def setup
|
|
6
6
|
# Wed Aug 16 14:00:00 UTC 2006
|
|
@@ -9,7 +9,7 @@ class TestSpan < Test::Unit::TestCase
|
|
|
9
9
|
|
|
10
10
|
def test_span_width
|
|
11
11
|
span = Chronic::Span.new(Time.local(2006, 8, 16, 0), Time.local(2006, 8, 17, 0))
|
|
12
|
-
assert_equal
|
|
12
|
+
assert_equal((60 * 60 * 24), span.width)
|
|
13
13
|
end
|
|
14
14
|
|
|
15
15
|
def test_span_math
|
metadata
CHANGED
|
@@ -1,53 +1,99 @@
|
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: chronic
|
|
3
|
-
version: !ruby/object:Gem::Version
|
|
4
|
-
|
|
5
|
-
prerelease:
|
|
6
|
-
segments:
|
|
7
|
-
- 0
|
|
8
|
-
- 6
|
|
9
|
-
- 3
|
|
10
|
-
version: 0.6.3
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.10.2
|
|
11
5
|
platform: ruby
|
|
12
|
-
authors:
|
|
6
|
+
authors:
|
|
13
7
|
- Tom Preston-Werner
|
|
14
8
|
- Lee Jarvis
|
|
15
9
|
autorequire:
|
|
16
10
|
bindir: bin
|
|
17
11
|
cert_chain: []
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
12
|
+
date: 2013-09-09 00:00:00.000000000 Z
|
|
13
|
+
dependencies:
|
|
14
|
+
- !ruby/object:Gem::Dependency
|
|
15
|
+
name: rake
|
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
|
17
|
+
requirements:
|
|
18
|
+
- - '>='
|
|
19
|
+
- !ruby/object:Gem::Version
|
|
20
|
+
version: '0'
|
|
21
|
+
type: :development
|
|
22
|
+
prerelease: false
|
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
24
|
+
requirements:
|
|
25
|
+
- - '>='
|
|
26
|
+
- !ruby/object:Gem::Version
|
|
27
|
+
version: '0'
|
|
28
|
+
- !ruby/object:Gem::Dependency
|
|
29
|
+
name: simplecov
|
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
|
31
|
+
requirements:
|
|
32
|
+
- - '>='
|
|
33
|
+
- !ruby/object:Gem::Version
|
|
34
|
+
version: '0'
|
|
35
|
+
type: :development
|
|
36
|
+
prerelease: false
|
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
38
|
+
requirements:
|
|
39
|
+
- - '>='
|
|
40
|
+
- !ruby/object:Gem::Version
|
|
41
|
+
version: '0'
|
|
42
|
+
- !ruby/object:Gem::Dependency
|
|
43
|
+
name: minitest
|
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
|
45
|
+
requirements:
|
|
46
|
+
- - ~>
|
|
47
|
+
- !ruby/object:Gem::Version
|
|
48
|
+
version: '5.0'
|
|
49
|
+
type: :development
|
|
50
|
+
prerelease: false
|
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
52
|
+
requirements:
|
|
53
|
+
- - ~>
|
|
54
|
+
- !ruby/object:Gem::Version
|
|
55
|
+
version: '5.0'
|
|
56
|
+
- !ruby/object:Gem::Dependency
|
|
57
|
+
name: activesupport
|
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
|
59
|
+
requirements:
|
|
60
|
+
- - '>='
|
|
61
|
+
- !ruby/object:Gem::Version
|
|
62
|
+
version: '0'
|
|
63
|
+
type: :development
|
|
64
|
+
prerelease: false
|
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
66
|
+
requirements:
|
|
67
|
+
- - '>='
|
|
68
|
+
- !ruby/object:Gem::Version
|
|
69
|
+
version: '0'
|
|
22
70
|
description: Chronic is a natural language date/time parser written in pure Ruby.
|
|
23
|
-
email:
|
|
71
|
+
email:
|
|
24
72
|
- tom@mojombo.com
|
|
25
|
-
-
|
|
73
|
+
- ljjarvis@gmail.com
|
|
26
74
|
executables: []
|
|
27
|
-
|
|
28
75
|
extensions: []
|
|
29
|
-
|
|
30
|
-
extra_rdoc_files:
|
|
76
|
+
extra_rdoc_files:
|
|
31
77
|
- README.md
|
|
32
78
|
- HISTORY.md
|
|
33
79
|
- LICENSE
|
|
34
|
-
files:
|
|
35
|
-
- .gemtest
|
|
80
|
+
files:
|
|
36
81
|
- .gitignore
|
|
37
|
-
- .
|
|
82
|
+
- .travis.yml
|
|
38
83
|
- HISTORY.md
|
|
39
84
|
- LICENSE
|
|
40
85
|
- README.md
|
|
41
86
|
- Rakefile
|
|
42
87
|
- chronic.gemspec
|
|
43
88
|
- lib/chronic.rb
|
|
44
|
-
- lib/chronic/
|
|
89
|
+
- lib/chronic/date.rb
|
|
45
90
|
- lib/chronic/grabber.rb
|
|
46
91
|
- lib/chronic/handler.rb
|
|
47
92
|
- lib/chronic/handlers.rb
|
|
48
93
|
- lib/chronic/mini_date.rb
|
|
49
94
|
- lib/chronic/numerizer.rb
|
|
50
95
|
- lib/chronic/ordinal.rb
|
|
96
|
+
- lib/chronic/parser.rb
|
|
51
97
|
- lib/chronic/pointer.rb
|
|
52
98
|
- lib/chronic/repeater.rb
|
|
53
99
|
- lib/chronic/repeaters/repeater_day.rb
|
|
@@ -69,83 +115,79 @@ files:
|
|
|
69
115
|
- lib/chronic/scalar.rb
|
|
70
116
|
- lib/chronic/season.rb
|
|
71
117
|
- lib/chronic/separator.rb
|
|
118
|
+
- lib/chronic/sign.rb
|
|
72
119
|
- lib/chronic/span.rb
|
|
73
120
|
- lib/chronic/tag.rb
|
|
121
|
+
- lib/chronic/time.rb
|
|
74
122
|
- lib/chronic/time_zone.rb
|
|
75
123
|
- lib/chronic/token.rb
|
|
76
124
|
- test/helper.rb
|
|
77
|
-
- test/
|
|
78
|
-
- test/
|
|
79
|
-
- test/
|
|
80
|
-
- test/
|
|
81
|
-
- test/
|
|
82
|
-
- test/test_RepeaterDayName.rb
|
|
83
|
-
- test/test_RepeaterFortnight.rb
|
|
84
|
-
- test/test_RepeaterHour.rb
|
|
85
|
-
- test/test_RepeaterMinute.rb
|
|
86
|
-
- test/test_RepeaterMonth.rb
|
|
87
|
-
- test/test_RepeaterMonthName.rb
|
|
88
|
-
- test/test_RepeaterSeason.rb
|
|
89
|
-
- test/test_RepeaterTime.rb
|
|
90
|
-
- test/test_RepeaterWeek.rb
|
|
91
|
-
- test/test_RepeaterWeekday.rb
|
|
92
|
-
- test/test_RepeaterWeekend.rb
|
|
93
|
-
- test/test_RepeaterYear.rb
|
|
94
|
-
- test/test_Span.rb
|
|
95
|
-
- test/test_Token.rb
|
|
125
|
+
- test/test_chronic.rb
|
|
126
|
+
- test/test_daylight_savings.rb
|
|
127
|
+
- test/test_handler.rb
|
|
128
|
+
- test/test_mini_date.rb
|
|
129
|
+
- test/test_numerizer.rb
|
|
96
130
|
- test/test_parsing.rb
|
|
131
|
+
- test/test_repeater_day_name.rb
|
|
132
|
+
- test/test_repeater_day_portion.rb
|
|
133
|
+
- test/test_repeater_fortnight.rb
|
|
134
|
+
- test/test_repeater_hour.rb
|
|
135
|
+
- test/test_repeater_minute.rb
|
|
136
|
+
- test/test_repeater_month.rb
|
|
137
|
+
- test/test_repeater_month_name.rb
|
|
138
|
+
- test/test_repeater_season.rb
|
|
139
|
+
- test/test_repeater_time.rb
|
|
140
|
+
- test/test_repeater_week.rb
|
|
141
|
+
- test/test_repeater_weekday.rb
|
|
142
|
+
- test/test_repeater_weekend.rb
|
|
143
|
+
- test/test_repeater_year.rb
|
|
144
|
+
- test/test_span.rb
|
|
145
|
+
- test/test_token.rb
|
|
97
146
|
homepage: http://github.com/mojombo/chronic
|
|
98
|
-
licenses:
|
|
99
|
-
|
|
147
|
+
licenses:
|
|
148
|
+
- MIT
|
|
149
|
+
metadata: {}
|
|
100
150
|
post_install_message:
|
|
101
|
-
rdoc_options:
|
|
151
|
+
rdoc_options:
|
|
102
152
|
- --charset=UTF-8
|
|
103
|
-
require_paths:
|
|
153
|
+
require_paths:
|
|
104
154
|
- lib
|
|
105
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
none: false
|
|
116
|
-
requirements:
|
|
117
|
-
- - ">="
|
|
118
|
-
- !ruby/object:Gem::Version
|
|
119
|
-
hash: 3
|
|
120
|
-
segments:
|
|
121
|
-
- 0
|
|
122
|
-
version: "0"
|
|
155
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
156
|
+
requirements:
|
|
157
|
+
- - '>='
|
|
158
|
+
- !ruby/object:Gem::Version
|
|
159
|
+
version: '0'
|
|
160
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
161
|
+
requirements:
|
|
162
|
+
- - '>='
|
|
163
|
+
- !ruby/object:Gem::Version
|
|
164
|
+
version: '0'
|
|
123
165
|
requirements: []
|
|
124
|
-
|
|
125
166
|
rubyforge_project: chronic
|
|
126
|
-
rubygems_version:
|
|
167
|
+
rubygems_version: 2.0.2
|
|
127
168
|
signing_key:
|
|
128
|
-
specification_version:
|
|
169
|
+
specification_version: 4
|
|
129
170
|
summary: Natural language date/time parsing.
|
|
130
|
-
test_files:
|
|
171
|
+
test_files:
|
|
131
172
|
- test/helper.rb
|
|
132
|
-
- test/
|
|
133
|
-
- test/
|
|
134
|
-
- test/
|
|
135
|
-
- test/
|
|
136
|
-
- test/
|
|
137
|
-
- test/test_RepeaterDayName.rb
|
|
138
|
-
- test/test_RepeaterFortnight.rb
|
|
139
|
-
- test/test_RepeaterHour.rb
|
|
140
|
-
- test/test_RepeaterMinute.rb
|
|
141
|
-
- test/test_RepeaterMonth.rb
|
|
142
|
-
- test/test_RepeaterMonthName.rb
|
|
143
|
-
- test/test_RepeaterSeason.rb
|
|
144
|
-
- test/test_RepeaterTime.rb
|
|
145
|
-
- test/test_RepeaterWeek.rb
|
|
146
|
-
- test/test_RepeaterWeekday.rb
|
|
147
|
-
- test/test_RepeaterWeekend.rb
|
|
148
|
-
- test/test_RepeaterYear.rb
|
|
149
|
-
- test/test_Span.rb
|
|
150
|
-
- test/test_Token.rb
|
|
173
|
+
- test/test_chronic.rb
|
|
174
|
+
- test/test_daylight_savings.rb
|
|
175
|
+
- test/test_handler.rb
|
|
176
|
+
- test/test_mini_date.rb
|
|
177
|
+
- test/test_numerizer.rb
|
|
151
178
|
- test/test_parsing.rb
|
|
179
|
+
- test/test_repeater_day_name.rb
|
|
180
|
+
- test/test_repeater_day_portion.rb
|
|
181
|
+
- test/test_repeater_fortnight.rb
|
|
182
|
+
- test/test_repeater_hour.rb
|
|
183
|
+
- test/test_repeater_minute.rb
|
|
184
|
+
- test/test_repeater_month.rb
|
|
185
|
+
- test/test_repeater_month_name.rb
|
|
186
|
+
- test/test_repeater_season.rb
|
|
187
|
+
- test/test_repeater_time.rb
|
|
188
|
+
- test/test_repeater_week.rb
|
|
189
|
+
- test/test_repeater_weekday.rb
|
|
190
|
+
- test/test_repeater_weekend.rb
|
|
191
|
+
- test/test_repeater_year.rb
|
|
192
|
+
- test/test_span.rb
|
|
193
|
+
- test/test_token.rb
|
data/.gemtest
DELETED
|
File without changes
|
data/.yardopts
DELETED