valvat 1.2.1 → 1.3.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 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