date-formats 0.2.3 → 0.2.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +49 -0
- data/lib/date-formats/formats.rb +31 -2
- data/lib/date-formats/names.rb +27 -22
- data/lib/date-formats/version.rb +1 -1
- data/test/test_parse_es.rb +4 -4
- data/test/test_parse_pt.rb +12 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: baa48968774f8b6836837a91b553c7682f1ad779
|
4
|
+
data.tar.gz: 9b78d9218496470e487fdfece20bf22bdcd073e0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 93b169c1b9bb6bdd7b4a87856de4caf02f1aae80f85a3de3d00d7e62170c124799c353e898c7796678b1fbd8a17849825fdebf167b3b25f383fd6f0290874609
|
7
|
+
data.tar.gz: 2c369457cce08c866baac1cf03627d6c5c664ae1753bdd143d9b01560931ac2b77dc87a88263c76e2a718e28bab40ff5fef50d9a1a67b6f58201158ddddf4525
|
data/README.md
CHANGED
@@ -44,6 +44,54 @@ DateFormats.parse( 'Lundi 1 Janvier', lang: 'fr')
|
|
44
44
|
#=> <Date: 2019-01-01 ((2458485j,0s,0n),+0s,2299161j)>
|
45
45
|
```
|
46
46
|
|
47
|
+
Pre-configured date formats for now include:
|
48
|
+
|
49
|
+
**Base - Work for All Languages**
|
50
|
+
|
51
|
+
- `YYYY_MM_DD_hh_mm` e.g. 2020-01-19 22:00 or 2020-1-19 22:00
|
52
|
+
- `YYYY_MM_DD` e.g. 2020-01-19 or 2020-1-19
|
53
|
+
- `DD_MM_YYYY_hh_mm` e.g. 19.01.2020 22.00 or 19.1.2020 22:00
|
54
|
+
- `DD_MM_hh_mm` e.g. 19.01. 22.00 or 19.1. 22:00
|
55
|
+
- `DD_MM_YYYY` e.g. 19.01.2020 or 19.1.2020
|
56
|
+
- `DD_MM` e.g. 19.01. or 19.1.
|
57
|
+
|
58
|
+
**English (`en`)**
|
59
|
+
|
60
|
+
- `DD_MONTH_YYYY_hh_mm` e.g. 19 Jan 2020 22:00
|
61
|
+
- `MONTH_DD_YYYY_hh_mm` e.g. Jan 19 2020 22:00 or Jan 19, 2020 22:00
|
62
|
+
- `MONTH_DD_hh_mm` e.g. Jan 19 22:00
|
63
|
+
- `MONTH_DD_YYYY` e.g. Jan 19 2020 or Jan 19, 2020 or January 19, 2020
|
64
|
+
- `DAY_MONTH_DD` e.g. Sun Jan 19 or Sun, Jan 19 or Sunday, January 19
|
65
|
+
- `MONTH_DD` e.g. Jan 19 or Jan/19
|
66
|
+
- `DD_MONTH` e.g. 19 Jan or 19/Jan
|
67
|
+
|
68
|
+
**Spanish / Español (`es`)**
|
69
|
+
|
70
|
+
- `DAY_DD_MONTH_hh_mm` e.g. Dom 19 Ene 22:00 or Dom 19 Ene 22h00
|
71
|
+
- `DAY_DD_MONTH` e.g. Dom 19 Ene or Dom 19 Enero
|
72
|
+
- `DD_MONTH` e.g. 19 Ene
|
73
|
+
- `DAY_DD_MM` e.g. Dom 19.01. or Dom 19.1.
|
74
|
+
|
75
|
+
**Portuguese / Português (`pt`)**
|
76
|
+
|
77
|
+
- `DD_MM_YYYY_DAY` e.g. 19/1/2020 Domenica
|
78
|
+
- `DAY_DD_MONTH` e.g. Dom 19 Jan or Dom 19 Janeiro
|
79
|
+
- `DAY_DD_MM` e.g. Dom 19/01 or Dom 19/1
|
80
|
+
|
81
|
+
**French / Français (`fr`)**
|
82
|
+
|
83
|
+
- `DAY_DD_MONTH` e.g. Dim. 19 Janv or Dim. 19 Janvier
|
84
|
+
|
85
|
+
**Italian / Italiano (`it`)**
|
86
|
+
|
87
|
+
- `DAY_MM_DD` e.g. Dom. 19.1.
|
88
|
+
|
89
|
+
**German / Deutsch (`de`)**
|
90
|
+
|
91
|
+
- `DAY_MM_DD` e.g. So 19.1. or So 19.01.
|
92
|
+
|
93
|
+
|
94
|
+
|
47
95
|
How does it work?
|
48
96
|
The `date-formats` library uses text patterns (that is, regular expressions)
|
49
97
|
for defining and parsing new date formats.
|
@@ -122,6 +170,7 @@ Décembre Déce Déc
|
|
122
170
|
And so on.
|
123
171
|
|
124
172
|
|
173
|
+
|
125
174
|
## License
|
126
175
|
|
127
176
|
The `date-formats` scripts are dedicated to the public domain.
|
data/lib/date-formats/formats.rb
CHANGED
@@ -210,7 +210,7 @@ ES__DAY_DD_MONTH__DATE_TIME_RE = /\b
|
|
210
210
|
|
211
211
|
# e.g. Vie. 16.8. or Sáb. 17.8.
|
212
212
|
# or Vie 16.8. or Sáb 17.8.
|
213
|
-
|
213
|
+
ES__DAY_DD_MM__DATE_RE = /\b
|
214
214
|
(?<day_name>#{DAY_ES})
|
215
215
|
\.? # note: make dot optional
|
216
216
|
\s
|
@@ -259,6 +259,33 @@ PT__DD_MM_YYYY_DAY__DATE_RE = /\b
|
|
259
259
|
(?<day_name>#{DAY_PT})
|
260
260
|
\b/x
|
261
261
|
|
262
|
+
# e.g. Sáb, 13/Maio or Qui, 08/Junho
|
263
|
+
# or Sáb 13 Maio or Qui 8 Junho
|
264
|
+
PT__DAY_DD_MONTH__DATE_RE = /\b
|
265
|
+
(?<day_name>#{DAY_PT})
|
266
|
+
\.? # note: make dot optional
|
267
|
+
,? # note: allow optional comma too
|
268
|
+
\s
|
269
|
+
(?<day>\d{1,2})
|
270
|
+
(?: \/|\s )
|
271
|
+
(?<month_name>#{MONTH_PT})
|
272
|
+
\b/x
|
273
|
+
|
274
|
+
# e.g. Sáb, 29/07 or Seg, 31/07
|
275
|
+
# Sáb 29/07 or Seg 31/07
|
276
|
+
PT__DAY_DD_MM__DATE_RE = /\b
|
277
|
+
(?<day_name>#{DAY_PT})
|
278
|
+
\.? # note: make dot optional
|
279
|
+
,? # note: allow optional comma too
|
280
|
+
\s
|
281
|
+
(?<day>\d{1,2})
|
282
|
+
\/
|
283
|
+
(?<month>\d{1,2})
|
284
|
+
\b/x
|
285
|
+
|
286
|
+
|
287
|
+
|
288
|
+
|
262
289
|
|
263
290
|
# e.g. Fr. 26.7. or Sa. 27.7.
|
264
291
|
# or Fr 26.7. or Sa 27.7.
|
@@ -306,12 +333,14 @@ FORMATS_ES = [
|
|
306
333
|
[ ES__DAY_DD_MONTH__DATE_TIME_RE, '[ES_DAY_DD_MONTH_hh_mm]' ],
|
307
334
|
[ ES__DAY_DD_MONTH__DATE_RE, '[ES_DAY_DD_MONTH]' ],
|
308
335
|
[ ES__DD_MONTH__DATE_RE, '[ES_DD_MONTH]' ],
|
309
|
-
[
|
336
|
+
[ ES__DAY_DD_MM__DATE_RE, '[ES_DAY_DD_MM]' ],
|
310
337
|
]
|
311
338
|
|
312
339
|
|
313
340
|
FORMATS_PT = [
|
314
341
|
[ PT__DD_MM_YYYY_DAY__DATE_RE, '[PT_DD_MM_YYYY_DAY]' ],
|
342
|
+
[ PT__DAY_DD_MONTH__DATE_RE, '[PT_DAY_DD_MONTH]' ],
|
343
|
+
[ PT__DAY_DD_MM__DATE_RE, '[PT_DAY_DD_MM]' ],
|
315
344
|
]
|
316
345
|
|
317
346
|
FORMATS_DE = [
|
data/lib/date-formats/names.rb
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
module DateFormats
|
2
2
|
|
3
|
+
###
|
4
|
+
# sources:
|
5
|
+
## see https://web.library.yale.edu/cataloging/months
|
6
|
+
## and others
|
7
|
+
|
3
8
|
# todo: make more generic for reuse
|
4
9
|
### fix:
|
5
10
|
## use date/en.txt or en.txt etc. -- why? why not?
|
@@ -27,13 +32,13 @@ TXT
|
|
27
32
|
|
28
33
|
|
29
34
|
DAY_NAMES[:en] = <<TXT
|
30
|
-
Monday Mon
|
35
|
+
Monday Mon Mo
|
31
36
|
Tuesday Tues Tue Tu
|
32
|
-
Wednesday Wed
|
37
|
+
Wednesday Wed We
|
33
38
|
Thursday Thurs Thur Thu Th
|
34
|
-
Friday Fri
|
35
|
-
Saturday Sat
|
36
|
-
Sunday Sun
|
39
|
+
Friday Fri Fr
|
40
|
+
Saturday Sat Sa
|
41
|
+
Sunday Sun Su
|
37
42
|
TXT
|
38
43
|
|
39
44
|
|
@@ -117,18 +122,18 @@ TXT
|
|
117
122
|
|
118
123
|
|
119
124
|
MONTH_NAMES[:it] = <<TXT
|
120
|
-
Gennaio
|
121
|
-
Febbraio
|
122
|
-
Marzo
|
123
|
-
Aprile
|
124
|
-
Maggio
|
125
|
+
Gennaio Genn
|
126
|
+
Febbraio Febbr
|
127
|
+
Marzo Mar
|
128
|
+
Aprile Apr
|
129
|
+
Maggio Magg
|
125
130
|
Giugno
|
126
131
|
Luglio
|
127
|
-
Agosto
|
128
|
-
Settembre
|
129
|
-
Ottobre
|
130
|
-
Novembre
|
131
|
-
Dicembre
|
132
|
+
Agosto Ag
|
133
|
+
Settembre Sett
|
134
|
+
Ottobre Ott
|
135
|
+
Novembre Nov
|
136
|
+
Dicembre Dic
|
132
137
|
TXT
|
133
138
|
|
134
139
|
DAY_NAMES[:it] = <<TXT
|
@@ -143,18 +148,18 @@ TXT
|
|
143
148
|
|
144
149
|
|
145
150
|
MONTH_NAMES[:pt] = <<TXT
|
146
|
-
Janeiro
|
147
|
-
Fevereiro
|
151
|
+
Janeiro Jan
|
152
|
+
Fevereiro Fev
|
148
153
|
Março
|
149
154
|
Abril
|
150
155
|
Maio
|
151
156
|
Junho
|
152
157
|
Julho
|
153
158
|
Agosto
|
154
|
-
Setembro
|
155
|
-
Outubro
|
156
|
-
Novembro
|
157
|
-
Dezembro
|
159
|
+
Setembro Set
|
160
|
+
Outubro Out
|
161
|
+
Novembro Nov
|
162
|
+
Dezembro Dez
|
158
163
|
TXT
|
159
164
|
|
160
165
|
DAY_NAMES[:pt] = <<TXT
|
@@ -163,7 +168,7 @@ Terça-feira Ter
|
|
163
168
|
Quarta-feira Qua
|
164
169
|
Quinta-feira Qui
|
165
170
|
Sexta-feira Sex
|
166
|
-
Sábado Sab
|
171
|
+
Sábado Sáb Sab # note: add unaccented variant (for abbreviation) - why? why not?
|
167
172
|
Domingo Dom
|
168
173
|
TXT
|
169
174
|
|
data/lib/date-formats/version.rb
CHANGED
data/test/test_parse_es.rb
CHANGED
@@ -14,10 +14,10 @@ class TestParseEs < MiniTest::Test
|
|
14
14
|
[ '12 Ene', '2019-01-12', '[ES_DD_MONTH]' ],
|
15
15
|
[ '[12 Ene]', '2019-01-12', '[[ES_DD_MONTH]]' ],
|
16
16
|
|
17
|
-
[ 'Sáb. 17.8.', '2019-08-17', '[
|
18
|
-
[ 'Sáb. 17.08.', '2019-08-17', '[
|
19
|
-
[ 'Sáb 17.8.', '2019-08-17', '[
|
20
|
-
[ '[Sáb 17.8.]', '2019-08-17', '[[
|
17
|
+
[ 'Sáb. 17.8.', '2019-08-17', '[ES_DAY_DD_MM]' ],
|
18
|
+
[ 'Sáb. 17.08.', '2019-08-17', '[ES_DAY_DD_MM]' ],
|
19
|
+
[ 'Sáb 17.8.', '2019-08-17', '[ES_DAY_DD_MM]' ],
|
20
|
+
[ '[Sáb 17.8.]', '2019-08-17', '[[ES_DAY_DD_MM]]' ],
|
21
21
|
|
22
22
|
[ 'Sáb 5 Ene', '2019-01-05', '[ES_DAY_DD_MONTH]'],
|
23
23
|
[ 'Sáb. 05 Ene', '2019-01-05', '[ES_DAY_DD_MONTH]'],
|
data/test/test_parse_pt.rb
CHANGED
@@ -18,6 +18,18 @@ class TestParsePt < MiniTest::Test
|
|
18
18
|
[ '09/04/2003 - Quarta-feira', '2003-04-09', '[PT_DD_MM_YYYY_DAY]' ],
|
19
19
|
[ '9/4/2003 Quarta-feira', '2003-04-09', '[PT_DD_MM_YYYY_DAY]' ],
|
20
20
|
[ '[9/4/2003 Quarta-feira]', '2003-04-09', '[[PT_DD_MM_YYYY_DAY]]' ],
|
21
|
+
|
22
|
+
[ 'Sáb, 13/Maio', '2003-05-13', '[PT_DAY_DD_MONTH]' ],
|
23
|
+
[ 'Sáb 13 Maio', '2003-05-13', '[PT_DAY_DD_MONTH]' ],
|
24
|
+
|
25
|
+
[ 'Qui, 08/Junho', '2003-06-08', '[PT_DAY_DD_MONTH]' ],
|
26
|
+
[ 'Qui 8 Junho', '2003-06-08', '[PT_DAY_DD_MONTH]' ],
|
27
|
+
|
28
|
+
[ 'Sáb, 29/07', '2003-07-29', '[PT_DAY_DD_MM]' ],
|
29
|
+
[ 'Sáb 29/7', '2003-07-29', '[PT_DAY_DD_MM]' ],
|
30
|
+
|
31
|
+
[ 'Seg, 31/07', '2003-07-31', '[PT_DAY_DD_MM]' ],
|
32
|
+
[ 'Seg 31/7', '2003-07-31', '[PT_DAY_DD_MM]' ],
|
21
33
|
]
|
22
34
|
|
23
35
|
assert_dates( data, start: Date.new( 2003, 1, 1 ), lang: 'pt' )
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: date-formats
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gerald Bauer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-12-
|
11
|
+
date: 2019-12-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: logutils
|