gitlab-chronic 0.10.3
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 +8 -0
- data/.gitlab-ci.yml +14 -0
- data/.travis.yml +10 -0
- data/Gemfile +3 -0
- data/HISTORY.md +252 -0
- data/LICENSE +21 -0
- data/README.md +188 -0
- data/Rakefile +68 -0
- data/chronic.gemspec +25 -0
- data/lib/chronic.rb +155 -0
- data/lib/chronic/date.rb +81 -0
- data/lib/chronic/definition.rb +128 -0
- data/lib/chronic/dictionary.rb +36 -0
- data/lib/chronic/handler.rb +97 -0
- data/lib/chronic/handlers.rb +672 -0
- data/lib/chronic/mini_date.rb +38 -0
- data/lib/chronic/parser.rb +222 -0
- data/lib/chronic/repeaters/repeater_day.rb +54 -0
- data/lib/chronic/repeaters/repeater_day_name.rb +53 -0
- data/lib/chronic/repeaters/repeater_day_portion.rb +109 -0
- data/lib/chronic/repeaters/repeater_fortnight.rb +72 -0
- data/lib/chronic/repeaters/repeater_hour.rb +59 -0
- data/lib/chronic/repeaters/repeater_minute.rb +59 -0
- data/lib/chronic/repeaters/repeater_month.rb +80 -0
- data/lib/chronic/repeaters/repeater_month_name.rb +95 -0
- data/lib/chronic/repeaters/repeater_quarter.rb +59 -0
- data/lib/chronic/repeaters/repeater_quarter_name.rb +40 -0
- data/lib/chronic/repeaters/repeater_season.rb +111 -0
- data/lib/chronic/repeaters/repeater_season_name.rb +43 -0
- data/lib/chronic/repeaters/repeater_second.rb +43 -0
- data/lib/chronic/repeaters/repeater_time.rb +159 -0
- data/lib/chronic/repeaters/repeater_week.rb +76 -0
- data/lib/chronic/repeaters/repeater_weekday.rb +86 -0
- data/lib/chronic/repeaters/repeater_weekend.rb +67 -0
- data/lib/chronic/repeaters/repeater_year.rb +78 -0
- data/lib/chronic/season.rb +26 -0
- data/lib/chronic/span.rb +31 -0
- data/lib/chronic/tag.rb +89 -0
- data/lib/chronic/tags/grabber.rb +29 -0
- data/lib/chronic/tags/ordinal.rb +52 -0
- data/lib/chronic/tags/pointer.rb +28 -0
- data/lib/chronic/tags/repeater.rb +160 -0
- data/lib/chronic/tags/scalar.rb +89 -0
- data/lib/chronic/tags/separator.rb +123 -0
- data/lib/chronic/tags/sign.rb +35 -0
- data/lib/chronic/tags/time_zone.rb +32 -0
- data/lib/chronic/time.rb +40 -0
- data/lib/chronic/token.rb +61 -0
- data/lib/chronic/tokenizer.rb +38 -0
- data/lib/chronic/version.rb +3 -0
- data/test/helper.rb +12 -0
- data/test/test_chronic.rb +203 -0
- data/test/test_daylight_savings.rb +122 -0
- data/test/test_handler.rb +128 -0
- data/test/test_mini_date.rb +32 -0
- data/test/test_parsing.rb +1537 -0
- data/test/test_repeater_day_name.rb +51 -0
- data/test/test_repeater_day_portion.rb +254 -0
- data/test/test_repeater_fortnight.rb +62 -0
- data/test/test_repeater_hour.rb +68 -0
- data/test/test_repeater_minute.rb +34 -0
- data/test/test_repeater_month.rb +50 -0
- data/test/test_repeater_month_name.rb +56 -0
- data/test/test_repeater_quarter.rb +70 -0
- data/test/test_repeater_quarter_name.rb +198 -0
- data/test/test_repeater_season.rb +40 -0
- data/test/test_repeater_time.rb +88 -0
- data/test/test_repeater_week.rb +115 -0
- data/test/test_repeater_weekday.rb +55 -0
- data/test/test_repeater_weekend.rb +74 -0
- data/test/test_repeater_year.rb +69 -0
- data/test/test_span.rb +23 -0
- data/test/test_token.rb +31 -0
- metadata +215 -0
@@ -0,0 +1,115 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
class TestRepeaterWeek < TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
@now = Time.local(2006, 8, 16, 14, 0, 0, 0)
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_next_future
|
10
|
+
weeks = Chronic::RepeaterWeek.new(:week)
|
11
|
+
weeks.start = @now
|
12
|
+
|
13
|
+
next_week = weeks.next(:future)
|
14
|
+
assert_equal Time.local(2006, 8, 20), next_week.begin
|
15
|
+
assert_equal Time.local(2006, 8, 27), next_week.end
|
16
|
+
|
17
|
+
next_next_week = weeks.next(:future)
|
18
|
+
assert_equal Time.local(2006, 8, 27), next_next_week.begin
|
19
|
+
assert_equal Time.local(2006, 9, 3), next_next_week.end
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_next_past
|
23
|
+
weeks = Chronic::RepeaterWeek.new(:week)
|
24
|
+
weeks.start = @now
|
25
|
+
|
26
|
+
last_week = weeks.next(:past)
|
27
|
+
assert_equal Time.local(2006, 8, 6), last_week.begin
|
28
|
+
assert_equal Time.local(2006, 8, 13), last_week.end
|
29
|
+
|
30
|
+
last_last_week = weeks.next(:past)
|
31
|
+
assert_equal Time.local(2006, 7, 30), last_last_week.begin
|
32
|
+
assert_equal Time.local(2006, 8, 6), last_last_week.end
|
33
|
+
end
|
34
|
+
|
35
|
+
def test_this_future
|
36
|
+
weeks = Chronic::RepeaterWeek.new(:week)
|
37
|
+
weeks.start = @now
|
38
|
+
|
39
|
+
this_week = weeks.this(:future)
|
40
|
+
assert_equal Time.local(2006, 8, 16, 15), this_week.begin
|
41
|
+
assert_equal Time.local(2006, 8, 20), this_week.end
|
42
|
+
end
|
43
|
+
|
44
|
+
def test_this_past
|
45
|
+
weeks = Chronic::RepeaterWeek.new(:week)
|
46
|
+
weeks.start = @now
|
47
|
+
|
48
|
+
this_week = weeks.this(:past)
|
49
|
+
assert_equal Time.local(2006, 8, 13, 0), this_week.begin
|
50
|
+
assert_equal Time.local(2006, 8, 16, 14), this_week.end
|
51
|
+
end
|
52
|
+
|
53
|
+
def test_offset
|
54
|
+
span = Chronic::Span.new(@now, @now + 1)
|
55
|
+
|
56
|
+
offset_span = Chronic::RepeaterWeek.new(:week).offset(span, 3, :future)
|
57
|
+
|
58
|
+
assert_equal Time.local(2006, 9, 6, 14), offset_span.begin
|
59
|
+
assert_equal Time.local(2006, 9, 6, 14, 0, 1), offset_span.end
|
60
|
+
end
|
61
|
+
|
62
|
+
def test_next_future_starting_on_monday
|
63
|
+
weeks = Chronic::RepeaterWeek.new(:week, nil, :week_start => :monday)
|
64
|
+
weeks.start = @now
|
65
|
+
|
66
|
+
next_week = weeks.next(:future)
|
67
|
+
assert_equal Time.local(2006, 8, 21), next_week.begin
|
68
|
+
assert_equal Time.local(2006, 8, 28), next_week.end
|
69
|
+
|
70
|
+
next_next_week = weeks.next(:future)
|
71
|
+
assert_equal Time.local(2006, 8, 28), next_next_week.begin
|
72
|
+
assert_equal Time.local(2006, 9, 4), next_next_week.end
|
73
|
+
end
|
74
|
+
|
75
|
+
def test_next_past_starting_on_monday
|
76
|
+
weeks = Chronic::RepeaterWeek.new(:week, nil, :week_start => :monday)
|
77
|
+
weeks.start = @now
|
78
|
+
|
79
|
+
last_week = weeks.next(:past)
|
80
|
+
assert_equal Time.local(2006, 8, 7), last_week.begin
|
81
|
+
assert_equal Time.local(2006, 8, 14), last_week.end
|
82
|
+
|
83
|
+
last_last_week = weeks.next(:past)
|
84
|
+
assert_equal Time.local(2006, 7, 31), last_last_week.begin
|
85
|
+
assert_equal Time.local(2006, 8, 7), last_last_week.end
|
86
|
+
end
|
87
|
+
|
88
|
+
def test_this_future_starting_on_monday
|
89
|
+
weeks = Chronic::RepeaterWeek.new(:week, nil, :week_start => :monday)
|
90
|
+
weeks.start = @now
|
91
|
+
|
92
|
+
this_week = weeks.this(:future)
|
93
|
+
assert_equal Time.local(2006, 8, 16, 15), this_week.begin
|
94
|
+
assert_equal Time.local(2006, 8, 21), this_week.end
|
95
|
+
end
|
96
|
+
|
97
|
+
def test_this_past_starting_on_monday
|
98
|
+
weeks = Chronic::RepeaterWeek.new(:week, nil, :week_start => :monday)
|
99
|
+
weeks.start = @now
|
100
|
+
|
101
|
+
this_week = weeks.this(:past)
|
102
|
+
assert_equal Time.local(2006, 8, 14, 0), this_week.begin
|
103
|
+
assert_equal Time.local(2006, 8, 16, 14), this_week.end
|
104
|
+
end
|
105
|
+
|
106
|
+
def test_offset_starting_on_monday
|
107
|
+
weeks = Chronic::RepeaterWeek.new(:week, nil, :week_start => :monday)
|
108
|
+
|
109
|
+
span = Chronic::Span.new(@now, @now + 1)
|
110
|
+
offset_span = weeks.offset(span, 3, :future)
|
111
|
+
|
112
|
+
assert_equal Time.local(2006, 9, 6, 14), offset_span.begin
|
113
|
+
assert_equal Time.local(2006, 9, 6, 14, 0, 1), offset_span.end
|
114
|
+
end
|
115
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
class TestRepeaterWeekday < TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
@now = Time.local(2007, 6, 11, 14, 0, 0, 0) # Mon
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_next_future
|
10
|
+
weekdays = Chronic::RepeaterWeekday.new(:weekday)
|
11
|
+
weekdays.start = @now
|
12
|
+
|
13
|
+
next1_weekday = weekdays.next(:future) # Tues
|
14
|
+
assert_equal Time.local(2007, 6, 12), next1_weekday.begin
|
15
|
+
assert_equal Time.local(2007, 6, 13), next1_weekday.end
|
16
|
+
|
17
|
+
next2_weekday = weekdays.next(:future) # Wed
|
18
|
+
assert_equal Time.local(2007, 6, 13), next2_weekday.begin
|
19
|
+
assert_equal Time.local(2007, 6, 14), next2_weekday.end
|
20
|
+
|
21
|
+
next3_weekday = weekdays.next(:future) # Thurs
|
22
|
+
assert_equal Time.local(2007, 6, 14), next3_weekday.begin
|
23
|
+
assert_equal Time.local(2007, 6, 15), next3_weekday.end
|
24
|
+
|
25
|
+
next4_weekday = weekdays.next(:future) # Fri
|
26
|
+
assert_equal Time.local(2007, 6, 15), next4_weekday.begin
|
27
|
+
assert_equal Time.local(2007, 6, 16), next4_weekday.end
|
28
|
+
|
29
|
+
next5_weekday = weekdays.next(:future) # Mon
|
30
|
+
assert_equal Time.local(2007, 6, 18), next5_weekday.begin
|
31
|
+
assert_equal Time.local(2007, 6, 19), next5_weekday.end
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_next_past
|
35
|
+
weekdays = Chronic::RepeaterWeekday.new(:weekday)
|
36
|
+
weekdays.start = @now
|
37
|
+
|
38
|
+
last1_weekday = weekdays.next(:past) # Fri
|
39
|
+
assert_equal Time.local(2007, 6, 8), last1_weekday.begin
|
40
|
+
assert_equal Time.local(2007, 6, 9), last1_weekday.end
|
41
|
+
|
42
|
+
last2_weekday = weekdays.next(:past) # Thurs
|
43
|
+
assert_equal Time.local(2007, 6, 7), last2_weekday.begin
|
44
|
+
assert_equal Time.local(2007, 6, 8), last2_weekday.end
|
45
|
+
end
|
46
|
+
|
47
|
+
def test_offset
|
48
|
+
span = Chronic::Span.new(@now, @now + 1)
|
49
|
+
|
50
|
+
offset_span = Chronic::RepeaterWeekday.new(:weekday).offset(span, 5, :future)
|
51
|
+
|
52
|
+
assert_equal Time.local(2007, 6, 18, 14), offset_span.begin
|
53
|
+
assert_equal Time.local(2007, 6, 18, 14, 0, 1), offset_span.end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,74 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
class TestRepeaterWeekend < TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
# Wed Aug 16 14:00:00 2006
|
7
|
+
@now = Time.local(2006, 8, 16, 14, 0, 0, 0)
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_next_future
|
11
|
+
weekend = Chronic::RepeaterWeekend.new(:weekend)
|
12
|
+
weekend.start = @now
|
13
|
+
|
14
|
+
next_weekend = weekend.next(:future)
|
15
|
+
assert_equal Time.local(2006, 8, 19), next_weekend.begin
|
16
|
+
assert_equal Time.local(2006, 8, 21), next_weekend.end
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_next_past
|
20
|
+
weekend = Chronic::RepeaterWeekend.new(:weekend)
|
21
|
+
weekend.start = @now
|
22
|
+
|
23
|
+
next_weekend = weekend.next(:past)
|
24
|
+
assert_equal Time.local(2006, 8, 12), next_weekend.begin
|
25
|
+
assert_equal Time.local(2006, 8, 14), next_weekend.end
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_this_future
|
29
|
+
weekend = Chronic::RepeaterWeekend.new(:weekend)
|
30
|
+
weekend.start = @now
|
31
|
+
|
32
|
+
next_weekend = weekend.this(:future)
|
33
|
+
assert_equal Time.local(2006, 8, 19), next_weekend.begin
|
34
|
+
assert_equal Time.local(2006, 8, 21), next_weekend.end
|
35
|
+
end
|
36
|
+
|
37
|
+
def test_this_past
|
38
|
+
weekend = Chronic::RepeaterWeekend.new(:weekend)
|
39
|
+
weekend.start = @now
|
40
|
+
|
41
|
+
next_weekend = weekend.this(:past)
|
42
|
+
assert_equal Time.local(2006, 8, 12), next_weekend.begin
|
43
|
+
assert_equal Time.local(2006, 8, 14), next_weekend.end
|
44
|
+
end
|
45
|
+
|
46
|
+
def test_this_none
|
47
|
+
weekend = Chronic::RepeaterWeekend.new(:weekend)
|
48
|
+
weekend.start = @now
|
49
|
+
|
50
|
+
next_weekend = weekend.this(:future)
|
51
|
+
assert_equal Time.local(2006, 8, 19), next_weekend.begin
|
52
|
+
assert_equal Time.local(2006, 8, 21), next_weekend.end
|
53
|
+
end
|
54
|
+
|
55
|
+
def test_offset
|
56
|
+
span = Chronic::Span.new(@now, @now + 1)
|
57
|
+
|
58
|
+
offset_span = Chronic::RepeaterWeekend.new(:weekend).offset(span, 3, :future)
|
59
|
+
|
60
|
+
assert_equal Time.local(2006, 9, 2), offset_span.begin
|
61
|
+
assert_equal Time.local(2006, 9, 2, 0, 0, 1), offset_span.end
|
62
|
+
|
63
|
+
offset_span = Chronic::RepeaterWeekend.new(:weekend).offset(span, 1, :past)
|
64
|
+
|
65
|
+
assert_equal Time.local(2006, 8, 12), offset_span.begin
|
66
|
+
assert_equal Time.local(2006, 8, 12, 0, 0, 1), offset_span.end
|
67
|
+
|
68
|
+
offset_span = Chronic::RepeaterWeekend.new(:weekend).offset(span, 0, :future)
|
69
|
+
|
70
|
+
assert_equal Time.local(2006, 8, 12), offset_span.begin
|
71
|
+
assert_equal Time.local(2006, 8, 12, 0, 0, 1), offset_span.end
|
72
|
+
end
|
73
|
+
|
74
|
+
end
|
@@ -0,0 +1,69 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
class TestRepeaterYear < TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
@now = Time.local(2006, 8, 16, 14, 0, 0, 0)
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_next_future
|
10
|
+
years = Chronic::RepeaterYear.new(:year)
|
11
|
+
years.start = @now
|
12
|
+
|
13
|
+
next_year = years.next(:future)
|
14
|
+
assert_equal Time.local(2007, 1, 1), next_year.begin
|
15
|
+
assert_equal Time.local(2008, 1, 1), next_year.end
|
16
|
+
|
17
|
+
next_next_year = years.next(:future)
|
18
|
+
assert_equal Time.local(2008, 1, 1), next_next_year.begin
|
19
|
+
assert_equal Time.local(2009, 1, 1), next_next_year.end
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_next_past
|
23
|
+
years = Chronic::RepeaterYear.new(:year)
|
24
|
+
years.start = @now
|
25
|
+
|
26
|
+
last_year = years.next(:past)
|
27
|
+
assert_equal Time.local(2005, 1, 1), last_year.begin
|
28
|
+
assert_equal Time.local(2006, 1, 1), last_year.end
|
29
|
+
|
30
|
+
last_last_year = years.next(:past)
|
31
|
+
assert_equal Time.local(2004, 1, 1), last_last_year.begin
|
32
|
+
assert_equal Time.local(2005, 1, 1), last_last_year.end
|
33
|
+
end
|
34
|
+
|
35
|
+
def test_this
|
36
|
+
years = Chronic::RepeaterYear.new(:year)
|
37
|
+
years.start = @now
|
38
|
+
|
39
|
+
this_year = years.this(:future)
|
40
|
+
assert_equal Time.local(2006, 8, 17), this_year.begin
|
41
|
+
assert_equal Time.local(2007, 1, 1), this_year.end
|
42
|
+
|
43
|
+
this_year = years.this(:past)
|
44
|
+
assert_equal Time.local(2006, 1, 1), this_year.begin
|
45
|
+
assert_equal Time.local(2006, 8, 16), this_year.end
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_offset
|
49
|
+
span = Chronic::Span.new(@now, @now + 1)
|
50
|
+
|
51
|
+
offset_span = Chronic::RepeaterYear.new(:year).offset(span, 3, :future)
|
52
|
+
|
53
|
+
assert_equal Time.local(2009, 8, 16, 14), offset_span.begin
|
54
|
+
assert_equal Time.local(2009, 8, 16, 14, 0, 1), offset_span.end
|
55
|
+
|
56
|
+
offset_span = Chronic::RepeaterYear.new(:year).offset(span, 10, :past)
|
57
|
+
|
58
|
+
assert_equal Time.local(1996, 8, 16, 14), offset_span.begin
|
59
|
+
assert_equal Time.local(1996, 8, 16, 14, 0, 1), offset_span.end
|
60
|
+
|
61
|
+
now = Time.local(2008, 2, 29)
|
62
|
+
span = Chronic::Span.new(now, now + 1)
|
63
|
+
offset_span = Chronic::RepeaterYear.new(:year).offset(span, 1, :past)
|
64
|
+
|
65
|
+
assert_equal Time.local(2007, 2, 28), offset_span.begin
|
66
|
+
assert_equal Time.local(2007, 2, 28, 0, 0, 1), offset_span.end
|
67
|
+
end
|
68
|
+
|
69
|
+
end
|
data/test/test_span.rb
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
class TestSpan < TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
# Wed Aug 16 14:00:00 UTC 2006
|
7
|
+
@now = Time.local(2006, 8, 16, 14, 0, 0, 0)
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_span_width
|
11
|
+
span = Chronic::Span.new(Time.local(2006, 8, 16, 0), Time.local(2006, 8, 17, 0))
|
12
|
+
assert_equal((60 * 60 * 24), span.width)
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_span_math
|
16
|
+
s = Chronic::Span.new(1, 2)
|
17
|
+
assert_equal 2, (s + 1).begin
|
18
|
+
assert_equal 3, (s + 1).end
|
19
|
+
assert_equal 0, (s - 1).begin
|
20
|
+
assert_equal 1, (s - 1).end
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
data/test/test_token.rb
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
class TestToken < TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
# Wed Aug 16 14:00:00 UTC 2006
|
7
|
+
@now = Time.local(2006, 8, 16, 14, 0, 0, 0)
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_token
|
11
|
+
token = Chronic::Token.new('foo')
|
12
|
+
assert_equal 0, token.tags.size
|
13
|
+
assert !token.tagged?
|
14
|
+
token.tag("mytag")
|
15
|
+
assert_equal 1, token.tags.size
|
16
|
+
assert token.tagged?
|
17
|
+
assert_equal String, token.get_tag(String).class
|
18
|
+
token.tag(5)
|
19
|
+
assert_equal 2, token.tags.size
|
20
|
+
token.untag(String)
|
21
|
+
assert_equal 1, token.tags.size
|
22
|
+
assert_equal 'foo', token.word
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_token_inspect_doesnt_mutate_the_word
|
26
|
+
token = Chronic::Token.new('foo')
|
27
|
+
token.inspect
|
28
|
+
assert_equal 'foo', token.word
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
metadata
ADDED
@@ -0,0 +1,215 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: gitlab-chronic
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.10.3
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Tom Preston-Werner
|
8
|
+
- Lee Jarvis
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2019-11-24 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: numerizer
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - "~>"
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '0.2'
|
21
|
+
type: :runtime
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - "~>"
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '0.2'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: rake
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - "~>"
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '10'
|
35
|
+
type: :development
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - "~>"
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '10'
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: simplecov
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - "~>"
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '0'
|
49
|
+
type: :development
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - "~>"
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '0'
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: minitest
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - "~>"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '5.0'
|
63
|
+
type: :development
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - "~>"
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '5.0'
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: activesupport
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - "~>"
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '4'
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - "~>"
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '4'
|
84
|
+
description: Chronic is a natural language date/time parser written in pure Ruby.
|
85
|
+
email:
|
86
|
+
- tom@mojombo.com
|
87
|
+
- ljjarvis@gmail.com
|
88
|
+
executables: []
|
89
|
+
extensions: []
|
90
|
+
extra_rdoc_files:
|
91
|
+
- README.md
|
92
|
+
- HISTORY.md
|
93
|
+
- LICENSE
|
94
|
+
files:
|
95
|
+
- ".gitignore"
|
96
|
+
- ".gitlab-ci.yml"
|
97
|
+
- ".travis.yml"
|
98
|
+
- Gemfile
|
99
|
+
- HISTORY.md
|
100
|
+
- LICENSE
|
101
|
+
- README.md
|
102
|
+
- Rakefile
|
103
|
+
- chronic.gemspec
|
104
|
+
- lib/chronic.rb
|
105
|
+
- lib/chronic/date.rb
|
106
|
+
- lib/chronic/definition.rb
|
107
|
+
- lib/chronic/dictionary.rb
|
108
|
+
- lib/chronic/handler.rb
|
109
|
+
- lib/chronic/handlers.rb
|
110
|
+
- lib/chronic/mini_date.rb
|
111
|
+
- lib/chronic/parser.rb
|
112
|
+
- lib/chronic/repeaters/repeater_day.rb
|
113
|
+
- lib/chronic/repeaters/repeater_day_name.rb
|
114
|
+
- lib/chronic/repeaters/repeater_day_portion.rb
|
115
|
+
- lib/chronic/repeaters/repeater_fortnight.rb
|
116
|
+
- lib/chronic/repeaters/repeater_hour.rb
|
117
|
+
- lib/chronic/repeaters/repeater_minute.rb
|
118
|
+
- lib/chronic/repeaters/repeater_month.rb
|
119
|
+
- lib/chronic/repeaters/repeater_month_name.rb
|
120
|
+
- lib/chronic/repeaters/repeater_quarter.rb
|
121
|
+
- lib/chronic/repeaters/repeater_quarter_name.rb
|
122
|
+
- lib/chronic/repeaters/repeater_season.rb
|
123
|
+
- lib/chronic/repeaters/repeater_season_name.rb
|
124
|
+
- lib/chronic/repeaters/repeater_second.rb
|
125
|
+
- lib/chronic/repeaters/repeater_time.rb
|
126
|
+
- lib/chronic/repeaters/repeater_week.rb
|
127
|
+
- lib/chronic/repeaters/repeater_weekday.rb
|
128
|
+
- lib/chronic/repeaters/repeater_weekend.rb
|
129
|
+
- lib/chronic/repeaters/repeater_year.rb
|
130
|
+
- lib/chronic/season.rb
|
131
|
+
- lib/chronic/span.rb
|
132
|
+
- lib/chronic/tag.rb
|
133
|
+
- lib/chronic/tags/grabber.rb
|
134
|
+
- lib/chronic/tags/ordinal.rb
|
135
|
+
- lib/chronic/tags/pointer.rb
|
136
|
+
- lib/chronic/tags/repeater.rb
|
137
|
+
- lib/chronic/tags/scalar.rb
|
138
|
+
- lib/chronic/tags/separator.rb
|
139
|
+
- lib/chronic/tags/sign.rb
|
140
|
+
- lib/chronic/tags/time_zone.rb
|
141
|
+
- lib/chronic/time.rb
|
142
|
+
- lib/chronic/token.rb
|
143
|
+
- lib/chronic/tokenizer.rb
|
144
|
+
- lib/chronic/version.rb
|
145
|
+
- test/helper.rb
|
146
|
+
- test/test_chronic.rb
|
147
|
+
- test/test_daylight_savings.rb
|
148
|
+
- test/test_handler.rb
|
149
|
+
- test/test_mini_date.rb
|
150
|
+
- test/test_parsing.rb
|
151
|
+
- test/test_repeater_day_name.rb
|
152
|
+
- test/test_repeater_day_portion.rb
|
153
|
+
- test/test_repeater_fortnight.rb
|
154
|
+
- test/test_repeater_hour.rb
|
155
|
+
- test/test_repeater_minute.rb
|
156
|
+
- test/test_repeater_month.rb
|
157
|
+
- test/test_repeater_month_name.rb
|
158
|
+
- test/test_repeater_quarter.rb
|
159
|
+
- test/test_repeater_quarter_name.rb
|
160
|
+
- test/test_repeater_season.rb
|
161
|
+
- test/test_repeater_time.rb
|
162
|
+
- test/test_repeater_week.rb
|
163
|
+
- test/test_repeater_weekday.rb
|
164
|
+
- test/test_repeater_weekend.rb
|
165
|
+
- test/test_repeater_year.rb
|
166
|
+
- test/test_span.rb
|
167
|
+
- test/test_token.rb
|
168
|
+
homepage: https://gitlab.com/gitlab-org/gitlab-chronic
|
169
|
+
licenses:
|
170
|
+
- MIT
|
171
|
+
metadata: {}
|
172
|
+
post_install_message:
|
173
|
+
rdoc_options:
|
174
|
+
- "--charset=UTF-8"
|
175
|
+
require_paths:
|
176
|
+
- lib
|
177
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
178
|
+
requirements:
|
179
|
+
- - ">="
|
180
|
+
- !ruby/object:Gem::Version
|
181
|
+
version: '0'
|
182
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
183
|
+
requirements:
|
184
|
+
- - ">="
|
185
|
+
- !ruby/object:Gem::Version
|
186
|
+
version: '0'
|
187
|
+
requirements: []
|
188
|
+
rubygems_version: 3.0.3
|
189
|
+
signing_key:
|
190
|
+
specification_version: 4
|
191
|
+
summary: Natural language date/time parsing.
|
192
|
+
test_files:
|
193
|
+
- test/helper.rb
|
194
|
+
- test/test_chronic.rb
|
195
|
+
- test/test_daylight_savings.rb
|
196
|
+
- test/test_handler.rb
|
197
|
+
- test/test_mini_date.rb
|
198
|
+
- test/test_parsing.rb
|
199
|
+
- test/test_repeater_day_name.rb
|
200
|
+
- test/test_repeater_day_portion.rb
|
201
|
+
- test/test_repeater_fortnight.rb
|
202
|
+
- test/test_repeater_hour.rb
|
203
|
+
- test/test_repeater_minute.rb
|
204
|
+
- test/test_repeater_month.rb
|
205
|
+
- test/test_repeater_month_name.rb
|
206
|
+
- test/test_repeater_quarter.rb
|
207
|
+
- test/test_repeater_quarter_name.rb
|
208
|
+
- test/test_repeater_season.rb
|
209
|
+
- test/test_repeater_time.rb
|
210
|
+
- test/test_repeater_week.rb
|
211
|
+
- test/test_repeater_weekday.rb
|
212
|
+
- test/test_repeater_weekend.rb
|
213
|
+
- test/test_repeater_year.rb
|
214
|
+
- test/test_span.rb
|
215
|
+
- test/test_token.rb
|