license_plate_validator 1.1.1 → 2.0.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
- SHA1:
3
- metadata.gz: e5826727591b17c4bb025685484a4c77d14a67f3
4
- data.tar.gz: a41695ad821764c0b49d2407c5d748088be2e2e7
2
+ SHA256:
3
+ metadata.gz: 4b14548fad67c137489b550601ec07d6c2bdbffd370041f110dedef142be237c
4
+ data.tar.gz: c722040730ca5c1f7e6343a29c08b5f3b5b4962f0154d7bf69470f00f4cb47b3
5
5
  SHA512:
6
- metadata.gz: da9f5aa4b9fc7a3497e9ab32b8bf09435559600de325943b529e65a8f19b7d712d5314b99b386e21298821f5fb5700fbec631cd1cac479a020a1f7c86fa78a35
7
- data.tar.gz: 87b1edd259336840b6b5d4641fc53ebfdd05d697a92da81f62ab1bfd5b3e846dc4c0615f02dfe094f79035be782a984c337b1c90d325fa0e4d75ae5d66ce8d24
6
+ metadata.gz: 8b9aaeb5f62a2424afc70df1d44cda8ca1c4546c54d2a3f9e3ced7680e1bb022ce4dbc3479a3859fb28bb61c51a55832e458bfe9019211fc81545d171c04a3d2
7
+ data.tar.gz: 01f958e7128b87caef078f52df6fba5c168ed35654dcc40715d554daa059514cbd4fca157b69b3426607e9e22c60d50935fdaa1d543a6d3f0d07e45a4bf5748d
@@ -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,43 @@
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
+
26
+ steps:
27
+ - uses: actions/checkout@v4
28
+
29
+ - name: Set up Ruby
30
+ uses: ruby/setup-ruby@v1
31
+ with:
32
+ ruby-version: ${{ matrix.ruby-version }}
33
+
34
+ - name: Install dependencies
35
+ run: |
36
+ gem install bundler
37
+ bundle install --gemfile=${{ matrix.gemfile }}
38
+
39
+ - name: Run tests
40
+ run: |
41
+ bundle exec rspec
42
+ env:
43
+ BUNDLE_GEMFILE: ${{ matrix.gemfile }}
data/.travis.yml CHANGED
@@ -1,7 +1,19 @@
1
1
  language: ruby
2
+
3
+ notifications:
4
+ email: false
5
+
2
6
  rvm:
3
7
  - 2.0.0
4
- - 1.9.3
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
+
5
17
  gemfile:
6
18
  - gemfiles/activemodel-4
7
19
  - gemfiles/activemodel-3-2
data/CHANGELOG ADDED
@@ -0,0 +1,19 @@
1
+ # CHANGELOG
2
+
3
+ ## 2.0.0 - 2024-09-24
4
+
5
+ - Update dependencies; this may break older Ruby (< 3.1) and Rails (< 7.x) integrations.
6
+ - Add new NL license plate formats - @edwardmp
7
+
8
+ ## 1.2.0 - 2014-07-28
9
+
10
+ - German license plate support
11
+ - German language support
12
+
13
+ ## 1.1.1 - 2014-04-25
14
+
15
+ - Fix i18n key
16
+
17
+ ## 1.0 - 2013-04-23
18
+
19
+ - Initial release with Dutch license plate support
data/README.md CHANGED
@@ -1,21 +1,23 @@
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
 
14
- Validate Dutch license plates ("kentekens"), includes all ten common Dutch license
14
+ Validates Dutch license plates ("kentekens"), includes all ten common Dutch license
15
15
  plate types.
16
16
 
17
17
  Special license plates (like those for the Royal family) are not supported.
18
18
 
19
+ Also supports most german license plates, including most diplomatic formats.
20
+
19
21
  ## Installation
20
22
 
21
23
  Add this line to your application's Gemfile:
@@ -38,7 +40,7 @@ Or install it yourself as:
38
40
  LicensePlateValidator.new("SBA 5226", country: :nl).valid?
39
41
  #=> false
40
42
 
41
- ### Rails 3.x / 4.x
43
+ ### Ruby on Rails support
42
44
 
43
45
  You can use LicensePlateValidator with any ActiveModel class, including
44
46
  ActiveRecord models:
@@ -66,10 +68,11 @@ The `Proc` must return either `nil` (accept all the things) or a valid country c
66
68
  ### Supported countries
67
69
 
68
70
  * `:nl` Netherlands; all common "sidecode" number formats.
71
+ * `:de` Germany; all regular forms as well as the common diplomatic variants
69
72
 
70
73
  ## I18n
71
74
 
72
- Locales for English and Dutch are provided. See [`lib/license_plate_validator/locales`](https://github.com/ariejan/license_plate_validator/tree/master/lib/license_plate_validator/locales)
75
+ Locales for English, Dutch and German are provided. See [`lib/license_plate_validator/locales`](https://github.com/ariejan/license_plate_validator/tree/master/lib/license_plate_validator/locales)
73
76
  for details.
74
77
 
75
78
  ## Contributing
@@ -99,6 +102,8 @@ specs.
99
102
  ## Contributor
100
103
 
101
104
  * Pascal Widdershoven - for the original regexes for Dutch license plate numbers.
105
+ * Edward Poot - for adding new RDW approved license plate schemes
106
+ * Marcus Ilgner, evopark - for german license plates
102
107
 
103
108
  ## License
104
109
 
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,5 @@
1
+ source "https://rubygems.org"
2
+
3
+ gem "activemodel", "~> 7.0.0"
4
+ gem "rspec", "~> 3.13.0"
5
+ gem "rake"
@@ -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"
@@ -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"
@@ -0,0 +1,4 @@
1
+ de:
2
+ errors:
3
+ messages:
4
+ invalid_license_plate: ist kein gültiges Kennzeichen
@@ -1,4 +1,4 @@
1
- en:
1
+ nl:
2
2
  errors:
3
3
  messages:
4
4
  invalid_license_plate: is geen geldig kenteken
@@ -1,3 +1,3 @@
1
1
  class LicensePlateValidator
2
- VERSION = "1.1.1"
2
+ VERSION = "2.0.0"
3
3
  end
@@ -12,7 +12,24 @@ 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})$/
20
+ ],
21
+ # Germany
22
+ de: [
23
+ # first part: distinguisher for area
24
+ # second part (a) 1-2 characters followed by 1-4 numbers
25
+ # or (b) for diplomatic purposes:
26
+ # 1. a 4-digit number starting with 9
27
+ # 2. a 2-3-digit-number (country identifier) followed by 1-3 digits
28
+ # diplomatic license plates can be followed by a single letter
29
+ # regular license plates can be followed by an 'H' for oldtimers
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}H?)|(9\d{3})|(\d{2,3}\-\d{1,3})[a-z]?)$/i,
31
+ # more diplomatic license plates ;)
32
+ /^0[\- ]\d{1,3}[\- ]\d{1,3}\w?$/i
16
33
  ]
17
34
  }.freeze
18
35
 
@@ -21,7 +38,7 @@ class LicensePlateValidator
21
38
  country: nil
22
39
  }.merge(options)
23
40
 
24
- @raw = normalize(raw || "")
41
+ @raw = raw || ''
25
42
  end
26
43
 
27
44
  attr_reader :raw
@@ -47,12 +64,6 @@ class LicensePlateValidator
47
64
  def to_s
48
65
  raw
49
66
  end
50
-
51
- private
52
-
53
- def normalize(input)
54
- input.to_s.upcase.strip.gsub(/[^A-Z0-9]/, '')
55
- end
56
67
  end
57
68
 
58
69
  require 'license_plate_validator/version'
@@ -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,29 +1,24 @@
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
14
14
  end
15
-
16
- it 'normalizes the input string' do
17
- expect(LicensePlateValidator.new('60-NFH-1').to_s).to eql('60NFH1')
18
- expect(LicensePlateValidator.new('fz-xx-61').to_s).to eql('FZXX61')
19
- end
20
15
  end
21
16
 
22
17
  context "#supported countries" do
23
18
  subject { LicensePlateValidator.new("a") }
24
19
 
25
20
  it "returns array of symbols" do
26
- expect(subject.supported_countries).to eql([:nl])
21
+ expect(subject.supported_countries).to eql([:nl, :de])
27
22
  end
28
23
  end
29
24
 
@@ -35,7 +30,7 @@ describe LicensePlateValidator do
35
30
  end
36
31
 
37
32
  it "returns array of patterns for known countries" do
38
- expect(subject.patterns_for_country(:nl).size).to eql(10)
33
+ expect(subject.patterns_for_country(:nl).size).to eql(14)
39
34
  end
40
35
  end
41
36
 
@@ -84,14 +79,18 @@ describe LicensePlateValidator do
84
79
  "61-NFH-1",
85
80
  "1-KGB-42",
86
81
  "FZ-142-X",
87
- "X-721-FZ"
82
+ "X-721-FZ",
83
+ "GBB-01-B",
84
+ "V-01-BBB",
85
+ "9-XX-999",
86
+ "999-XX-9"
88
87
  ]
89
88
 
90
89
  NL_INVALID_SAMPLES = [
91
90
  "DEF-123",
92
91
  "123-DEF",
93
92
  "DEFGHI",
94
- "123456"
93
+ "123456",
95
94
  ]
96
95
 
97
96
  NL_VALID_SAMPLES.each do |number|
@@ -108,4 +107,35 @@ describe LicensePlateValidator do
108
107
  end
109
108
  end
110
109
  end
110
+
111
+ context "DE - Germany" do
112
+ DE_VALID_SAMPLES = [
113
+ "K-AB-123",
114
+ "GL-A-123H",
115
+ "AC A123",
116
+ "K-9123",
117
+ "0-12-123",
118
+ "0-12-234H"
119
+ ]
120
+
121
+ DE_INVALID_SAMPLES = [
122
+ "FOO-AB-123",
123
+ "123",
124
+ "K-2"
125
+ ]
126
+
127
+ DE_VALID_SAMPLES.each do |sample|
128
+ it "accepts '#{sample}'" do
129
+ license = LicensePlateValidator.new(sample, country: :de)
130
+ expect(license).to be_valid
131
+ end
132
+ end
133
+
134
+ DE_INVALID_SAMPLES.each do |sample|
135
+ it "rejects '#{sample}'" do
136
+ license = LicensePlateValidator.new(sample, country: :de)
137
+ expect(license).to_not be_valid
138
+ end
139
+ end
140
+ end
111
141
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: license_plate_validator
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ariejan de Vroom
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-25 00:00:00.000000000 Z
11
+ date: 2024-09-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,56 +16,56 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.3'
19
+ version: '2.5'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.3'
26
+ version: '2.5'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rspec
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 2.14.0
33
+ version: 3.13.0
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 2.14.0
40
+ version: 3.13.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: '13.0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: '13.0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: activemodel
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 4.0.0
61
+ version: '7'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 4.0.0
68
+ version: '7'
69
69
  description: Formatting and content of license plate codes can be validated in some
70
70
  countries. This gem add Rails validators for this to your project.
71
71
  email:
@@ -74,20 +74,24 @@ executables: []
74
74
  extensions: []
75
75
  extra_rdoc_files: []
76
76
  files:
77
+ - ".github/workflows/release.yml"
78
+ - ".github/workflows/test.yml"
77
79
  - ".gitignore"
78
80
  - ".rspec"
79
81
  - ".travis.yml"
82
+ - CHANGELOG
80
83
  - Gemfile
81
84
  - LICENSE.txt
82
85
  - README.md
86
+ - RELEASING.md
83
87
  - Rakefile
84
- - gem-private_key.pem
85
- - gem-public_cert.pem
86
- - gemfiles/activemodel-3-2
87
- - gemfiles/activemodel-4
88
- - gemfiles/standalone
88
+ - gemfiles/Gemfile.rails7.0
89
+ - gemfiles/Gemfile.rails7.1
90
+ - gemfiles/Gemfile.rails7.2
91
+ - gemfiles/Gemfile.ruby
89
92
  - lib/license_plate_validator.rb
90
93
  - lib/license_plate_validator/active_model.rb
94
+ - lib/license_plate_validator/locales/de.yml
91
95
  - lib/license_plate_validator/locales/en.yml
92
96
  - lib/license_plate_validator/locales/nl.yml
93
97
  - lib/license_plate_validator/version.rb
@@ -107,15 +111,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
107
111
  requirements:
108
112
  - - ">="
109
113
  - !ruby/object:Gem::Version
110
- version: '0'
114
+ version: '3.1'
111
115
  required_rubygems_version: !ruby/object:Gem::Requirement
112
116
  requirements:
113
117
  - - ">="
114
118
  - !ruby/object:Gem::Version
115
119
  version: '0'
116
120
  requirements: []
117
- rubyforge_project:
118
- rubygems_version: 2.2.1
121
+ rubygems_version: 3.5.16
119
122
  signing_key:
120
123
  specification_version: 4
121
124
  summary: Validate license plate numbers for countries that support it.
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"