license_plate_validator 1.2.0 → 2.0.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: e5410ab6ff6ba06432f84418f8f468a25abf081c
4
- data.tar.gz: 569f7247789876b239bafeda9978f563ab89e7fd
2
+ SHA256:
3
+ metadata.gz: debcc3278367e4f15a34e18e2ebe01569722f3c86afa6d3dfa8b5417dd00294b
4
+ data.tar.gz: 46f9c8452ff3c94bdde69188452c868ebbe8ee988a2c716271e81a6f0b606a18
5
5
  SHA512:
6
- metadata.gz: 5ebc4e2aa79baa457bcd8561cc32b5ec40ce1d2c7290a40780d6c1cadc2434552a6db08a5cc1bae18d32dd3f6d19c8e3bea3cb58aca0749af6c15d4d1d553d6c
7
- data.tar.gz: 6794cbfee6d307b02357ea69b36aeffbde7f352e7028410d7713cd3e4e770088e69d9b99870154d407228735a5dd39cb5a34d609ad0103f9550a0b508d46aa7b
6
+ metadata.gz: dd129c0724b45e7db796c78dcbb9f18e7c53026511e6f3d5fd18179280f9caddee3b36eb6db34d047c754e554140e76acecf7d0fdc01190a16b6b8ec7449c86d
7
+ data.tar.gz: f29cf03fdb09371a7c9f329d7a870dbe9a4803212ef9d0abc299f8c2a942177923ddf98307e01712bce1732898096edb0eadad0ee9c4e93fb2ee90d0892ffaac
@@ -0,0 +1,29 @@
1
+ name: Release to Rubygems
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - v*
7
+
8
+ permissions:
9
+ contents: read
10
+
11
+ jobs:
12
+ push:
13
+ if: github.repository == 'ariejan/license_plate_validator'
14
+ runs-on: ubuntu-latest
15
+
16
+ permissions:
17
+ contents: write
18
+ id-token: write
19
+
20
+ steps:
21
+ - uses: actions/checkout@v4
22
+ - name: Set up Ruby
23
+ uses: ruby/setup-ruby@v1
24
+ with:
25
+ bundler-cache: true
26
+ ruby-version: ruby
27
+
28
+ # Release
29
+ - uses: rubygems/release-gem@v1
@@ -0,0 +1,47 @@
1
+ name: Ruby CI
2
+
3
+ on:
4
+ push:
5
+ branches: [ master ]
6
+ pull_request:
7
+ branches: [ master ]
8
+
9
+ jobs:
10
+ test:
11
+ runs-on: ubuntu-latest
12
+
13
+ strategy:
14
+ matrix:
15
+ ruby-version:
16
+ - 3.1
17
+ - 3.2
18
+ - 3.3
19
+ - 3.4
20
+ gemfile:
21
+ - gemfiles/Gemfile.ruby
22
+ - gemfiles/Gemfile.rails7.0
23
+ - gemfiles/Gemfile.rails7.1
24
+ - gemfiles/Gemfile.rails7.2
25
+ - gemfiles/Gemfile.rails8.0
26
+ exclude:
27
+ - ruby-version: 3.1
28
+ gemfile: gemfiles/Gemfile.rails8.0
29
+
30
+ steps:
31
+ - uses: actions/checkout@v4
32
+
33
+ - name: Set up Ruby
34
+ uses: ruby/setup-ruby@v1
35
+ with:
36
+ ruby-version: ${{ matrix.ruby-version }}
37
+
38
+ - name: Install dependencies
39
+ run: |
40
+ gem install bundler
41
+ bundle install --gemfile=${{ matrix.gemfile }}
42
+
43
+ - name: Run tests
44
+ run: |
45
+ bundle exec rspec
46
+ env:
47
+ BUNDLE_GEMFILE: ${{ matrix.gemfile }}
data/CHANGELOG CHANGED
@@ -1,12 +1,23 @@
1
- 1.2.0 - 2014-07-28
1
+ # CHANGELOG
2
2
 
3
- * German license plate support
4
- * German language support
3
+ ## 2.0.1 - 2025-01-01
5
4
 
6
- 1.1.1 - 2014-04-25
5
+ - Add support for German E-license plates - @Lisztos
7
6
 
8
- * Fix i18n key
7
+ ## 2.0.0 - 2024-09-24
9
8
 
10
- 1.0 - 2013-04-23
9
+ - Update dependencies; this may break older Ruby (< 3.1) and Rails (< 7.x) integrations.
10
+ - Add new NL license plate formats - @edwardmp
11
11
 
12
- * Initial release with Dutch license plate support
12
+ ## 1.2.0 - 2014-07-28
13
+
14
+ - German license plate support
15
+ - German language support
16
+
17
+ ## 1.1.1 - 2014-04-25
18
+
19
+ - Fix i18n key
20
+
21
+ ## 1.0 - 2013-04-23
22
+
23
+ - Initial release with Dutch license plate support
data/README.md CHANGED
@@ -1,13 +1,13 @@
1
1
  # License Plate Validator
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/license_plate_validator.png)](http://badge.fury.io/rb/license_plate_validator)
4
- [![Build Status](https://travis-ci.org/ariejan/license_plate_validator.png?branch=master)](https://travis-ci.org/ariejan/license_plate_validator)
4
+ [![Ruby CI](https://github.com/ariejan/license_plate_validator/actions/workflows/test.yml/badge.svg)](https://github.com/ariejan/license_plate_validator/actions)
5
5
 
6
6
  This gem allows you to easily valdiate license plate fields to be valid
7
7
  license plates.
8
8
 
9
9
  We're planning on supporting multiple countries, but at this time we can
10
- only validate Dutch license plates.
10
+ only validate Dutch and German license plates.
11
11
 
12
12
  ## Features
13
13
 
@@ -40,7 +40,7 @@ Or install it yourself as:
40
40
  LicensePlateValidator.new("SBA 5226", country: :nl).valid?
41
41
  #=> false
42
42
 
43
- ### Rails 3.x / 4.x
43
+ ### Ruby on Rails support
44
44
 
45
45
  You can use LicensePlateValidator with any ActiveModel class, including
46
46
  ActiveRecord models:
@@ -102,6 +102,7 @@ specs.
102
102
  ## Contributor
103
103
 
104
104
  * Pascal Widdershoven - for the original regexes for Dutch license plate numbers.
105
+ * Edward Poot - for adding new RDW approved license plate schemes
105
106
  * Marcus Ilgner, evopark - for german license plates
106
107
 
107
108
  ## License
data/RELEASING.md ADDED
@@ -0,0 +1,8 @@
1
+ ## Releasing
2
+
3
+ 1. Update version file in `lib/license_plate_validator/version.rb` and run `bundle install`.
4
+ 1. Update `CHANGELOG` to reflect the changes in this release.
5
+ 1. Commit changes to `master`.
6
+ 1. Tag the release: `git tag -s vVERSION`
7
+ 1. Push changes: `git push && git push --tags`
8
+ 1. That's is. Github Actions will release the gem to Rubygems.org
@@ -0,0 +1,8 @@
1
+ source "https://rubygems.org"
2
+
3
+ gem "activemodel", "~> 7.0.0"
4
+ gem "rspec", "~> 3.13.0"
5
+ gem "rake"
6
+
7
+ # Pin concurrent-ruby, because >= 1.3.5 is not compatible with ActiveModel 7
8
+ gem 'concurrent-ruby', '1.3.4'
@@ -0,0 +1,5 @@
1
+ source "https://rubygems.org"
2
+
3
+ gem "activemodel", "~> 7.1.0"
4
+ gem "rspec", "~> 3.13.0"
5
+ gem "rake"
@@ -0,0 +1,5 @@
1
+ source "https://rubygems.org"
2
+
3
+ gem "activemodel", "~> 7.2.0"
4
+ gem "rspec", "~> 3.13.0"
5
+ gem "rake"
@@ -0,0 +1,5 @@
1
+ source "https://rubygems.org"
2
+
3
+ gem "activemodel", "~> 8.0.0"
4
+ gem "rspec", "~> 3.13.0"
5
+ gem "rake"
@@ -1,4 +1,4 @@
1
1
  source "https://rubygems.org"
2
2
 
3
- gem "rspec", "~> 2.14.0"
3
+ gem "rspec", "~> 3.13.0"
4
4
  gem "rake"
@@ -1,3 +1,3 @@
1
1
  class LicensePlateValidator
2
- VERSION = "1.2.0"
2
+ VERSION = '2.0.1'
3
3
  end
@@ -12,7 +12,11 @@ class LicensePlateValidator
12
12
  /^([0-9]{2})-?([a-zA-Z]{3})-?([0-9]{1})$/,
13
13
  /^([0-9]{1})-?([a-zA-Z]{3})-?([0-9]{2})$/,
14
14
  /^([a-zA-Z]{2})-?([0-9]{3})-?([a-zA-Z]{1})$/,
15
- /^([a-zA-Z]{1})-?([0-9]{3})-?([a-zA-Z]{2})$/
15
+ /^([a-zA-Z]{1})-?([0-9]{3})-?([a-zA-Z]{2})$/,
16
+ /^([a-zA-Z]{3})-?([0-9]{2})-?([a-zA-Z])$/,
17
+ /^([0-9]{3})-?([a-zA-Z]{2})-?([0-9])$/,
18
+ /^([a-zA-Z])-?([0-9]{2})-?([a-zA-Z]{3})$/,
19
+ /^([0-9])-?([a-zA-Z]{2})-?([0-9]{3})$/
16
20
  ],
17
21
  # Germany
18
22
  de: [
@@ -23,7 +27,7 @@ class LicensePlateValidator
23
27
  # 2. a 2-3-digit-number (country identifier) followed by 1-3 digits
24
28
  # diplomatic license plates can be followed by a single letter
25
29
  # regular license plates can be followed by an 'H' for oldtimers
26
- /^(A|AA|AB|ABG|ABI|AC|AE|AD|AF|AIC|AK|ALF|AM|AN|ANA|ANK|AÖ|AP|APD|ARN|ART|AS|ASL|ASZ|AT|AU|AUR|AW|AZ|AZE|B|BA|BAD|BAR|BB|BBG|BC|BCH|BD|BED|BER|BF|BGL|BI|BID|BIN|BIR|BIT|BIW|BK|BKS|BL|BLB|BLK|BM|BN|BNA|BO|BÖ|BOR|BOT|BRA|BRB|BRG|BRL|BRV|BS|BT|BTF|BÜD|BÜS|BÜZ|BW|BWL|BYL|BZ|C|CA|CAS|CB|CE|CHA|CLP|CLZ|CO|COC|COE|CUX|CW|D|DA|DAH|DAN|DAU|DB|DBR|DD|DE|DEG|DEL|DGF|DH|DI|DIN|DL|DLG|DM|DN|DO|DON|DU|DÜW|DW|DZ|E|EA|EB|EBE|ECK|ED|EE|EF|EH|EI|EIC|EIL|EIN|EIS|EL|EM|EMD|EMS|EN|ER|ERB|ERH|ERZ|ES|ESW|EU|EW|F|FB|FD|FDS|FF|FFB|FG|FI|FL|FLO|FN|FO|FOR|FR|FRG|FRI|FRW|FS|FT|FTL|FÜ|G|GA|GAP|GC|GD|GDB|GE|GER|GEO|GF|GG|GHA|GHC|GI|GL|GLA|GM|GMN|GN|GNT|GÖ|GOA|GP|GR|GRH|GRZ|GS|GT|GTH|GUB|GÜ|GVM|GW|GZ|H|HA|HAL|HAM|HAS|HB|HBN|HBS|HC|HCH|HD|HDH|HDL|HE|HEF|HEI|HER|HET|HF|HG|HGN|HGW|HH|HHM|HI|HIG|HK|HK|HL|HM|HMÜ|HN|HO|HOG|HOL|HOM|HOT|HP|HR|HRO|HS|HSK|HST|HU|HVL|HWI|HX|HY|HZ|IGB|IK|IL|IN|IZ|J|JE|JL|JÜL|K|KA|KB|KC|KE|KEH|KF|KG|KH|KI|KIB|KL|KLE|KLZ|KM|KN|KO|KÖT|KR|KS|KT|KU|KÜN|KUS|KY|KYF|L|LA|LAU|LB|LBS|LBZ|LD|LDK|LDS|LEO|LER|LEV|LG|LI|LIF|LIP|LL|LM|LÖ|LÖB|LOS|LP|LRO|LSA|LSZ|LU|LUN|LWL|M|MA|MAB|MB|MC|MD|ME|MEI|MEK|MG|MGN|MH|MHL|MI|MIL|MKK|ML|MK|MM|MN|MO|MOL|MOS|MQ|MR|MS|MSH|MSP|MST|MTK|MTL|MÜ|MÜR|MW|MW|MYK|MZ|MZG|N|NB|ND|NDH|NE|NEA|NEB|NES|NEW|NF|NH|NI|NK|NM|NMB|NMS|NOH|NOL|NOM|NOR|NP|NR|NU|NVP|NW|NWM|NY|NZ|OA|OAL|OB|OBG|OC|OCH|OD|OE|OF|OG|OH|OHA|OHV|OHZ|OK|OL|OPR|OS|OSL|OVL|OVP|P|PA|PAF|PAN|PB|PCH|PE|PF|PI|PIR|PL|PLÖ|PM|PN|PR|PRÜ|PS|PW|QFT|QLB|R|RA|RC|RD|RDG|RE|REG|RG|RH|RI|RIE|RL|RM|RO|ROW|RP|RS|RSL|RT|RÜD|RÜG|RV|RW|RZ|S|SAB|SAD|SAW|SB|SBK|SC|SCZ|SDH|SDL|SE|SEB|SEE|SFA|SFB|SFT|SG|SGH|SHA|SHG|SHK|SHL|SI|SIG|SIM|SK|SL|SLF|SLK|SLN|SLS|SLÜ|SLZ|SM|SN|SO|SÖM|SOK|SON|SP|SPN|SR|SRB|SRO|ST|STA|STD|STL|SU|SÜW|SW|SZ|SZB|TBB|TDO|TE|TET|TF|TG|TIR|TO|TÖL|TR|TS|TÜ|TUT|UE|UEM|UER|UH|UL|UM|UN|USI|V|VB|VEC|VER|VG|VIE|VK|VR|VS|W|WAF|WAK|WAN|WAT|WB|WBS|WDA|WE|WEN|WES|WF|WHV|WI|WIL|WIS|WIT|WK|WL|WLG|WM|WMS|WN|WND|WO|WOB|WOH|WR|WSF|WST|WT|WTM|WÜ|WUG|WUN|WUR|WW|WZL|X|Y|Z|ZE|ZEL|ZI|ZP|ZR|ZW|ZZ)[\- ]((?:[a-z]{1,2}[\- ]\d{1,4}H?)|(9\d{3})|(\d{2,3}\-\d{1,3})[a-z]?)$/i,
30
+ /^(A|AA|AB|ABG|ABI|AC|AE|AD|AF|AIC|AK|ALF|AM|AN|ANA|ANK|AÖ|AP|APD|ARN|ART|AS|ASL|ASZ|AT|AU|AUR|AW|AZ|AZE|B|BA|BAD|BAR|BB|BBG|BC|BCH|BD|BED|BER|BF|BGL|BI|BID|BIN|BIR|BIT|BIW|BK|BKS|BL|BLB|BLK|BM|BN|BNA|BO|BÖ|BOR|BOT|BRA|BRB|BRG|BRL|BRV|BS|BT|BTF|BÜD|BÜS|BÜZ|BW|BWL|BYL|BZ|C|CA|CAS|CB|CE|CHA|CLP|CLZ|CO|COC|COE|CUX|CW|D|DA|DAH|DAN|DAU|DB|DBR|DD|DE|DEG|DEL|DGF|DH|DI|DIN|DL|DLG|DM|DN|DO|DON|DU|DÜW|DW|DZ|E|EA|EB|EBE|ECK|ED|EE|EF|EH|EI|EIC|EIL|EIN|EIS|EL|EM|EMD|EMS|EN|ER|ERB|ERH|ERZ|ES|ESW|EU|EW|F|FB|FD|FDS|FF|FFB|FG|FI|FL|FLO|FN|FO|FOR|FR|FRG|FRI|FRW|FS|FT|FTL|FÜ|G|GA|GAP|GC|GD|GDB|GE|GER|GEO|GF|GG|GHA|GHC|GI|GL|GLA|GM|GMN|GN|GNT|GÖ|GOA|GP|GR|GRH|GRZ|GS|GT|GTH|GUB|GÜ|GVM|GW|GZ|H|HA|HAL|HAM|HAS|HB|HBN|HBS|HC|HCH|HD|HDH|HDL|HE|HEF|HEI|HER|HET|HF|HG|HGN|HGW|HH|HHM|HI|HIG|HK|HK|HL|HM|HMÜ|HN|HO|HOG|HOL|HOM|HOT|HP|HR|HRO|HS|HSK|HST|HU|HVL|HWI|HX|HY|HZ|IGB|IK|IL|IN|IZ|J|JE|JL|JÜL|K|KA|KB|KC|KE|KEH|KF|KG|KH|KI|KIB|KL|KLE|KLZ|KM|KN|KO|KÖT|KR|KS|KT|KU|KÜN|KUS|KY|KYF|L|LA|LAU|LB|LBS|LBZ|LD|LDK|LDS|LEO|LER|LEV|LG|LI|LIF|LIP|LL|LM|LÖ|LÖB|LOS|LP|LRO|LSA|LSZ|LU|LUN|LWL|M|MA|MAB|MB|MC|MD|ME|MEI|MEK|MG|MGN|MH|MHL|MI|MIL|MKK|ML|MK|MM|MN|MO|MOL|MOS|MQ|MR|MS|MSH|MSP|MST|MTK|MTL|MÜ|MÜR|MW|MW|MYK|MZ|MZG|N|NB|ND|NDH|NE|NEA|NEB|NES|NEW|NF|NH|NI|NK|NM|NMB|NMS|NOH|NOL|NOM|NOR|NP|NR|NU|NVP|NW|NWM|NY|NZ|OA|OAL|OB|OBG|OC|OCH|OD|OE|OF|OG|OH|OHA|OHV|OHZ|OK|OL|OPR|OS|OSL|OVL|OVP|P|PA|PAF|PAN|PB|PCH|PE|PF|PI|PIR|PL|PLÖ|PM|PN|PR|PRÜ|PS|PW|QFT|QLB|R|RA|RC|RD|RDG|RE|REG|RG|RH|RI|RIE|RL|RM|RO|ROW|RP|RS|RSL|RT|RÜD|RÜG|RV|RW|RZ|S|SAB|SAD|SAW|SB|SBK|SC|SCZ|SDH|SDL|SE|SEB|SEE|SFA|SFB|SFT|SG|SGH|SHA|SHG|SHK|SHL|SI|SIG|SIM|SK|SL|SLF|SLK|SLN|SLS|SLÜ|SLZ|SM|SN|SO|SÖM|SOK|SON|SP|SPN|SR|SRB|SRO|ST|STA|STD|STL|SU|SÜW|SW|SZ|SZB|TBB|TDO|TE|TET|TF|TG|TIR|TO|TÖL|TR|TS|TÜ|TUT|UE|UEM|UER|UH|UL|UM|UN|USI|V|VB|VEC|VER|VG|VIE|VK|VR|VS|W|WAF|WAK|WAN|WAT|WB|WBS|WDA|WE|WEN|WES|WF|WHV|WI|WIL|WIS|WIT|WK|WL|WLG|WM|WMS|WN|WND|WO|WOB|WOH|WR|WSF|WST|WT|WTM|WÜ|WUG|WUN|WUR|WW|WZL|X|Y|Z|ZE|ZEL|ZI|ZP|ZR|ZW|ZZ)[\- ]((?:[a-z]{1,2}[\- ]*\d{1,4}[HE]?)|(9\d{3})|(\d{2,3}\-\d{1,3})[a-z]?)$/i,
27
31
  # more diplomatic license plates ;)
28
32
  /^0[\- ]\d{1,3}[\- ]\d{1,3}\w?$/i
29
33
  ]
@@ -12,14 +12,14 @@ Gem::Specification.new do |spec|
12
12
  spec.summary = %q{Validate license plate numbers for countries that support it.}
13
13
  spec.homepage = "https://ariejan.github.io/license_plate_validator"
14
14
  spec.license = "MIT"
15
-
15
+ spec.required_ruby_version = ">= 3.1"
16
16
  spec.files = `git ls-files`.split($/)
17
17
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_development_dependency "bundler", "~> 1.3"
22
- spec.add_development_dependency "rspec", "~> 2.14.0"
23
- spec.add_development_dependency "rake"
24
- spec.add_development_dependency 'activemodel', '~> 4.0.0'
21
+ spec.add_development_dependency "bundler", "~> 2.5"
22
+ spec.add_development_dependency "rspec", "~> 3.13.0"
23
+ spec.add_development_dependency "rake", "~> 13.0"
24
+ spec.add_development_dependency 'activemodel', '~> 7'
25
25
  end
@@ -14,33 +14,35 @@ if defined?(ActiveModel)
14
14
  validates :number, license_plate: true
15
15
  end
16
16
 
17
- describe DutchVehicle do
18
- it "accepts Dutch plates only" do
19
- obj = DutchVehicle.new(number: "60-NFH-1")
20
- expect(obj).to be_valid
21
-
22
- obj = DutchVehicle.new(number: "SBA5226")
23
- expect(obj).not_to be_valid
17
+ RSpec.describe "Ruby on Rails ActiveModel support" do
18
+ context DutchVehicle do
19
+ it "accepts Dutch plates only" do
20
+ obj = DutchVehicle.new(number: "60-NFH-1")
21
+ expect(obj).to be_valid
22
+
23
+ obj = DutchVehicle.new(number: "SBA5226")
24
+ expect(obj).not_to be_valid
25
+ end
24
26
  end
25
- end
26
27
 
27
- describe DutchMethodVehicle do
28
- it "accepts Dutch plates only" do
29
- obj = DutchMethodVehicle.new(number: "60-NFH-1", country: "nl")
30
- expect(obj).to be_valid
28
+ context DutchMethodVehicle do
29
+ it "accepts Dutch plates only" do
30
+ obj = DutchMethodVehicle.new(number: "60-NFH-1", country: "nl")
31
+ expect(obj).to be_valid
31
32
 
32
- obj = DutchMethodVehicle.new(number: "SBA5226", country: "nl")
33
- expect(obj).not_to be_valid
33
+ obj = DutchMethodVehicle.new(number: "SBA5226", country: "nl")
34
+ expect(obj).not_to be_valid
35
+ end
34
36
  end
35
- end
36
37
 
37
- describe UnknownVehicle do
38
- it "accepts both Dutch and German plates" do
39
- obj = UnknownVehicle.new(number: "60-NFH-1")
40
- expect(obj).to be_valid
38
+ context UnknownVehicle do
39
+ it "accepts both Dutch and German plates" do
40
+ obj = UnknownVehicle.new(number: "60-NFH-1")
41
+ expect(obj).to be_valid
41
42
 
42
- obj = UnknownVehicle.new(number: "SBA5226")
43
- expect(obj).to be_valid
43
+ obj = UnknownVehicle.new(number: "SBA5226")
44
+ expect(obj).to be_valid
45
+ end
44
46
  end
45
47
  end
46
48
  end
@@ -1,13 +1,13 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe LicensePlateValidator do
3
+ RSpec.describe LicensePlateValidator do
4
4
  it 'should have a version number' do
5
- LicensePlateValidator::VERSION.should_not be_nil
5
+ expect(LicensePlateValidator::VERSION).not_to be_nil
6
6
  end
7
7
 
8
- describe "#new" do
8
+ context "#new" do
9
9
  it 'demands one argument, optionally a second' do
10
- expect { LicensePlateValidator.new() }.to raise_error
10
+ expect { LicensePlateValidator.new() }.to raise_error(ArgumentError)
11
11
  expect { LicensePlateValidator.new ("a") }.not_to raise_error
12
12
  expect { LicensePlateValidator.new("a", country: :nl) }.not_to raise_error
13
13
  expect { LicensePlateValidator.new("a", country: nil) }.not_to raise_error
@@ -30,7 +30,7 @@ describe LicensePlateValidator do
30
30
  end
31
31
 
32
32
  it "returns array of patterns for known countries" do
33
- expect(subject.patterns_for_country(:nl).size).to eql(10)
33
+ expect(subject.patterns_for_country(:nl).size).to eql(14)
34
34
  end
35
35
  end
36
36
 
@@ -79,7 +79,11 @@ describe LicensePlateValidator do
79
79
  "61-NFH-1",
80
80
  "1-KGB-42",
81
81
  "FZ-142-X",
82
- "X-721-FZ"
82
+ "X-721-FZ",
83
+ "GBB-01-B",
84
+ "V-01-BBB",
85
+ "9-XX-999",
86
+ "999-XX-9"
83
87
  ]
84
88
 
85
89
  NL_INVALID_SAMPLES = [
@@ -108,6 +112,8 @@ describe LicensePlateValidator do
108
112
  DE_VALID_SAMPLES = [
109
113
  "K-AB-123",
110
114
  "GL-A-123H",
115
+ "B-AD-4563E",
116
+ "AC A123",
111
117
  "K-9123",
112
118
  "0-12-123",
113
119
  "0-12-234H"
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: license_plate_validator
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 2.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ariejan de Vroom
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2014-07-28 00:00:00.000000000 Z
10
+ date: 2025-02-18 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: bundler
@@ -16,56 +15,56 @@ dependencies:
16
15
  requirements:
17
16
  - - "~>"
18
17
  - !ruby/object:Gem::Version
19
- version: '1.3'
18
+ version: '2.5'
20
19
  type: :development
21
20
  prerelease: false
22
21
  version_requirements: !ruby/object:Gem::Requirement
23
22
  requirements:
24
23
  - - "~>"
25
24
  - !ruby/object:Gem::Version
26
- version: '1.3'
25
+ version: '2.5'
27
26
  - !ruby/object:Gem::Dependency
28
27
  name: rspec
29
28
  requirement: !ruby/object:Gem::Requirement
30
29
  requirements:
31
30
  - - "~>"
32
31
  - !ruby/object:Gem::Version
33
- version: 2.14.0
32
+ version: 3.13.0
34
33
  type: :development
35
34
  prerelease: false
36
35
  version_requirements: !ruby/object:Gem::Requirement
37
36
  requirements:
38
37
  - - "~>"
39
38
  - !ruby/object:Gem::Version
40
- version: 2.14.0
39
+ version: 3.13.0
41
40
  - !ruby/object:Gem::Dependency
42
41
  name: rake
43
42
  requirement: !ruby/object:Gem::Requirement
44
43
  requirements:
45
- - - ">="
44
+ - - "~>"
46
45
  - !ruby/object:Gem::Version
47
- version: '0'
46
+ version: '13.0'
48
47
  type: :development
49
48
  prerelease: false
50
49
  version_requirements: !ruby/object:Gem::Requirement
51
50
  requirements:
52
- - - ">="
51
+ - - "~>"
53
52
  - !ruby/object:Gem::Version
54
- version: '0'
53
+ version: '13.0'
55
54
  - !ruby/object:Gem::Dependency
56
55
  name: activemodel
57
56
  requirement: !ruby/object:Gem::Requirement
58
57
  requirements:
59
58
  - - "~>"
60
59
  - !ruby/object:Gem::Version
61
- version: 4.0.0
60
+ version: '7'
62
61
  type: :development
63
62
  prerelease: false
64
63
  version_requirements: !ruby/object:Gem::Requirement
65
64
  requirements:
66
65
  - - "~>"
67
66
  - !ruby/object:Gem::Version
68
- version: 4.0.0
67
+ version: '7'
69
68
  description: Formatting and content of license plate codes can be validated in some
70
69
  countries. This gem add Rails validators for this to your project.
71
70
  email:
@@ -74,19 +73,21 @@ executables: []
74
73
  extensions: []
75
74
  extra_rdoc_files: []
76
75
  files:
76
+ - ".github/workflows/release.yml"
77
+ - ".github/workflows/test.yml"
77
78
  - ".gitignore"
78
79
  - ".rspec"
79
- - ".travis.yml"
80
80
  - CHANGELOG
81
81
  - Gemfile
82
82
  - LICENSE.txt
83
83
  - README.md
84
+ - RELEASING.md
84
85
  - Rakefile
85
- - gem-private_key.pem
86
- - gem-public_cert.pem
87
- - gemfiles/activemodel-3-2
88
- - gemfiles/activemodel-4
89
- - gemfiles/standalone
86
+ - gemfiles/Gemfile.rails7.0
87
+ - gemfiles/Gemfile.rails7.1
88
+ - gemfiles/Gemfile.rails7.2
89
+ - gemfiles/Gemfile.rails8.0
90
+ - gemfiles/Gemfile.ruby
90
91
  - lib/license_plate_validator.rb
91
92
  - lib/license_plate_validator/active_model.rb
92
93
  - lib/license_plate_validator/locales/de.yml
@@ -101,7 +102,6 @@ homepage: https://ariejan.github.io/license_plate_validator
101
102
  licenses:
102
103
  - MIT
103
104
  metadata: {}
104
- post_install_message:
105
105
  rdoc_options: []
106
106
  require_paths:
107
107
  - lib
@@ -109,16 +109,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
109
109
  requirements:
110
110
  - - ">="
111
111
  - !ruby/object:Gem::Version
112
- version: '0'
112
+ version: '3.1'
113
113
  required_rubygems_version: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - ">="
116
116
  - !ruby/object:Gem::Version
117
117
  version: '0'
118
118
  requirements: []
119
- rubyforge_project:
120
- rubygems_version: 2.2.2
121
- signing_key:
119
+ rubygems_version: 3.6.2
122
120
  specification_version: 4
123
121
  summary: Validate license plate numbers for countries that support it.
124
122
  test_files:
data/.travis.yml DELETED
@@ -1,20 +0,0 @@
1
- language: ruby
2
-
3
- notifications:
4
- email: false
5
-
6
- rvm:
7
- - 2.0.0
8
- - 2.1.1
9
- - jruby-19mode
10
- - ruby-head
11
-
12
- matrix:
13
- allow_failures:
14
- - rvm: jruby-19mode
15
- - rvm: ruby-head
16
-
17
- gemfile:
18
- - gemfiles/activemodel-4
19
- - gemfiles/activemodel-3-2
20
- - gemfiles/standalone
data/gem-private_key.pem DELETED
@@ -1,27 +0,0 @@
1
- -----BEGIN RSA PRIVATE KEY-----
2
- MIIEpAIBAAKCAQEAyt2l9tkc4bL1zgKZk9UiNbqNElgCuRzV1pfk32Sb+S57RH9w
3
- CE8mkYituGW0mLAjxg9h/lcn424Q62D+vlSJsHyjsgisWtu3ZHg1uy6VE8xWlCaD
4
- tvOas51M8LNyQtS+f5pTy0WB4BOcKk5M9TwJDK4zX/CJBErxttBhYx1QJhiERHgg
5
- 1wGFXQpUQAW5HW4FlXWgXtfvfljj9eE1bw5Qz3ycj8NE83kQOSS9NaKwX/ma60jb
6
- JJakiZmjMabkctpSGYw3rqiumQ3MV6li0TY+dBjNB9V7yldCvv9ud4Wws9PLtWHx
7
- cerYnGq6u9JRTT8NE8M+B7Xn7nKvt+6XGlBJJwIDAQABAoIBAA8haPd4Sgcradnr
8
- p7i29M49E7iCh/F2jRxsR83Bm0CCjv8U4i48eQvxvcM7ErUwrfpfu1dU+MylsO1d
9
- VqKre3mGUk89Bl3gdVUxAhDr8IKBgxOZq8lBchBjcxGg0KzbYTnzMLzAemdUDxm4
10
- rVS9HY+sjnhhYFbJoC2abSkPTqMInxOGfeb68C/MiKzckZO4P/ncgU83fxmOi0Xf
11
- h4hcxtdmd0ZjhkDgvyBv6tOdwvwH6U7zKkrqBjY2q0OYFLGcNSjjdYmTKTnK8iqk
12
- YyFfqyg3c0ZyqkqmHFaXkiJiP5zpS1rFXORXNnTleMaRU7DZUTO8RjhBXoEX1VXp
13
- g+5UBoECgYEA6b9Dzu/zPnSUGIaY15IxtQykXt0LGosIE/bfymtf6J99YpYbxcY/
14
- fy43U5glCKj1YJlsFQMMir3FbJBfQNWD4d7sElyHJYiwkn3kbXwIILyumK3XIPnh
15
- hVaMPLKM9j4CIMefj0nVyCHWWdfz/yVJlNFBly+olHrpn6+4dY7mw0kCgYEA3i3D
16
- icKPXjpV8lQs26m50Q1mquV59f7AbbjjYw8v6kXs3EmIqvCGPZpFOoD4EnZXU4S+
17
- irxWgbEtYT97KMNrCHkFn2af7BqezJ8v6o5vPZC7TgUMJHykTN+n8tG7CG98mYmV
18
- kdTogWO/p+fyu6BdRUxGeO/0q7puVHHbHVzoOO8CgYEAk0qr3u2C+LsbSy0diNGd
19
- svmJZiGhypMLfxEUygfJQtuldgci7whSoMCtqmZ4B7H4FWv4GHF4aMDWc+exrjgd
20
- R6piVduqabNtmJHt7DO5J2/eEWWR5zyuqIf2DJVykARY8PD5kaA0L01rNegH36JO
21
- cJE/5JXqg83EA5UGBkYLEckCgYAkcaFHcZCOxkbezwvkpDyEnAwhMC8HONhbpx41
22
- W4JijUHDCJTQZU+/vxRn+ku2y46bdoTCwQ33jBaDgyQylYtzAlb3xJ+q3Nr7eYkk
23
- kmSQ1rLCo3VQbtmMeotT+y8QvSjVDopoN2JEBxai9hsMx8tE2LQelk2t9ZCvbVWh
24
- xWGaJQKBgQCf6qjON5bqVyDh0sZOavngBXh4cjA47GCWnUlXNkdCTJ6Q2upd80jC
25
- mzJOeofZheY6OVrpvn1GVU+R57pM0XYsz4vC8ZXMcF5Yr888C6DM4sqWWJn0GAwU
26
- g4i7PDqi8ACxkRUIUCQw/m4HLSqg915mQyAckCtq6AP6kCk1c/nE9w==
27
- -----END RSA PRIVATE KEY-----
data/gem-public_cert.pem DELETED
@@ -1,21 +0,0 @@
1
- -----BEGIN CERTIFICATE-----
2
- MIIDdDCCAlygAwIBAgIBATANBgkqhkiG9w0BAQUFADBAMRAwDgYDVQQDDAdhcmll
3
- amFuMRcwFQYKCZImiZPyLGQBGRYHYXJpZWphbjETMBEGCgmSJomT8ixkARkWA25l
4
- dDAeFw0xMzA3MjMxMjMxMTRaFw0xNDA3MjMxMjMxMTRaMEAxEDAOBgNVBAMMB2Fy
5
- aWVqYW4xFzAVBgoJkiaJk/IsZAEZFgdhcmllamFuMRMwEQYKCZImiZPyLGQBGRYD
6
- bmV0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyt2l9tkc4bL1zgKZ
7
- k9UiNbqNElgCuRzV1pfk32Sb+S57RH9wCE8mkYituGW0mLAjxg9h/lcn424Q62D+
8
- vlSJsHyjsgisWtu3ZHg1uy6VE8xWlCaDtvOas51M8LNyQtS+f5pTy0WB4BOcKk5M
9
- 9TwJDK4zX/CJBErxttBhYx1QJhiERHgg1wGFXQpUQAW5HW4FlXWgXtfvfljj9eE1
10
- bw5Qz3ycj8NE83kQOSS9NaKwX/ma60jbJJakiZmjMabkctpSGYw3rqiumQ3MV6li
11
- 0TY+dBjNB9V7yldCvv9ud4Wws9PLtWHxcerYnGq6u9JRTT8NE8M+B7Xn7nKvt+6X
12
- GlBJJwIDAQABo3kwdzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQU
13
- ZwHc1uXiVvbwy96Xts52wSQspHQwHgYDVR0RBBcwFYETYXJpZWphbkBhcmllamFu
14
- Lm5ldDAeBgNVHRIEFzAVgRNhcmllamFuQGFyaWVqYW4ubmV0MA0GCSqGSIb3DQEB
15
- BQUAA4IBAQAyJDUHFZ8zy2L1PWTRQVxdTNfFLBwp/dj+vBgUrLrIL4L1sjTd8gli
16
- gKyC8EB4aWLQ3Ir1myHU/52mhjtijKvhN7PjedXnX1raLe276aivjkArn27iuspg
17
- sGjp2OtGm611w/h4ZC8n+HUzCMQaOTzNWOXQIIIjlNfYBSiPz9/b6zDtyuHxDhux
18
- bIKVdAi8hBPMZF3l9OMIoslpwPv5d0acAtRKX2YTaZgnoY9yKlrfP4vSqm2bdDhf
19
- 7NiYH0Kuw9dhd6KTJkM9nkX0tYPEksLImmnf2di9+uZVXaXS0eNwX8OvHb48eoyM
20
- fYCqplVyUXI9SqwzVPOD1Bf+drhGNR2O
21
- -----END CERTIFICATE-----
@@ -1,5 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gem "activemodel", "~> 3.2.0"
4
- gem "rspec", "~> 2.14.0"
5
- gem "rake"
@@ -1,5 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gem "activemodel", "~> 4.0.0"
4
- gem "rspec", "~> 2.14.0"
5
- gem "rake"