vehicles 0.6.1 → 0.8.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/.rubocop_todo.yml +164 -0
- data/CHANGELOG.md +274 -0
- data/README.md +55 -10
- data/data/PROVENANCE-vehicles.md +12 -0
- data/data/plates/PROVENANCE.md +5 -4
- data/data/plates/_decode/at-districts.yml +287 -0
- data/data/plates/_decode/ch-cantons.yml +110 -0
- data/data/plates/_decode/cn-issuing-offices.yml +463 -0
- data/data/plates/_decode/cn-provinces.yml +614 -0
- data/data/plates/_decode/cz-kraj.yml +159 -0
- data/data/plates/_decode/dk-serial-blocks.yml +327 -0
- data/data/plates/_decode/fr-departements.yml +191 -0
- data/data/plates/_decode/gb-age-identifiers.yml +170 -0
- data/data/plates/_decode/gb-memory-tags.yml +202 -0
- data/data/plates/_decode/gr-prefectures.yml +1408 -0
- data/data/plates/_decode/hr-cities.yml +315 -0
- data/data/plates/_decode/ie-counties.yml +227 -0
- data/data/plates/_decode/in-state-codes.yml +169 -0
- data/data/plates/_decode/is-districts-1938.yml +116 -0
- data/data/plates/_decode/it-provinces.yml +348 -0
- data/data/plates/_decode/jp-office-marks.yml +960 -0
- data/data/plates/_decode/jp-use-marks.yml +205 -0
- data/data/plates/_decode/kr-authority-marks.yml +146 -0
- data/data/plates/_decode/kr-use-syllables.yml +194 -0
- data/data/plates/_decode/lu-series-order.yml +638 -0
- data/data/plates/_decode/mx-entity-series.yml +380 -0
- data/data/plates/_decode/my-index-marks.yml +271 -0
- data/data/plates/_decode/no-counties-1913.yml +148 -0
- data/data/plates/_decode/no-districts.yml +901 -0
- data/data/plates/_decode/pl-powiats.yml +567 -0
- data/data/plates/_decode/pt-trailer-services.yml +96 -0
- data/data/plates/_decode/ro-counties.yml +213 -0
- data/data/plates/_decode/se-diplomatic.yml +220 -0
- data/data/plates/_decode/si-regions.yml +123 -0
- data/data/plates/_decode/sk-districts.yml +314 -0
- data/data/plates/_decode/th-registration-elements.yml +208 -0
- data/data/plates/_decode/ua-regions.yml +393 -0
- data/data/plates/_decode/za-licence-marks.yml +215 -0
- data/data/plates/_meta/classes.yml +1 -0
- data/data/plates/_meta/separators.yml +102 -0
- data/data/plates/ad.yml +961 -0
- data/data/plates/ar.yml +762 -0
- data/data/plates/at.yml +1424 -0
- data/data/plates/au-act.yml +472 -0
- data/data/plates/au-nsw.yml +282 -0
- data/data/plates/au-nt.yml +431 -0
- data/data/plates/au-qld.yml +272 -0
- data/data/plates/au-sa.yml +248 -0
- data/data/plates/au-tas.yml +302 -0
- data/data/plates/au-vic.yml +215 -0
- data/data/plates/au-wa.yml +309 -0
- data/data/plates/be.yml +1840 -0
- data/data/plates/br.yml +1152 -0
- data/data/plates/ca-ab.yml +430 -0
- data/data/plates/ca-bc.yml +697 -0
- data/data/plates/ca-mb.yml +499 -0
- data/data/plates/ca-nb.yml +537 -0
- data/data/plates/ca-nl.yml +743 -0
- data/data/plates/ca-ns.yml +808 -0
- data/data/plates/ca-nt.yml +610 -0
- data/data/plates/ca-nu.yml +280 -0
- data/data/plates/ca-on.yml +881 -0
- data/data/plates/ca-pe.yml +592 -0
- data/data/plates/ca-qc.yml +1036 -0
- data/data/plates/ca-sk.yml +256 -0
- data/data/plates/ca-yt.yml +656 -0
- data/data/plates/ch.yml +1273 -0
- data/data/plates/cn.yml +1431 -0
- data/data/plates/cy.yml +688 -0
- data/data/plates/cz.yml +1179 -0
- data/data/plates/de.yml +553 -118
- data/data/plates/dk.yml +1647 -0
- data/data/plates/ee.yml +1275 -0
- data/data/plates/es.yml +228 -32
- data/data/plates/fi.yml +1271 -0
- data/data/plates/fr.yml +1265 -0
- data/data/plates/gb.yml +1188 -0
- data/data/plates/gr.yml +721 -0
- data/data/plates/hr.yml +860 -0
- data/data/plates/hu.yml +959 -0
- data/data/plates/ie.yml +775 -0
- data/data/plates/in.yml +1172 -0
- data/data/plates/is.yml +667 -0
- data/data/plates/it.yml +1317 -0
- data/data/plates/jp.yml +3650 -0
- data/data/plates/kr.yml +1375 -0
- data/data/plates/li.yml +1010 -0
- data/data/plates/lt.yml +879 -0
- data/data/plates/lu.yml +842 -0
- data/data/plates/lv.yml +924 -0
- data/data/plates/mc.yml +1024 -0
- data/data/plates/mt.yml +854 -0
- data/data/plates/mx.yml +1372 -0
- data/data/plates/my.yml +685 -0
- data/data/plates/nl.yml +44 -0
- data/data/plates/no.yml +1018 -0
- data/data/plates/nz.yml +1699 -0
- data/data/plates/pl.yml +1296 -0
- data/data/plates/pt.yml +847 -0
- data/data/plates/ro.yml +785 -0
- data/data/plates/se.yml +1091 -0
- data/data/plates/si.yml +1105 -0
- data/data/plates/sk.yml +1439 -0
- data/data/plates/sm.yml +1119 -0
- data/data/plates/th.yml +1150 -0
- data/data/plates/ua.yml +1672 -0
- data/data/plates/us-ak.yml +763 -0
- data/data/plates/us-al.yml +457 -0
- data/data/plates/us-ar.yml +427 -0
- data/data/plates/us-as.yml +454 -0
- data/data/plates/us-az.yml +430 -0
- data/data/plates/us-ca.yml +892 -0
- data/data/plates/us-co.yml +452 -0
- data/data/plates/us-ct.yml +427 -0
- data/data/plates/us-dc.yml +614 -0
- data/data/plates/us-de.yml +551 -0
- data/data/plates/us-fl.yml +319 -96
- data/data/plates/us-ga.yml +644 -0
- data/data/plates/us-gu.yml +658 -0
- data/data/plates/us-hi.yml +585 -0
- data/data/plates/us-ia.yml +438 -0
- data/data/plates/us-id.yml +531 -0
- data/data/plates/us-il.yml +516 -0
- data/data/plates/us-in.yml +324 -0
- data/data/plates/us-ks.yml +351 -0
- data/data/plates/us-ky.yml +770 -0
- data/data/plates/us-la.yml +568 -0
- data/data/plates/us-ma.yml +379 -0
- data/data/plates/us-md.yml +536 -0
- data/data/plates/us-me.yml +445 -0
- data/data/plates/us-mi.yml +408 -0
- data/data/plates/us-mn.yml +411 -0
- data/data/plates/us-mo.yml +356 -0
- data/data/plates/us-mp.yml +402 -0
- data/data/plates/us-ms.yml +432 -0
- data/data/plates/us-mt.yml +619 -0
- data/data/plates/us-nc.yml +602 -0
- data/data/plates/us-nd.yml +419 -0
- data/data/plates/us-ne.yml +483 -0
- data/data/plates/us-nh.yml +394 -0
- data/data/plates/us-nj.yml +547 -0
- data/data/plates/us-nm.yml +574 -0
- data/data/plates/us-nv.yml +655 -0
- data/data/plates/us-ny.yml +592 -0
- data/data/plates/us-oh.yml +404 -0
- data/data/plates/us-ok.yml +513 -0
- data/data/plates/us-or.yml +392 -0
- data/data/plates/us-pa.yml +506 -0
- data/data/plates/us-pr.yml +507 -0
- data/data/plates/us-ri.yml +445 -0
- data/data/plates/us-sc.yml +605 -0
- data/data/plates/us-sd.yml +428 -0
- data/data/plates/us-tn.yml +471 -0
- data/data/plates/us-tx.yml +535 -0
- data/data/plates/us-ut.yml +384 -0
- data/data/plates/us-va.yml +567 -0
- data/data/plates/us-vi.yml +489 -0
- data/data/plates/us-vt.yml +458 -0
- data/data/plates/us-wa.yml +484 -0
- data/data/plates/us-wi.yml +509 -0
- data/data/plates/us-wv.yml +446 -0
- data/data/plates/us-wy.yml +523 -0
- data/data/plates/va.yml +604 -0
- data/data/plates/za.yml +1141 -0
- data/data/vehicles.json +160653 -105090
- data/lib/vehicles/configuration.rb +17 -3
- data/lib/vehicles/dataset.rb +73 -18
- data/lib/vehicles/fuzzy.rb +115 -0
- data/lib/vehicles/http.rb +48 -0
- data/lib/vehicles/make.rb +36 -6
- data/lib/vehicles/mcp_server.rb +5 -5
- data/lib/vehicles/model.rb +21 -2
- data/lib/vehicles/plates/series.rb +172 -18
- data/lib/vehicles/plates/template_fill.rb +188 -0
- data/lib/vehicles/plates/templates.rb +162 -0
- data/lib/vehicles/plates.rb +12 -0
- data/lib/vehicles/providers/hosted_provider.rb +28 -55
- data/lib/vehicles/validators/vehicle_make_validator.rb +3 -1
- data/lib/vehicles/validators/vehicle_model_validator.rb +1 -1
- data/lib/vehicles/version.rb +1 -1
- data/lib/vehicles.rb +32 -16
- data/rakelib/data_refresh.rake +109 -0
- data/rakelib/plates_refresh.rake +29 -0
- data/sig/vehicles.rbs +18 -0
- metadata +164 -2
data/data/plates/nl.yml
CHANGED
|
@@ -67,6 +67,7 @@ series:
|
|
|
67
67
|
class: standard
|
|
68
68
|
categories: [car]
|
|
69
69
|
period: { start: 2000 } # 20-01-2000; open — series run until exhausted
|
|
70
|
+
matching: strict
|
|
70
71
|
format:
|
|
71
72
|
pattern: "99-LL-LL"
|
|
72
73
|
regex: '\A\d{2}-[A-Z]{2}-[A-Z]{2}\z'
|
|
@@ -118,6 +119,7 @@ series:
|
|
|
118
119
|
class: standard
|
|
119
120
|
categories: [car]
|
|
120
121
|
period: { start: 2008 } # 19-05-2008
|
|
122
|
+
matching: strict
|
|
121
123
|
format:
|
|
122
124
|
pattern: "99-LLL-9"
|
|
123
125
|
regex: '\A\d{2}-[A-Z]{3}-\d\z'
|
|
@@ -141,6 +143,7 @@ series:
|
|
|
141
143
|
class: standard
|
|
142
144
|
categories: [car]
|
|
143
145
|
period: { start: 2013 } # 05-03-2013
|
|
146
|
+
matching: strict
|
|
144
147
|
format:
|
|
145
148
|
pattern: "9-LLL-99"
|
|
146
149
|
regex: '\A\d-[A-Z]{3}-\d{2}\z'
|
|
@@ -163,6 +166,7 @@ series:
|
|
|
163
166
|
class: standard
|
|
164
167
|
categories: [car]
|
|
165
168
|
period: { start: 2015 } # 30-03-2015
|
|
169
|
+
matching: strict
|
|
166
170
|
format:
|
|
167
171
|
pattern: "LL-999-L"
|
|
168
172
|
regex: '\A[A-Z]{2}-\d{3}-[A-Z]\z'
|
|
@@ -184,6 +188,7 @@ series:
|
|
|
184
188
|
class: standard
|
|
185
189
|
categories: [car]
|
|
186
190
|
period: { start: 2019 } # 19-08-2019
|
|
191
|
+
matching: strict
|
|
187
192
|
format:
|
|
188
193
|
pattern: "L-999-LL"
|
|
189
194
|
regex: '\A[A-Z]-\d{3}-[A-Z]{2}\z'
|
|
@@ -208,6 +213,7 @@ series:
|
|
|
208
213
|
# commercials reached sidecode 11 on 13-06-2019
|
|
209
214
|
# (see nl-sidecode11-lightcommercial).
|
|
210
215
|
period: { start: 2024 } # 04-06-2024
|
|
216
|
+
matching: strict
|
|
211
217
|
format:
|
|
212
218
|
pattern: "LLL-99-L"
|
|
213
219
|
regex: '\A[A-Z]{3}-\d{2}-[A-Z]\z'
|
|
@@ -243,6 +249,7 @@ series:
|
|
|
243
249
|
class: standard
|
|
244
250
|
categories: [van]
|
|
245
251
|
period: { start: 2009 } # 26-02-2009
|
|
252
|
+
matching: strict
|
|
246
253
|
format:
|
|
247
254
|
pattern: "9-VLL-99"
|
|
248
255
|
regex: '\A\d-V[A-Z]{2}-\d{2}\z'
|
|
@@ -266,6 +273,7 @@ series:
|
|
|
266
273
|
class: standard
|
|
267
274
|
categories: [van]
|
|
268
275
|
period: { start: 2012 } # 12-12-2012
|
|
276
|
+
matching: strict
|
|
269
277
|
format:
|
|
270
278
|
pattern: "VL-999-L"
|
|
271
279
|
regex: '\AV[A-Z]-\d{3}-[A-Z]\z'
|
|
@@ -285,6 +293,7 @@ series:
|
|
|
285
293
|
class: standard
|
|
286
294
|
categories: [van]
|
|
287
295
|
period: { start: 2016 } # 14-10-2016
|
|
296
|
+
matching: strict
|
|
288
297
|
format:
|
|
289
298
|
pattern: "V-999-LL"
|
|
290
299
|
regex: '\AV-\d{3}-[A-Z]{2}\z'
|
|
@@ -304,6 +313,7 @@ series:
|
|
|
304
313
|
class: standard
|
|
305
314
|
categories: [van]
|
|
306
315
|
period: { start: 2019 } # 13-06-2019
|
|
316
|
+
matching: strict
|
|
307
317
|
format:
|
|
308
318
|
pattern: "VLL-99-L"
|
|
309
319
|
regex: '\AV[A-Z]{2}-\d{2}-[A-Z]\z'
|
|
@@ -327,6 +337,7 @@ series:
|
|
|
327
337
|
class: standard
|
|
328
338
|
categories: [van]
|
|
329
339
|
period: { start: 2024 } # 08-01-2024
|
|
340
|
+
matching: strict
|
|
330
341
|
format:
|
|
331
342
|
pattern: "V-99-LLL"
|
|
332
343
|
regex: '\AV-\d{2}-[A-Z]{3}\z'
|
|
@@ -354,6 +365,7 @@ series:
|
|
|
354
365
|
period: { start: 1994 } # 03-01-1994 — the oldest date RDW publishes
|
|
355
366
|
# for a still-listed series other than the
|
|
356
367
|
# 1951 GV block.
|
|
368
|
+
matching: strict
|
|
357
369
|
format:
|
|
358
370
|
pattern: "BL-LL-99"
|
|
359
371
|
regex: '\AB[A-Z]-[A-Z]{2}-\d{2}\z'
|
|
@@ -381,6 +393,7 @@ series:
|
|
|
381
393
|
class: standard
|
|
382
394
|
categories: [truck, bus]
|
|
383
395
|
period: { start: 2012 } # 20-07-2012
|
|
396
|
+
matching: strict
|
|
384
397
|
format:
|
|
385
398
|
pattern: "99-BLL-9"
|
|
386
399
|
regex: '\A\d{2}-B[A-Z]{2}-\d\z'
|
|
@@ -405,6 +418,7 @@ series:
|
|
|
405
418
|
class: motorcycle
|
|
406
419
|
categories: [motorcycle]
|
|
407
420
|
period: { start: 2011 } # 19-08-2011
|
|
421
|
+
matching: strict
|
|
408
422
|
format:
|
|
409
423
|
pattern: "99-ML-LL"
|
|
410
424
|
regex: '\A\d{2}-M[A-Z]-[A-Z]{2}\z'
|
|
@@ -438,6 +452,7 @@ series:
|
|
|
438
452
|
class: moped
|
|
439
453
|
categories: [moped]
|
|
440
454
|
period: { start: 2005 } # 01-09-2005
|
|
455
|
+
matching: strict
|
|
441
456
|
format:
|
|
442
457
|
pattern: "99-LLL-9"
|
|
443
458
|
regex: '\A\d{2}-[A-Z]{3}-\d\z'
|
|
@@ -475,6 +490,7 @@ series:
|
|
|
475
490
|
class: moped
|
|
476
491
|
categories: [moped]
|
|
477
492
|
period: { start: 2006 } # 11-08-2006
|
|
493
|
+
matching: strict
|
|
478
494
|
format:
|
|
479
495
|
pattern: "LL-999-L"
|
|
480
496
|
regex: '\A[A-Z]{2}-\d{3}-[A-Z]\z'
|
|
@@ -496,6 +512,7 @@ series:
|
|
|
496
512
|
class: moped
|
|
497
513
|
categories: [moped]
|
|
498
514
|
period: { start: 2008 } # 11-12-2008
|
|
515
|
+
matching: strict
|
|
499
516
|
format:
|
|
500
517
|
pattern: "L-999-LL"
|
|
501
518
|
regex: '\A[A-Z]-\d{3}-[A-Z]{2}\z'
|
|
@@ -515,6 +532,7 @@ series:
|
|
|
515
532
|
class: moped
|
|
516
533
|
categories: [moped]
|
|
517
534
|
period: { start: 2015 } # 16-01-2015 (seed said 2015 — confirmed)
|
|
535
|
+
matching: strict
|
|
518
536
|
format:
|
|
519
537
|
pattern: "LLL-99-L"
|
|
520
538
|
regex: '\A[A-Z]{3}-\d{2}-[A-Z]\z'
|
|
@@ -540,6 +558,7 @@ series:
|
|
|
540
558
|
class: moped
|
|
541
559
|
categories: [moped]
|
|
542
560
|
period: { start: 2025 } # 01-07-2025
|
|
561
|
+
matching: strict
|
|
543
562
|
format:
|
|
544
563
|
pattern: "E-99-LLL"
|
|
545
564
|
regex: '\AE-\d{2}-[A-Z]{3}\z'
|
|
@@ -572,6 +591,7 @@ series:
|
|
|
572
591
|
class: trailer
|
|
573
592
|
categories: [trailer]
|
|
574
593
|
period: { start: 1988 } # 01-10-1988
|
|
594
|
+
matching: strict
|
|
575
595
|
format:
|
|
576
596
|
pattern: "WL-99-LL"
|
|
577
597
|
regex: '\AW[A-Z]-\d{2}-[A-Z]{2}\z'
|
|
@@ -599,6 +619,7 @@ series:
|
|
|
599
619
|
class: trailer
|
|
600
620
|
categories: [semitrailer]
|
|
601
621
|
period: { start: 1988 } # 01-10-1988
|
|
622
|
+
matching: strict
|
|
602
623
|
format:
|
|
603
624
|
pattern: "OL-99-LL"
|
|
604
625
|
regex: '\AO[A-Z]-\d{2}-[A-Z]{2}\z'
|
|
@@ -634,6 +655,7 @@ series:
|
|
|
634
655
|
class: agricultural
|
|
635
656
|
categories: [tractor, machine]
|
|
636
657
|
period: { start: 2021 } # 01-12-2021
|
|
658
|
+
matching: strict
|
|
637
659
|
format:
|
|
638
660
|
pattern: "T-99-LLL"
|
|
639
661
|
regex: '\AT-\d{2}-[A-Z]{3}\z'
|
|
@@ -664,6 +686,7 @@ series:
|
|
|
664
686
|
# agricultural TRAILER / interchangeable towed
|
|
665
687
|
# equipment series (RDW's own table heading).
|
|
666
688
|
period: { start: 2021 } # 01-01-2021 (seed said 2021 — confirmed)
|
|
689
|
+
matching: strict
|
|
667
690
|
format:
|
|
668
691
|
pattern: "LLL-99-L"
|
|
669
692
|
regex: '\A[A-Z]{3}-\d{2}-[A-Z]\z'
|
|
@@ -706,6 +729,7 @@ series:
|
|
|
706
729
|
class: agricultural
|
|
707
730
|
categories: [tractor, machine]
|
|
708
731
|
period: { start: 1951 }
|
|
732
|
+
matching: strict
|
|
709
733
|
format:
|
|
710
734
|
pattern: "GV-99-99"
|
|
711
735
|
regex: '\AGV-\d{2}-\d{2}\z'
|
|
@@ -731,6 +755,7 @@ series:
|
|
|
731
755
|
class: agricultural
|
|
732
756
|
categories: [tractor, machine]
|
|
733
757
|
period: { start: 1951 }
|
|
758
|
+
matching: strict
|
|
734
759
|
format:
|
|
735
760
|
pattern: "99-99-GV"
|
|
736
761
|
regex: '\A\d{2}-\d{2}-GV\z'
|
|
@@ -753,6 +778,7 @@ series:
|
|
|
753
778
|
class: agricultural
|
|
754
779
|
categories: [tractor, machine]
|
|
755
780
|
period: { start: 1951 }
|
|
781
|
+
matching: strict
|
|
756
782
|
format:
|
|
757
783
|
pattern: "99-GV-99"
|
|
758
784
|
regex: '\A\d{2}-GV-\d{2}\z'
|
|
@@ -774,6 +800,7 @@ series:
|
|
|
774
800
|
class: agricultural
|
|
775
801
|
categories: [tractor, machine]
|
|
776
802
|
period: { start: 2016 } # 23-05-2016
|
|
803
|
+
matching: strict
|
|
777
804
|
format:
|
|
778
805
|
pattern: "9-GV-999"
|
|
779
806
|
regex: '\A\d-GV-\d{3}\z'
|
|
@@ -796,6 +823,7 @@ series:
|
|
|
796
823
|
class: agricultural
|
|
797
824
|
categories: [tractor, machine]
|
|
798
825
|
period: { start: 2019 } # 13-06-2019
|
|
826
|
+
matching: strict
|
|
799
827
|
format:
|
|
800
828
|
pattern: "999-GV-9"
|
|
801
829
|
regex: '\A\d{3}-GV-\d\z'
|
|
@@ -825,6 +853,7 @@ series:
|
|
|
825
853
|
categories: [car, van, motorcycle]
|
|
826
854
|
period: { start: 1978 }
|
|
827
855
|
period_evidence: eligibility-cutoff # NOT an issuance-start claim; see notes
|
|
856
|
+
matching: strict
|
|
828
857
|
format:
|
|
829
858
|
pattern: "LL-99-99"
|
|
830
859
|
regex: '\A[A-Z]{2}-\d{2}-\d{2}\z'
|
|
@@ -862,6 +891,7 @@ series:
|
|
|
862
891
|
categories: [car, van, motorcycle]
|
|
863
892
|
period: { start: 1978 }
|
|
864
893
|
period_evidence: eligibility-cutoff
|
|
894
|
+
matching: strict
|
|
865
895
|
format:
|
|
866
896
|
pattern: "99-99-LL"
|
|
867
897
|
regex: '\A\d{2}-\d{2}-[A-Z]{2}\z'
|
|
@@ -884,6 +914,7 @@ series:
|
|
|
884
914
|
categories: [car, van, motorcycle]
|
|
885
915
|
period: { start: 1978 }
|
|
886
916
|
period_evidence: eligibility-cutoff
|
|
917
|
+
matching: strict
|
|
887
918
|
format:
|
|
888
919
|
pattern: "99-LL-99"
|
|
889
920
|
regex: '\A\d{2}-[A-Z]{2}-\d{2}\z'
|
|
@@ -907,6 +938,12 @@ series:
|
|
|
907
938
|
categories: [tractor, machine, trailer]
|
|
908
939
|
period: { start: 1978 }
|
|
909
940
|
period_evidence: eligibility-cutoff
|
|
941
|
+
# RECALL-ONLY (PRD-PLATES §2.7): RDW exempts these vehicles from the
|
|
942
|
+
# 2+2+2 registration-shape rule, so the regex is the same fourteen-shape
|
|
943
|
+
# union as nl-export. A match is a SHAPE hit — it says the string has a
|
|
944
|
+
# shape the Netherlands has issued, not that it is a valid historic
|
|
945
|
+
# agricultural registration.
|
|
946
|
+
matching: recall-only
|
|
910
947
|
format:
|
|
911
948
|
pattern: "LLL-99-L"
|
|
912
949
|
regex: '\A(?:[A-Z]{2}-\d{2}-\d{2}|\d{2}-\d{2}-[A-Z]{2}|\d{2}-[A-Z]{2}-\d{2}|[A-Z]{2}-\d{2}-[A-Z]{2}|[A-Z]{2}-[A-Z]{2}-\d{2}|\d{2}-[A-Z]{2}-[A-Z]{2}|\d{2}-[A-Z]{3}-\d|\d-[A-Z]{3}-\d{2}|[A-Z]{2}-\d{3}-[A-Z]|[A-Z]-\d{3}-[A-Z]{2}|[A-Z]{3}-\d{2}-[A-Z]|[A-Z]-\d{2}-[A-Z]{3}|\d-[A-Z]{2}-\d{3}|\d{3}-[A-Z]{2}-\d)\z'
|
|
@@ -942,6 +979,13 @@ series:
|
|
|
942
979
|
categories: [car, van, truck, bus, motorcycle, moped, trailer, semitrailer, tractor, machine]
|
|
943
980
|
period: { start: 1951 }
|
|
944
981
|
period_evidence: earliest-underlying-series # the regime's own start is unsourced
|
|
982
|
+
# RECALL-ONLY (PRD-PLATES §2.7): the export plate carries the vehicle's
|
|
983
|
+
# OWN existing registration, so the regex is the union of all fourteen
|
|
984
|
+
# RDW sidecode shapes. A match is a SHAPE hit, never the claim that the
|
|
985
|
+
# string is a valid export registration — the union admits vowel serials
|
|
986
|
+
# the standard series reject. This is the field the vehicles gem's
|
|
987
|
+
# Match#strict? needs and could not previously read (issue #124).
|
|
988
|
+
matching: recall-only
|
|
945
989
|
format:
|
|
946
990
|
pattern: "LLL-99-L"
|
|
947
991
|
regex: '\A(?:[A-Z]{2}-\d{2}-\d{2}|\d{2}-\d{2}-[A-Z]{2}|\d{2}-[A-Z]{2}-\d{2}|[A-Z]{2}-\d{2}-[A-Z]{2}|[A-Z]{2}-[A-Z]{2}-\d{2}|\d{2}-[A-Z]{2}-[A-Z]{2}|\d{2}-[A-Z]{3}-\d|\d-[A-Z]{3}-\d{2}|[A-Z]{2}-\d{3}-[A-Z]|[A-Z]-\d{3}-[A-Z]{2}|[A-Z]{3}-\d{2}-[A-Z]|[A-Z]-\d{2}-[A-Z]{3}|\d-[A-Z]{2}-\d{3}|\d{3}-[A-Z]{2}-\d)\z'
|