historical_dating 1.8.0 → 1.9.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6a00cb6bc3975511c1024df18f2aeaefe6fd0b11f6f850f78b4e61aac88b8c2b
4
- data.tar.gz: a5fc6b15f83541d095d8a41f43a948f16425ea93c0e1d699ad31bbd0d3193667
3
+ metadata.gz: ea9f6d3ea5c9989b77256a1a935b671fcfea3670e45b83120c40f0f7012c3708
4
+ data.tar.gz: 9dcf1c375641b46cadb8268a60bf37650f5775be48f6e58fdb5d6ad8c222fa39
5
5
  SHA512:
6
- metadata.gz: e17156f25a2517c1fe3a4cb28476697a0ed327bdce8411ce995c7b5f2695b32596041f649a1071991e2fa88531cb0b2429e69ce0707039c5a515d787813f89b4
7
- data.tar.gz: 0e08c630c58bb7bee22172548b6137040c073bf8f3d2e1f619b4aa11fbe86a65bd5a7593a1b05ec9ed80f64f243e4cc6ba48610103cee48f640734f4f5778831
6
+ metadata.gz: 4d39a07f5744036e7e5304e5d94f9548bff69f84cabdda11e19d9271538b9a674b0e1cc576463b2327ddbf337f1dce449357b386472f39d4152f0603f9ed6324
7
+ data.tar.gz: 7aad71e45279f25a1d7b739a6bf656e78dcf2831178c54ebe32804f8b5499c1a16c4915d993cd4574678bc58c4d23732207da1039ddf99da789c4e523da47a5d
data/Gemfile.lock CHANGED
@@ -1,23 +1,23 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- historical_dating (1.8.0)
4
+ historical_dating (1.9.0)
5
5
  activesupport (>= 3.0.0)
6
6
  parslet (~> 2.0.0)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- activesupport (6.0.3.4)
11
+ activesupport (6.1.4.1)
12
12
  concurrent-ruby (~> 1.0, >= 1.0.2)
13
- i18n (>= 0.7, < 2)
14
- minitest (~> 5.1)
15
- tzinfo (~> 1.1)
16
- zeitwerk (~> 2.2, >= 2.2.2)
13
+ i18n (>= 1.6, < 2)
14
+ minitest (>= 5.1)
15
+ tzinfo (~> 2.0)
16
+ zeitwerk (~> 2.3)
17
17
  coderay (1.1.3)
18
- concurrent-ruby (1.1.8)
18
+ concurrent-ruby (1.1.9)
19
19
  diff-lcs (1.4.4)
20
- i18n (1.8.9)
20
+ i18n (1.8.11)
21
21
  concurrent-ruby (~> 1.0)
22
22
  method_source (1.0.0)
23
23
  minitest (5.14.1)
@@ -39,10 +39,9 @@ GEM
39
39
  diff-lcs (>= 1.2.0, < 2.0)
40
40
  rspec-support (~> 3.9.0)
41
41
  rspec-support (3.9.3)
42
- thread_safe (0.3.6)
43
- tzinfo (1.2.9)
44
- thread_safe (~> 0.1)
45
- zeitwerk (2.4.1)
42
+ tzinfo (2.0.4)
43
+ concurrent-ruby (~> 1.0)
44
+ zeitwerk (2.4.2)
46
45
 
47
46
  PLATFORMS
48
47
  ruby
@@ -55,4 +54,4 @@ DEPENDENCIES
55
54
  rspec (~> 3.9.0)
56
55
 
57
56
  BUNDLED WITH
58
- 2.2.8
57
+ 2.2.30
@@ -81,6 +81,14 @@ class HistoricalDating::Parser < Parslet::Parser
81
81
  str('4. Viertel')
82
82
  }
83
83
 
84
+ # Special cases / conflicts with existing rules
85
+
86
+ rule(:uncertain_from_range){
87
+ natural_number.as(:from_year) >> str('/') >> whole_number >>
88
+ space.maybe >> to_characters >> space.maybe >>
89
+ natural_number.as(:to_year)
90
+ }
91
+
84
92
  # Dating
85
93
 
86
94
  rule(:day){ match['1-2'] >> match['0-9'] | str('3') >> match['0-1'] | match['1-9'] | str('0') >> match['1-9'] }
@@ -143,7 +151,8 @@ class HistoricalDating::Parser < Parslet::Parser
143
151
  century_part.as(:century_part) |
144
152
  century.as(:century) |
145
153
  date.as(:date) |
146
- year.as(:year)
154
+ year.as(:year) |
155
+ uncertain_from_range.as(:special)
147
156
  }
148
157
 
149
158
  root(:dating)
@@ -65,6 +65,20 @@ class HistoricalDating::Transform < Parslet::Transform
65
65
  end
66
66
  end
67
67
 
68
+ # rule(from_year: simple(:from_year), to_year: simple(:to_year), acbc: simple(:acbc)) do
69
+ # if acbc.nil? || acbc.match(/(nach|n.) (Chr.|Christus)/)
70
+ # {
71
+ # :from => Date.new(from_year.to_i, 1, 1),
72
+ # :to => Date.new(to_year.to_i, 12, 31)
73
+ # }
74
+ # else
75
+ # {
76
+ # :from => Date.new(to_year.to_i * -1, 1, 1),
77
+ # :to => Date.new(from_year.to_i * -1, 12, 31)
78
+ # }
79
+ # end
80
+ # end
81
+
68
82
  rule(:day => simple(:day), :month => simple(:month), :yearnum => simple(:yearnum)) do
69
83
  if !Date.leap?(yearnum.to_i) && month.to_i == 2 && day.to_i == 29
70
84
  raise HistoricalDating::Error.new('not_leap_year', year: yearnum.to_i)
@@ -143,6 +157,13 @@ class HistoricalDating::Transform < Parslet::Transform
143
157
  end
144
158
  end
145
159
 
160
+ rule(special: subtree(:a)) do
161
+ result = {
162
+ from: Date.new(a[:from_year].to_i, 1, 1),
163
+ to: Date.new(a[:to_year].to_i, 12, 31)
164
+ }
165
+ end
166
+
146
167
  def self.ac?(acbc)
147
168
  acbc.nil? || acbc.match(/(nach|n.) (Chr.|Christus)/) || acbc.match(/AC|Ac|Anno Domini|A. D.|AD/)
148
169
  end
@@ -1,3 +1,3 @@
1
1
  module HistoricalDating
2
- VERSION = "1.8.0"
2
+ VERSION = "1.9.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: historical_dating
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.0
4
+ version: 1.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Moritz Schepp
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-03-03 00:00:00.000000000 Z
11
+ date: 2021-11-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parslet
@@ -100,7 +100,7 @@ metadata:
100
100
  homepage_uri: https://github.com/wendig-ou/historical_dating
101
101
  source_code_uri: https://github.com/wendig-ou/historical_dating
102
102
  changelog_uri: https://github.com/wendig-ou/historical_dating/blob/master/CHANGELOG.md
103
- post_install_message:
103
+ post_install_message:
104
104
  rdoc_options: []
105
105
  require_paths:
106
106
  - lib
@@ -115,8 +115,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
115
115
  - !ruby/object:Gem::Version
116
116
  version: '0'
117
117
  requirements: []
118
- rubygems_version: 3.0.3
119
- signing_key:
118
+ rubygems_version: 3.1.6
119
+ signing_key:
120
120
  specification_version: 4
121
121
  summary: Parse human historical datings
122
122
  test_files: []