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.
Files changed (75) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +8 -0
  3. data/.gitlab-ci.yml +14 -0
  4. data/.travis.yml +10 -0
  5. data/Gemfile +3 -0
  6. data/HISTORY.md +252 -0
  7. data/LICENSE +21 -0
  8. data/README.md +188 -0
  9. data/Rakefile +68 -0
  10. data/chronic.gemspec +25 -0
  11. data/lib/chronic.rb +155 -0
  12. data/lib/chronic/date.rb +81 -0
  13. data/lib/chronic/definition.rb +128 -0
  14. data/lib/chronic/dictionary.rb +36 -0
  15. data/lib/chronic/handler.rb +97 -0
  16. data/lib/chronic/handlers.rb +672 -0
  17. data/lib/chronic/mini_date.rb +38 -0
  18. data/lib/chronic/parser.rb +222 -0
  19. data/lib/chronic/repeaters/repeater_day.rb +54 -0
  20. data/lib/chronic/repeaters/repeater_day_name.rb +53 -0
  21. data/lib/chronic/repeaters/repeater_day_portion.rb +109 -0
  22. data/lib/chronic/repeaters/repeater_fortnight.rb +72 -0
  23. data/lib/chronic/repeaters/repeater_hour.rb +59 -0
  24. data/lib/chronic/repeaters/repeater_minute.rb +59 -0
  25. data/lib/chronic/repeaters/repeater_month.rb +80 -0
  26. data/lib/chronic/repeaters/repeater_month_name.rb +95 -0
  27. data/lib/chronic/repeaters/repeater_quarter.rb +59 -0
  28. data/lib/chronic/repeaters/repeater_quarter_name.rb +40 -0
  29. data/lib/chronic/repeaters/repeater_season.rb +111 -0
  30. data/lib/chronic/repeaters/repeater_season_name.rb +43 -0
  31. data/lib/chronic/repeaters/repeater_second.rb +43 -0
  32. data/lib/chronic/repeaters/repeater_time.rb +159 -0
  33. data/lib/chronic/repeaters/repeater_week.rb +76 -0
  34. data/lib/chronic/repeaters/repeater_weekday.rb +86 -0
  35. data/lib/chronic/repeaters/repeater_weekend.rb +67 -0
  36. data/lib/chronic/repeaters/repeater_year.rb +78 -0
  37. data/lib/chronic/season.rb +26 -0
  38. data/lib/chronic/span.rb +31 -0
  39. data/lib/chronic/tag.rb +89 -0
  40. data/lib/chronic/tags/grabber.rb +29 -0
  41. data/lib/chronic/tags/ordinal.rb +52 -0
  42. data/lib/chronic/tags/pointer.rb +28 -0
  43. data/lib/chronic/tags/repeater.rb +160 -0
  44. data/lib/chronic/tags/scalar.rb +89 -0
  45. data/lib/chronic/tags/separator.rb +123 -0
  46. data/lib/chronic/tags/sign.rb +35 -0
  47. data/lib/chronic/tags/time_zone.rb +32 -0
  48. data/lib/chronic/time.rb +40 -0
  49. data/lib/chronic/token.rb +61 -0
  50. data/lib/chronic/tokenizer.rb +38 -0
  51. data/lib/chronic/version.rb +3 -0
  52. data/test/helper.rb +12 -0
  53. data/test/test_chronic.rb +203 -0
  54. data/test/test_daylight_savings.rb +122 -0
  55. data/test/test_handler.rb +128 -0
  56. data/test/test_mini_date.rb +32 -0
  57. data/test/test_parsing.rb +1537 -0
  58. data/test/test_repeater_day_name.rb +51 -0
  59. data/test/test_repeater_day_portion.rb +254 -0
  60. data/test/test_repeater_fortnight.rb +62 -0
  61. data/test/test_repeater_hour.rb +68 -0
  62. data/test/test_repeater_minute.rb +34 -0
  63. data/test/test_repeater_month.rb +50 -0
  64. data/test/test_repeater_month_name.rb +56 -0
  65. data/test/test_repeater_quarter.rb +70 -0
  66. data/test/test_repeater_quarter_name.rb +198 -0
  67. data/test/test_repeater_season.rb +40 -0
  68. data/test/test_repeater_time.rb +88 -0
  69. data/test/test_repeater_week.rb +115 -0
  70. data/test/test_repeater_weekday.rb +55 -0
  71. data/test/test_repeater_weekend.rb +74 -0
  72. data/test/test_repeater_year.rb +69 -0
  73. data/test/test_span.rb +23 -0
  74. data/test/test_token.rb +31 -0
  75. 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
@@ -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
@@ -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