timetwister 0.3.1 → 0.4.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 +4 -4
- data/.github/workflows/ruby.yml +3 -3
- data/lib/timetwister/parser.rb +11 -1
- data/lib/timetwister/version.rb +1 -1
- data/spec/dates_spec.rb +56 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fc36713ba664a945f35f2174a7047646118b90e40ba78edede43e8a4efe891f8
|
4
|
+
data.tar.gz: b6861861782dae33194e0e4d601d316f6246b14baacb73e0b4ebe31f7007c007
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7880c0927a7a48d0cba0ac9dc52058fa3def90b986201d553fc0df9f288c7bd72c0fb2e71731892733db6ff138f1630a8edc6264fa4819106dabc7ef6fe181b7
|
7
|
+
data.tar.gz: b8d5517e5e2ae6c0457a1335f192e87d5b3b04623b6c04f499d7f98ec880bebb7bef0724fcbafb2ea3d4bd9745410bca5e216973bff95ba5ee8d8fa16daa14e4
|
data/.github/workflows/ruby.yml
CHANGED
@@ -19,15 +19,15 @@ jobs:
|
|
19
19
|
runs-on: ubuntu-latest
|
20
20
|
strategy:
|
21
21
|
matrix:
|
22
|
-
ruby-version: ['2.6', '2.7', '3.0']
|
22
|
+
ruby-version: ['2.3', '2.4', '2.5', '2.6', '2.7', '3.0']
|
23
23
|
|
24
24
|
steps:
|
25
|
-
- uses: actions/checkout@
|
25
|
+
- uses: actions/checkout@v3
|
26
26
|
- name: Set up Ruby
|
27
27
|
# To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
|
28
28
|
# change this to (see https://github.com/ruby/setup-ruby#versioning):
|
29
29
|
# uses: ruby/setup-ruby@v1
|
30
|
-
uses: ruby/setup-ruby@
|
30
|
+
uses: ruby/setup-ruby@v1
|
31
31
|
with:
|
32
32
|
ruby-version: ${{ matrix.ruby-version }}
|
33
33
|
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
|
data/lib/timetwister/parser.rb
CHANGED
@@ -56,7 +56,17 @@ class Parser
|
|
56
56
|
if c[:proc]
|
57
57
|
# clone string to avoid changing it via in-place methods used in Procs
|
58
58
|
work_string = @string.clone
|
59
|
-
|
59
|
+
|
60
|
+
# using a begin/rescue to catch dates that Date.parse errors on
|
61
|
+
begin
|
62
|
+
c[:proc].call(work_string, c[:arg])
|
63
|
+
|
64
|
+
# ArgumentError for pre-2.7.0 DateTime errors,
|
65
|
+
# Date::Error for 2.7.0 and later
|
66
|
+
rescue ArgumentError || Date::Error
|
67
|
+
@dates = { :original_string => @string, :index_dates => [], :keydate => nil, :keydate_z => nil, :date_start => nil, :date_end => nil,
|
68
|
+
:date_start_full => nil, :date_end_full => nil, :inclusive_range => nil, :certainty => nil }
|
69
|
+
end
|
60
70
|
end
|
61
71
|
break
|
62
72
|
end
|
data/lib/timetwister/version.rb
CHANGED
data/spec/dates_spec.rb
CHANGED
@@ -46,7 +46,6 @@ describe Timetwister do
|
|
46
46
|
end
|
47
47
|
|
48
48
|
it "parses ranges of full dates" do
|
49
|
-
|
50
49
|
forms = ["July 4 1776 - March 1 1789", "4 July 1776 - 1 March 1789", "1776 July 4 - 1789 March 1", "1776 4 July - 1789 1 March", "1776 4 July to 1789 1 March"]
|
51
50
|
forms.each do |f|
|
52
51
|
date = Timetwister.parse(f)
|
@@ -572,6 +571,62 @@ describe Timetwister do
|
|
572
571
|
end
|
573
572
|
end
|
574
573
|
|
574
|
+
it "DOES NOT parse nonexistent dates" do
|
575
|
+
date = Timetwister.parse('1776 September 31')
|
576
|
+
expect(date[0][:date_start]).to eq(nil)
|
577
|
+
expect(date[0][:date_start_full]).to eq(nil)
|
578
|
+
expect(date[0][:date_end]).to eq(nil)
|
579
|
+
expect(date[0][:date_end_full]).to eq(nil)
|
580
|
+
expect(date[0][:inclusive_range]).to eq(nil)
|
581
|
+
expect(date[0][:index_dates]).to eq([])
|
582
|
+
expect(date[0][:test_data]).to eq(nil)
|
583
|
+
|
584
|
+
date = Timetwister.parse('1776-11-31')
|
585
|
+
expect(date[0][:date_start]).to eq(nil)
|
586
|
+
expect(date[0][:date_start_full]).to eq(nil)
|
587
|
+
expect(date[0][:date_end]).to eq(nil)
|
588
|
+
expect(date[0][:date_end_full]).to eq(nil)
|
589
|
+
expect(date[0][:inclusive_range]).to eq(nil)
|
590
|
+
expect(date[0][:index_dates]).to eq([])
|
591
|
+
expect(date[0][:test_data]).to eq(nil)
|
592
|
+
|
593
|
+
date = Timetwister.parse('1776-11-00')
|
594
|
+
expect(date[0][:date_start]).to eq(nil)
|
595
|
+
expect(date[0][:date_start_full]).to eq(nil)
|
596
|
+
expect(date[0][:date_end]).to eq(nil)
|
597
|
+
expect(date[0][:date_end_full]).to eq(nil)
|
598
|
+
expect(date[0][:inclusive_range]).to eq(nil)
|
599
|
+
expect(date[0][:index_dates]).to eq([])
|
600
|
+
expect(date[0][:test_data]).to eq(nil)
|
601
|
+
|
602
|
+
date = Timetwister.parse('1776 whatever 31')
|
603
|
+
expect(date[0][:date_start]).to eq(nil)
|
604
|
+
expect(date[0][:date_start_full]).to eq(nil)
|
605
|
+
expect(date[0][:date_end]).to eq(nil)
|
606
|
+
expect(date[0][:date_end_full]).to eq(nil)
|
607
|
+
expect(date[0][:inclusive_range]).to eq(nil)
|
608
|
+
expect(date[0][:index_dates]).to eq([])
|
609
|
+
expect(date[0][:test_data]).to eq(nil)
|
610
|
+
|
611
|
+
date = Timetwister.parse('1776 sometime 72 - december 42 1999')
|
612
|
+
expect(date[0][:date_start]).to eq(nil)
|
613
|
+
expect(date[0][:date_start_full]).to eq(nil)
|
614
|
+
expect(date[0][:date_end]).to eq(nil)
|
615
|
+
expect(date[0][:date_end_full]).to eq(nil)
|
616
|
+
expect(date[0][:inclusive_range]).to eq(nil)
|
617
|
+
expect(date[0][:index_dates]).to eq([])
|
618
|
+
expect(date[0][:test_data]).to eq(nil)
|
619
|
+
|
620
|
+
date = Timetwister.parse('just absolute garbage')
|
621
|
+
expect(date[0][:date_start]).to eq(nil)
|
622
|
+
expect(date[0][:date_start_full]).to eq(nil)
|
623
|
+
expect(date[0][:date_end]).to eq(nil)
|
624
|
+
expect(date[0][:date_end_full]).to eq(nil)
|
625
|
+
expect(date[0][:inclusive_range]).to eq(nil)
|
626
|
+
expect(date[0][:index_dates]).to eq([])
|
627
|
+
expect(date[0][:test_data]).to eq(nil)
|
628
|
+
end
|
629
|
+
|
575
630
|
it "parses lists of years" do
|
576
631
|
date = Timetwister.parse("1776, 1789, 1812")
|
577
632
|
expect(date[0][:date_start]).to eq("1776")
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: timetwister
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alex Duryee
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-03-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|