valvat 1.2.1 → 1.3.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: 9b0b39e1acd3284cb03b0a5cd1a2beec5dc11b7539491829ebf56086c7a40413
4
- data.tar.gz: 15c2ae43ec8fb9ad276d7cd473c51c1c505bdc53e1049ddc6554fea15a2a0c4d
3
+ metadata.gz: f03e6103f577ebcec25d3cbd5c4e2e13c914945c13a1767912f9f49380c9a6ae
4
+ data.tar.gz: db8423cf0d17a8c3a7a840d7d22ff887b6296442da31fc11931aa24aafd6c630
5
5
  SHA512:
6
- metadata.gz: c6342f5e92bc881b491ac326a17b6327c622f639476bbffa60876b89aa1a1f6ab30848d56f58202567b51a930037e715dcbe10e8cadc021d4f72a5560227df84
7
- data.tar.gz: b029ff8192f35b77abf95bdc5adcff6ce3afbb6895b46d2dcb51d9d062c46de7d9e64a9e6653e16201938b6f3b32976ea83656b08551619d5d89d9894c823dac
6
+ metadata.gz: c9c92f073fc78fae74582d093bdf76f2747dab68aa44eb7f1106bb82bdc8f63b47a5236e8e1d766bc49a3e68b74f3723c45be6ff9e91f96548cfc526cad33ef1
7
+ data.tar.gz: 3127010ce2d38d7a75ebcb0688850414d8149cb9db5fe8f6f575c2d1bf0ff2bae0b68a39878df8f851654b5d6cea766b2d63c91639aca5d7696776ed01ed3042
checksums.yaml.gz.sig CHANGED
Binary file
@@ -12,22 +12,26 @@ on:
12
12
  jobs:
13
13
  test:
14
14
  if: "!contains(github.event.head_commit.message, '[skip ci]')"
15
- runs-on: ubuntu-latest
15
+ runs-on: ubuntu-20.04
16
16
  env: # $BUNDLE_GEMFILE must be set at the job level, so it is set for all steps
17
17
  BUNDLE_GEMFILE: gemfiles/${{ matrix.gemfile }}
18
18
  strategy:
19
19
  matrix:
20
- ruby-version: ['2.6', '2.7', '3.0', '3.1', 'jruby-9.3.2.0']
20
+ ruby-version: ['2.6', '2.7', '3.0', '3.1', '3.2', 'jruby-9.4.0.0']
21
21
  gemfile: [ 'standalone', 'activemodel-5', 'activemodel-6', 'activemodel-7' ]
22
22
  exclude:
23
- - ruby-version: '3.0'
23
+ - ruby-version: '3.2'
24
+ gemfile: 'activemodel-5'
25
+ - ruby-version: '3.1'
24
26
  gemfile: 'activemodel-5'
25
27
  - ruby-version: '3.1'
28
+ gemfile: 'standalone'
29
+ - ruby-version: '3.0'
26
30
  gemfile: 'activemodel-5'
27
31
  - ruby-version: '2.6'
28
32
  gemfile: 'activemodel-7'
29
- - ruby-version: 'jruby-9.3.2.0'
30
- gemfile: 'activemodel-7'
33
+ - ruby-version: 'jruby-9.4.0.0'
34
+ gemfile: 'activemodel-5'
31
35
 
32
36
  steps:
33
37
  - uses: actions/checkout@v2
data/CHANGES.md CHANGED
@@ -1,7 +1,14 @@
1
1
 
2
2
  ### dev
3
3
 
4
- [full changelog](http://github.com/yolk/valvat/compare/v1.2.1...master)
4
+ [full changelog](http://github.com/yolk/valvat/compare/v1.3.0...master)
5
+
6
+ ### 1.3.0 / 2023-04-19
7
+
8
+ [full changelog](http://github.com/yolk/valvat/compare/v1.2.1...v1.3.0)
9
+
10
+ * Checksum::FR: Correct validation for french VAT ids not starting with two numerical chars #119
11
+ * Equality for Valvat objects #120
5
12
 
6
13
  ### 1.2.1 / 2022-10-05
7
14
 
data/README.md CHANGED
@@ -22,7 +22,7 @@ Northern Ireland received its own VAT number prefix - XI which is supported by V
22
22
  * I18n locales for language specific error messages in English, German, French, Spanish, Italian, Portuguese, Polish, Swedish, Dutch, Danish, Czech, Slovakian, Hungarian, Bulgarian, Romanian, Latvian, Catalan, Norwegian, and Finnish.
23
23
  * *Experimental* checksum verification
24
24
 
25
- valvat is tested and works with ruby MRI 2.6/2.7/3.0/3.1, jruby and ActiveModel 5/6/7. If you need support for ruby down to 1.9.3 and ActiveModel 3 and 4 use [v1.0.1](https://github.com/yolk/valvat/tree/v1.0.1).
25
+ valvat is tested and works with ruby MRI 2.6/2.7/3.0/3.1/3.2, jruby and ActiveModel 5/6/7. If you need support for ruby down to 1.9.3 and ActiveModel 3 and 4 use [v1.0.1](https://github.com/yolk/valvat/tree/v1.0.1).
26
26
 
27
27
  ## Installation
28
28
 
@@ -129,7 +129,7 @@ Valvat.new("IE6388047V").exists?(raise_error: true)
129
129
 
130
130
  This raises `Valvat::ServiceUnavailable` or `Valvat::MemberStateUnavailable` instead of returning `nil`.
131
131
 
132
- Visit [http://ec.europa.eu/taxation_customs/vies/viesspec.do](http://ec.europa.eu/taxation_customs/vies/viesspec.do) for more accurate information at what time the service for a specific member state will be down.
132
+ Visit [https://ec.europa.eu/taxation_customs/vies/#/help](https://ec.europa.eu/taxation_customs/vies/#/help) for more accurate information at what time the service for a specific member state will be down.
133
133
 
134
134
  ### Handling of other errors
135
135
 
data/certs/mite.pem ADDED
@@ -0,0 +1,26 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIEbDCCAtSgAwIBAgIBATANBgkqhkiG9w0BAQsFADA+MRIwEAYDVQQDDAlzZWJh
3
+ c3RpYW4xFDASBgoJkiaJk/IsZAEZFgRtaXRlMRIwEAYKCZImiZPyLGQBGRYCZGUw
4
+ HhcNMjMwNDE5MDkxMzEyWhcNMjQwNDE4MDkxMzEyWjA+MRIwEAYDVQQDDAlzZWJh
5
+ c3RpYW4xFDASBgoJkiaJk/IsZAEZFgRtaXRlMRIwEAYKCZImiZPyLGQBGRYCZGUw
6
+ ggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDAWAF/CaDp0cmY7Q2vAqVn
7
+ TpB3xmKKPNfF1Bh9X3P9pKRBl2iCW+JmqIV+J5Yts9mB+OYKfxjJM7mmQwT8DMf2
8
+ KwYIVISGKooRyXPgGgKepYfSfemizey6soCoejIIEHczsRk/FeKcvwlFrqMymBrF
9
+ QP5XhnF0TEQvg/sG97wt8hHH7FwcNn+m8I88abP7ygVMNNOL18EiPd2b/WqalGp0
10
+ aiN/CyGtJdA766QY/wgeYVEHNszzJ3DD7AYy8PWAwouIqmAmdDx7oHu01yyilIHL
11
+ W1l5fqko8TQ3UZjfQBDn4mwUgXT829E7dtQB5O0pkwB2lSY4L2azuC69nVBv7TsB
12
+ nBBCTKqr4JknuMJ1nwoGmOfgVqhmsuiGtMyabtagPg1DUpoXMYuf/PbhmSsgedgH
13
+ j2nCnREKxACA/A1pG3HyDhYqkeb7VA4M1Fx4s1wHXKZw/pmxCxCbB/w34wwV2OUh
14
+ fOtjTuX5/o5Tza2dIeBaENs8xMjqIX6DshtWbrJwyacCAwEAAaN1MHMwCQYDVR0T
15
+ BAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFLjadA9ioIK4kItaOGJOhPYM/dVJ
16
+ MBwGA1UdEQQVMBOBEXNlYmFzdGlhbkBtaXRlLmRlMBwGA1UdEgQVMBOBEXNlYmFz
17
+ dGlhbkBtaXRlLmRlMA0GCSqGSIb3DQEBCwUAA4IBgQCQtG2K4dDwQhBkCpSgP8sC
18
+ rc8v5siwMa306nG9Bs3c+KbVI8xJM8APqG8y+DUGzx0i+AIE9g5i2c7H9rwXSA9t
19
+ BRTXZ6O7Hjmkn4pUC8Yc2ylNgP9pdpYxqwe6ZVah8DdGW7m/dQwSisKtO+0XFwB8
20
+ rJmI29qalNK4bzk+DOW9pMdIfIHsbFU7pzTcFBux/MzIqQO24A+zcdYIz7MHBucF
21
+ 85qF319BKW5/HgZMgxm26obTKJFEMDODYlNmm5ywvQCHSCyJ1yW/IFiCpqhiLm5w
22
+ R8JZvYWO38fAsYF3VowUCmsqOBdaQo+L3aA/NVmhNeh4LddJwjrqY+Duw2Gz+DdP
23
+ VyquPzH92Wc7Etd50IFILEkNV2VvRctuyY5/TAWoLKI9RQGYpKxd4jqZRtZFfODY
24
+ O1ARwPz8pN+xIvxo8ex8Hz1sazm/iFgVBwHgaI3O3ctK7vF4+fAu6dlLcbEpij9z
25
+ 4QlUng62OJRSBV/ejaTTItcAOXBeh028ZFWC0QQR4r0=
26
+ -----END CERTIFICATE-----
@@ -2,6 +2,4 @@ source "https://rubygems.org"
2
2
 
3
3
  gem "activemodel", "~> 5.0"
4
4
 
5
- gem 'rack'
6
-
7
5
  gemspec path: "../"
@@ -2,9 +2,4 @@ source "https://rubygems.org"
2
2
 
3
3
  gem "activemodel", "~> 6.0"
4
4
 
5
- gem 'rack'
6
- gem 'net-smtp', require: false
7
- gem 'net-imap', require: false
8
- gem 'net-pop', require: false
9
-
10
5
  gemspec path: "../"
@@ -2,9 +2,4 @@ source "https://rubygems.org"
2
2
 
3
3
  gem "activemodel", "~> 7.0"
4
4
 
5
- gem 'rack'
6
- gem 'net-smtp', require: false
7
- gem 'net-imap', require: false
8
- gem 'net-pop', require: false
9
-
10
5
  gemspec path: "../"
data/gemfiles/standalone CHANGED
@@ -1,8 +1,3 @@
1
1
  source "https://rubygems.org"
2
2
 
3
- gem 'rack', '< 2'
4
- gem 'net-smtp', require: false
5
- gem 'net-imap', require: false
6
- gem 'net-pop', require: false
7
-
8
3
  gemspec path: "../"
@@ -3,6 +3,20 @@
3
3
  class Valvat
4
4
  module Checksum
5
5
  class FR < Base
6
+ # the valid characters for the first two digits (O and I are missing)
7
+ ALPHABET = '0123456789ABCDEFGHJKLMNPQRSTUVWXYZ'
8
+
9
+ def validate
10
+ return super if str_wo_country[0..1] =~ /^\d+$/
11
+
12
+ numeric_start = str_wo_country[0] =~ /\d/
13
+
14
+ check = (ALPHABET.index(str_wo_country[0]) * (numeric_start ? 24 : 34)) +
15
+ ALPHABET.index(str_wo_country[1]) - (numeric_start ? 10 : 100)
16
+
17
+ (str_wo_country[2..-1].to_i + 1 + (check / 11)) % 11 == check % 11
18
+ end
19
+
6
20
  def check_digit
7
21
  siren = str_wo_country[2..-1].to_i
8
22
  (12 + ((3 * siren) % 97)) % 97
@@ -39,7 +39,7 @@ class Valvat
39
39
  def fetch(uri, limit = 0)
40
40
  response = send_request(uri)
41
41
 
42
- if Net::HTTPRedirection == response && limit < 5
42
+ if response == Net::HTTPRedirection && limit < 5
43
43
  fetch(URI.parse(response['Location']), limit + 1)
44
44
  else
45
45
  response
data/lib/valvat/syntax.rb CHANGED
@@ -14,7 +14,7 @@ class Valvat
14
14
  'GR' => /\AEL[0-9]{9}\Z/, # Greece
15
15
  'ES' => /\AES([A-Z][0-9]{8}|[0-9]{8}[A-Z]|[A-Z][0-9]{7}[A-Z])\Z/, # Spain
16
16
  'FI' => /\AFI[0-9]{8}\Z/, # Finland
17
- 'FR' => /\AFR[A-Z0-9]{2}[0-9]{9}\Z/, # France
17
+ 'FR' => /\AFR[A-HJ-NP-Z0-9]{2}[0-9]{9}\Z/, # France
18
18
  'GB' => /\A(GB|XI)([0-9]{9}|[0-9]{12}|(HA|GD)[0-9]{3})\Z/, # United Kingdom
19
19
  'HR' => /\AHR[0-9]{11}\Z/, # Croatia
20
20
  'HU' => /\AHU[0-9]{8}\Z/, # Hungary
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Valvat
4
- VERSION = '1.2.1'
4
+ VERSION = '1.3.0'
5
5
  end
data/lib/valvat.rb CHANGED
@@ -52,6 +52,11 @@ class Valvat
52
52
  raw
53
53
  end
54
54
 
55
+ def ==(other)
56
+ raw == other.raw
57
+ end
58
+ alias_method :eql?, :==
59
+
55
60
  def inspect
56
61
  "#<Valvat #{[raw, iso_country_code].compact.join(' ')}>"
57
62
  end
@@ -45,7 +45,7 @@ describe Valvat::Checksum::ES do
45
45
  end
46
46
 
47
47
  describe 'applies special rules to validation' do
48
- describe 'special NIF categories (KLM) require CD to be a letter and first two digits '\
48
+ describe 'special NIF categories (KLM) require CD to be a letter and first two digits ' \
49
49
  'to be between 01 and 56 (inclusive)' do
50
50
  %w[ESK8201230M ESK0001230B].each do |invalid_vat|
51
51
  it "returns false on invalid VAT #{invalid_vat}" do
@@ -3,7 +3,7 @@
3
3
  require 'spec_helper'
4
4
 
5
5
  describe Valvat::Checksum::FR do
6
- %w[FR60528551658 FR43820567501].each do |valid_vat|
6
+ %w[FR60528551658 FR43820567501 FR0H384498879].each do |valid_vat|
7
7
  it "returns true on valid VAT #{valid_vat}" do
8
8
  expect(Valvat::Checksum.validate(valid_vat)).to be(true)
9
9
  end
@@ -138,7 +138,7 @@ describe Valvat::Lookup do
138
138
  expect do
139
139
  described_class.validate('GB727255821', requester: 'IE6388047V', uk: true)
140
140
  end.to raise_error(Valvat::InvalidRequester,
141
- 'The HMRC web service returned the error: '\
141
+ 'The HMRC web service returned the error: ' \
142
142
  'INVALID_REQUEST (Invalid requesterVrn - Vrn parameters should be 9 or 12 digits)')
143
143
  end
144
144
 
@@ -146,7 +146,7 @@ describe Valvat::Lookup do
146
146
  expect do
147
147
  described_class.validate('GB727255821', requester: 'GB6388047', uk: true)
148
148
  end.to raise_error(Valvat::InvalidRequester,
149
- 'The HMRC web service returned the error: '\
149
+ 'The HMRC web service returned the error: ' \
150
150
  'INVALID_REQUEST (Invalid requesterVrn - Vrn parameters should be 9 or 12 digits)')
151
151
  end
152
152
  end
data/spec/valvat_spec.rb CHANGED
@@ -18,12 +18,12 @@ describe Valvat do
18
18
 
19
19
  describe 'Valvat()' do
20
20
  it 'initializes new Valvat instance on string' do
21
- expect(Valvat('abc')).to be_kind_of(described_class)
21
+ expect(Valvat('abc')).to be_a(described_class)
22
22
  end
23
23
 
24
24
  it 'returns same Valvat instance on Valvat instance' do
25
25
  vat = described_class.new('abc')
26
- expect(Valvat(vat)).to be_kind_of(described_class)
26
+ expect(Valvat(vat)).to be_a(described_class)
27
27
  expect(Valvat(vat).object_id).to eql(vat.object_id)
28
28
  end
29
29
  end
@@ -42,6 +42,29 @@ describe Valvat do
42
42
  end
43
43
  end
44
44
 
45
+ describe 'object equality' do
46
+ it 'returns true when the underlying number are the same' do
47
+ first = "DE259597697"
48
+ second = "DE259597697"
49
+
50
+ expect(described_class.new(first)).to eql(described_class.new(second))
51
+ end
52
+
53
+ it 'returns true when the underlying number are the same when normalized' do
54
+ first = "DE259597697"
55
+ second = "DE 2595 9 7697 "
56
+
57
+ expect(described_class.new(first)).to eql(described_class.new(second))
58
+ end
59
+
60
+ it 'returns false when the underlying number are different' do
61
+ first = "DE259597697"
62
+ second = "ATU458890031"
63
+
64
+ expect(described_class.new(first)).not_to eql(described_class.new(second))
65
+ end
66
+ end
67
+
45
68
  context 'with european VAT number' do
46
69
  let(:de_vat) { described_class.new('DE259597697') } # valid & exists
47
70
  let(:invalid_checksum) { described_class.new('DE259597687') } # valid & invalid checksum
data/valvat.gemspec CHANGED
@@ -9,14 +9,13 @@ Gem::Specification.new do |s|
9
9
  s.platform = Gem::Platform::RUBY
10
10
  s.license = 'MIT'
11
11
  s.authors = ['Sebastian Munz']
12
- s.email = ['sebastian@yo.lk']
12
+ s.email = ['sebastian@mite.de']
13
13
  s.homepage = 'https://github.com/yolk/valvat'
14
14
  s.summary = 'Validates european vat numbers. Standalone or as a ActiveModel validator.'
15
15
  s.description = 'Validates european vat numbers. Standalone or as a ActiveModel validator.'
16
16
  s.files = `git ls-files`.split("\n")
17
- s.test_files = `git ls-files -- spec/*`.split("\n")
18
17
  s.require_paths = ['lib']
19
- s.cert_chain = ['certs/yolk.pem']
18
+ s.cert_chain = ['certs/mite.pem']
20
19
  s.signing_key = File.expand_path('~/.ssh/gem-private_key.pem') if $PROGRAM_NAME =~ /gem\z/
21
20
  s.required_ruby_version = '>= 2.5.0'
22
21
 
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: valvat
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sebastian Munz
@@ -10,32 +10,32 @@ bindir: bin
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
- MIIEZDCCAsygAwIBAgIBATANBgkqhkiG9w0BAQsFADA8MRIwEAYDVQQDDAlzZWJh
14
- c3RpYW4xEjAQBgoJkiaJk/IsZAEZFgJ5bzESMBAGCgmSJomT8ixkARkWAmxrMB4X
15
- DTIyMDEyNjE4MjIxNFoXDTIzMDEyNjE4MjIxNFowPDESMBAGA1UEAwwJc2ViYXN0
16
- aWFuMRIwEAYKCZImiZPyLGQBGRYCeW8xEjAQBgoJkiaJk/IsZAEZFgJsazCCAaIw
17
- DQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAM8Gdm81LvuqMyJr9sO+KtJz+PhM
18
- x75w6uc5q3J8sTHGhOtWJlXiBFf8gbBkxUsQwDMEEbJ+WV63oqq9InVBrMHg9FxH
19
- 415dC0UlCv5IjKij4N5OVRnUTZDoxXczVVscNFyQcRhJO1TqORw6uOF8gd/MVWl4
20
- 6gJapzkLBMTIaqRUVbX3hTJpiGc1RV2zJmLkkvBtJ+lzqza0bklXh52LLs2UpTc1
21
- e5ADVoq9K09G5QXES/GlFMYerQbtdXl0KpUQugXtRFAOoOrFKQFLETZSDq80lC7p
22
- +zN+wNOEAuHtJP7EZVk/gU8hEkSDMexW5NRndgeQb+N/JH8DIRBbhOytZbAo19Pq
23
- LEZBucHheI0xstLWuIP+ktwa/rIWv5v4gv3JZ/4H3q6tGPHigLKneRmaXo3e6jna
24
- RFDxQLXbJgI37qusk4Qyl/iBVSBZ+TABBvA/jPXnHdd29qkuMTXvWLIiBDM6H0+2
25
- SUabsieR1CqNZs/6YLO7nQHwFudHqzo8OB4+3QIDAQABo3EwbzAJBgNVHRMEAjAA
26
- MAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUfC99QRDzqEe0tw1Da+XR9u4dmjEwGgYD
27
- VR0RBBMwEYEPc2ViYXN0aWFuQHlvLmxrMBoGA1UdEgQTMBGBD3NlYmFzdGlhbkB5
28
- by5sazANBgkqhkiG9w0BAQsFAAOCAYEAwYCyAFFXgYXWgaO8vQEZoQSjp5v6g1v/
29
- t9TcO8JmX6UqEgoRHsdxPEyCK9RroYIv7X5GDyJ12ZdiGpzCqJiBIC9Gz3cCWAbp
30
- LtnkhO8SQbz5B0NMOvo4o6XnbAr+rhVihuJmf0zXInnm1KZW/Yi+4JNAebPqwF1S
31
- VZ/2Dz2BtTuTFhqlHOGxV2NxcnZjFff9kfUOLwl/oNUKgBecsMP5aW74zSOmc2fO
32
- 3sykOkKf5mWSY/KSuaCmAP1Ou3UUXOQmxiPUW9SDAzhYGKS63yPMkzJAziDP9ewI
33
- zmOE2OJr0NuCmH9ykqlJZU4wnmloCnE1+8kHCl4+76cgBnN5gnYnzUb4RDM3J4EI
34
- Jdm7+JxQbgAP/HJ2C2ara+uwc9jwhw2s1b2+TPnVCZdh9uBttHWfk0wgDoeFwky1
35
- BUdT7mtr41GgvWnIjaGWAldSuabxx5H+PKS5FzjNDMHThRZWuvYp/nP2RXDh4gIa
36
- 7hV09P+XxvS96G+petG5KmC/lev8VqKu
13
+ MIIEbDCCAtSgAwIBAgIBATANBgkqhkiG9w0BAQsFADA+MRIwEAYDVQQDDAlzZWJh
14
+ c3RpYW4xFDASBgoJkiaJk/IsZAEZFgRtaXRlMRIwEAYKCZImiZPyLGQBGRYCZGUw
15
+ HhcNMjMwNDE5MDkxMzEyWhcNMjQwNDE4MDkxMzEyWjA+MRIwEAYDVQQDDAlzZWJh
16
+ c3RpYW4xFDASBgoJkiaJk/IsZAEZFgRtaXRlMRIwEAYKCZImiZPyLGQBGRYCZGUw
17
+ ggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDAWAF/CaDp0cmY7Q2vAqVn
18
+ TpB3xmKKPNfF1Bh9X3P9pKRBl2iCW+JmqIV+J5Yts9mB+OYKfxjJM7mmQwT8DMf2
19
+ KwYIVISGKooRyXPgGgKepYfSfemizey6soCoejIIEHczsRk/FeKcvwlFrqMymBrF
20
+ QP5XhnF0TEQvg/sG97wt8hHH7FwcNn+m8I88abP7ygVMNNOL18EiPd2b/WqalGp0
21
+ aiN/CyGtJdA766QY/wgeYVEHNszzJ3DD7AYy8PWAwouIqmAmdDx7oHu01yyilIHL
22
+ W1l5fqko8TQ3UZjfQBDn4mwUgXT829E7dtQB5O0pkwB2lSY4L2azuC69nVBv7TsB
23
+ nBBCTKqr4JknuMJ1nwoGmOfgVqhmsuiGtMyabtagPg1DUpoXMYuf/PbhmSsgedgH
24
+ j2nCnREKxACA/A1pG3HyDhYqkeb7VA4M1Fx4s1wHXKZw/pmxCxCbB/w34wwV2OUh
25
+ fOtjTuX5/o5Tza2dIeBaENs8xMjqIX6DshtWbrJwyacCAwEAAaN1MHMwCQYDVR0T
26
+ BAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFLjadA9ioIK4kItaOGJOhPYM/dVJ
27
+ MBwGA1UdEQQVMBOBEXNlYmFzdGlhbkBtaXRlLmRlMBwGA1UdEgQVMBOBEXNlYmFz
28
+ dGlhbkBtaXRlLmRlMA0GCSqGSIb3DQEBCwUAA4IBgQCQtG2K4dDwQhBkCpSgP8sC
29
+ rc8v5siwMa306nG9Bs3c+KbVI8xJM8APqG8y+DUGzx0i+AIE9g5i2c7H9rwXSA9t
30
+ BRTXZ6O7Hjmkn4pUC8Yc2ylNgP9pdpYxqwe6ZVah8DdGW7m/dQwSisKtO+0XFwB8
31
+ rJmI29qalNK4bzk+DOW9pMdIfIHsbFU7pzTcFBux/MzIqQO24A+zcdYIz7MHBucF
32
+ 85qF319BKW5/HgZMgxm26obTKJFEMDODYlNmm5ywvQCHSCyJ1yW/IFiCpqhiLm5w
33
+ R8JZvYWO38fAsYF3VowUCmsqOBdaQo+L3aA/NVmhNeh4LddJwjrqY+Duw2Gz+DdP
34
+ VyquPzH92Wc7Etd50IFILEkNV2VvRctuyY5/TAWoLKI9RQGYpKxd4jqZRtZFfODY
35
+ O1ARwPz8pN+xIvxo8ex8Hz1sazm/iFgVBwHgaI3O3ctK7vF4+fAu6dlLcbEpij9z
36
+ 4QlUng62OJRSBV/ejaTTItcAOXBeh028ZFWC0QQR4r0=
37
37
  -----END CERTIFICATE-----
38
- date: 2022-10-05 00:00:00.000000000 Z
38
+ date: 2023-04-19 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: rexml
@@ -115,7 +115,7 @@ dependencies:
115
115
  version: '3.0'
116
116
  description: Validates european vat numbers. Standalone or as a ActiveModel validator.
117
117
  email:
118
- - sebastian@yo.lk
118
+ - sebastian@mite.de
119
119
  executables: []
120
120
  extensions: []
121
121
  extra_rdoc_files: []
@@ -130,6 +130,7 @@ files:
130
130
  - MIT-LICENSE
131
131
  - README.md
132
132
  - Rakefile
133
+ - certs/mite.pem
133
134
  - certs/yolk.pem
134
135
  - gemfiles/activemodel-5
135
136
  - gemfiles/activemodel-6
@@ -247,42 +248,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
247
248
  - !ruby/object:Gem::Version
248
249
  version: '0'
249
250
  requirements: []
250
- rubygems_version: 3.3.3
251
+ rubygems_version: 3.3.26
251
252
  signing_key:
252
253
  specification_version: 4
253
254
  summary: Validates european vat numbers. Standalone or as a ActiveModel validator.
254
- test_files:
255
- - spec/active_model/validations/valvat_validator_spec.rb
256
- - spec/spec_helper.rb
257
- - spec/valvat/checksum/at_spec.rb
258
- - spec/valvat/checksum/be_spec.rb
259
- - spec/valvat/checksum/bg_spec.rb
260
- - spec/valvat/checksum/cy_spec.rb
261
- - spec/valvat/checksum/de_spec.rb
262
- - spec/valvat/checksum/dk_spec.rb
263
- - spec/valvat/checksum/ee_spec.rb
264
- - spec/valvat/checksum/es_spec.rb
265
- - spec/valvat/checksum/fi_spec.rb
266
- - spec/valvat/checksum/fr_spec.rb
267
- - spec/valvat/checksum/gb_spec.rb
268
- - spec/valvat/checksum/gr_spec.rb
269
- - spec/valvat/checksum/hr_spec.rb
270
- - spec/valvat/checksum/hu_spec.rb
271
- - spec/valvat/checksum/ie_spec.rb
272
- - spec/valvat/checksum/it_spec.rb
273
- - spec/valvat/checksum/lt_spec.rb
274
- - spec/valvat/checksum/lu_spec.rb
275
- - spec/valvat/checksum/mt_spec.rb
276
- - spec/valvat/checksum/nl_spec.rb
277
- - spec/valvat/checksum/pl_spec.rb
278
- - spec/valvat/checksum/pt_spec.rb
279
- - spec/valvat/checksum/ro_spec.rb
280
- - spec/valvat/checksum/se_spec.rb
281
- - spec/valvat/checksum/si_spec.rb
282
- - spec/valvat/checksum_spec.rb
283
- - spec/valvat/lookup/hmrc_spec.rb
284
- - spec/valvat/lookup/vies_spec.rb
285
- - spec/valvat/lookup_spec.rb
286
- - spec/valvat/syntax_spec.rb
287
- - spec/valvat/utils_spec.rb
288
- - spec/valvat_spec.rb
255
+ test_files: []
metadata.gz.sig CHANGED
Binary file