historical_dating 1.5.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: 8d4c906bc72a0b96c769243f6b025b0f15b6d0e96293f0a2b715706f80ff00e7
4
- data.tar.gz: db559bafccbefa59ed6b24ff8a3d5797e197f29a323860a405fab056fb959d94
3
+ metadata.gz: ea9f6d3ea5c9989b77256a1a935b671fcfea3670e45b83120c40f0f7012c3708
4
+ data.tar.gz: 9dcf1c375641b46cadb8268a60bf37650f5775be48f6e58fdb5d6ad8c222fa39
5
5
  SHA512:
6
- metadata.gz: 61d0cbd348f836dd2bfb9e1b07ea7c5042534bbdfdfb7d0333e97f8332548d53d7668ec2606582e37acaece60fc8558257c89b21dd6504b7d544828d5aa544a0
7
- data.tar.gz: 7b72d6a0d078730008dede42c8df257c20fdd43221d80eab32c605abb2d44b5632a3ba901eeea72624b21bc0582ae536c0f0a4840a9649b13c32f41cea290a9b
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.5.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.7)
18
+ concurrent-ruby (1.1.9)
19
19
  diff-lcs (1.4.4)
20
- i18n (1.8.5)
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.8)
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.1.4
57
+ 2.2.30
@@ -50,18 +50,18 @@ class HistoricalDating::Parser < Parslet::Parser
50
50
  str('jh')
51
51
  }
52
52
  rule(:approx){ str('ca.') | str('Ca.') | str('ca') | str('um') | str('Um') | str('circa') }
53
- rule(:unknown){ str('?') }
53
+ rule(:unknown){ str('?') | str('unbekannt') | str('onbekend') }
54
54
  rule(:to_characters){
55
- str('bis') | str('-') | str('/') | str('und')
55
+ str('bis') | str('-') | str('–') | str('/') | str('und')
56
56
  }
57
57
  rule(:to_two_digit_year){
58
58
  (space >> to_characters >> space) |
59
59
  (to_characters >> space) |
60
60
  (space >> to_characters) |
61
- str('/')
61
+ str('/') | str('-')
62
62
  }
63
63
  rule(:to){
64
- to_two_digit_year | str('-')
64
+ to_two_digit_year | str('-') | str('–')
65
65
  }
66
66
  rule(:before){ (str('vor') | str('Vor') | str('before')) >> space }
67
67
  rule(:after){ (str('Nach') | str('nach') | str('ab') | str('after')) >> space }
@@ -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'] }
@@ -91,7 +99,7 @@ class HistoricalDating::Parser < Parslet::Parser
91
99
  rule(:century){
92
100
  (approx >> space).maybe.as(:approx) >>
93
101
  natural_number.as(:num) >>
94
- ((str('.').as(:cd) >> (space >> century_string.as(:cs) >> (space >> acbc).maybe.as(:acbc)).maybe) |
102
+ ((str('.').as(:cd) >> space.maybe >> century_string.as(:cs).maybe >> space.maybe >> acbc.maybe.as(:acbc)) |
95
103
  (space >> century_string.as(:cs) >> (space >> acbc).maybe.as(:acbc)))
96
104
  }
97
105
  rule(:century_number){
@@ -102,15 +110,15 @@ class HistoricalDating::Parser < Parslet::Parser
102
110
  }
103
111
  rule(:century_part){ part.as(:part) >> space >> positive_number.as(:num) >> str('.') >> space >> century_string.as(:cs) >> (space >> acbc).maybe.as(:acbc) }
104
112
  rule(:european_date){
105
- (day.as(:day) >> (str('.') | str('-')) >>
113
+ (day.as(:day) >> (str('.') | str('-') | str('/')) >>
106
114
  month.as(:month) >>
107
- (str('.') | str('-')) >>
115
+ (str('.') | str('-') | str('/')) >>
108
116
  whole_number.as(:yearnum)) |
109
117
  (month.as(:month) >>
110
- (str('.') | str('-')) >>
118
+ (str('.') | str('-') | str('/')) >>
111
119
  whole_number.as(:yearnum))
112
120
  }
113
- rule(:machine_date){ whole_number.as(:yearnum) >> (str('.') | str('-')) >> month.as(:month) >> ((str('.') | str('-')) >> day.as(:day)).maybe }
121
+ rule(:machine_date){ whole_number.as(:yearnum) >> (str('.') | str('-') | str('–')) >> month.as(:month) >> (str('.') | str('-')) >> day.as(:day) }
114
122
  rule(:date){ european_date | machine_date }
115
123
  rule(:date_interval){ date.as(:from) >> to >> date.as(:to) }
116
124
  rule(:century_interval){
@@ -124,10 +132,8 @@ class HistoricalDating::Parser < Parslet::Parser
124
132
  rule(:year_interval){
125
133
  prefix.maybe >>
126
134
  (year | unknown).as(:from) >>
127
- ((to >>
128
- (more_than_two_digit_year | unknown).as(:to)) |
129
- (to_two_digit_year >>
130
- two_digit_year.as(:to)))
135
+ ((to >> (more_than_two_digit_year | unknown).as(:to)) |
136
+ (to_two_digit_year >> two_digit_year.as(:to)))
131
137
  }
132
138
  rule(:before_century){ before >> century.as(:century) }
133
139
 
@@ -145,7 +151,8 @@ class HistoricalDating::Parser < Parslet::Parser
145
151
  century_part.as(:century_part) |
146
152
  century.as(:century) |
147
153
  date.as(:date) |
148
- year.as(:year)
154
+ year.as(:year) |
155
+ uncertain_from_range.as(:special)
149
156
  }
150
157
 
151
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.5.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.5.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: 2020-11-30 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: []