valvat 1.2.0 → 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: d8adbca62e2ebbf198c817bfed2cf8dc2d375a24cb146dff52ce42a6dd59750d
4
- data.tar.gz: 84949112505cff60333ff382583b54f4b4c20cb86e59bf5cbb1c16616c1c3ce7
3
+ metadata.gz: f03e6103f577ebcec25d3cbd5c4e2e13c914945c13a1767912f9f49380c9a6ae
4
+ data.tar.gz: db8423cf0d17a8c3a7a840d7d22ff887b6296442da31fc11931aa24aafd6c630
5
5
  SHA512:
6
- metadata.gz: d2c2cb07112932730644124d140dc29a8e1ffc2e0b590d67ef1ff9f24dfb9c327fc72c189a8ebccdb983c04271c5cabebfa210bc20a61d8b9788c489135d58f9
7
- data.tar.gz: 543a2f012caac4dfb874d9c5cca697b3cde38bbb16ca646ff87e66020d913f58094890ceed95d0ffa39637d4c538253358fe0f6ae4ea0a045fe6de4fd9f8585b
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,22 @@
1
1
 
2
2
  ### dev
3
3
 
4
- [full changelog](http://github.com/yolk/valvat/compare/v1.2.0...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
12
+
13
+ ### 1.2.1 / 2022-10-05
14
+
15
+ [full changelog](http://github.com/yolk/valvat/compare/v1.2.0...v1.2.1)
16
+
17
+ * Added missing dependency rexml #117
18
+ * Lookup: Retry IOError
19
+ * Lookup: require 'date' in VIES and 'time' in HMRC
5
20
 
6
21
  ### 1.2.0 / 2022-09-30
7
22
 
data/README.md CHANGED
@@ -18,11 +18,11 @@ Northern Ireland received its own VAT number prefix - XI which is supported by V
18
18
  * (Optional) lookup via the HMRC web service (for UK VAT numbers)
19
19
  * ActiveModel/Rails integration
20
20
  * Works standalone without ActiveModel
21
- * No runtime dependencies
21
+ * Minimal runtime dependencies
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,12 +39,12 @@ 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
46
46
  end
47
- rescue Errno::ECONNRESET
47
+ rescue Errno::ECONNRESET, IOError
48
48
  raise if limit > 5
49
49
 
50
50
  fetch(uri, limit + 1)
@@ -3,6 +3,7 @@
3
3
  require_relative 'base'
4
4
  require 'net/http'
5
5
  require 'json'
6
+ require 'time'
6
7
 
7
8
  class Valvat
8
9
  class Lookup
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative 'base'
4
+ require 'date'
4
5
  require 'net/http'
5
6
  require 'erb'
6
7
  require 'rexml'
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.0'
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,17 +9,18 @@ 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
 
22
+ s.add_runtime_dependency('rexml', '>= 3.2', '< 4.0')
23
+
23
24
  s.add_development_dependency 'activemodel', '>= 5.0'
24
25
  s.add_development_dependency 'rake'
25
26
  s.add_development_dependency 'rspec', '~> 3.0'
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.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sebastian Munz
@@ -10,33 +10,53 @@ 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-09-30 00:00:00.000000000 Z
38
+ date: 2023-04-19 00:00:00.000000000 Z
39
39
  dependencies:
40
+ - !ruby/object:Gem::Dependency
41
+ name: rexml
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: '3.2'
47
+ - - "<"
48
+ - !ruby/object:Gem::Version
49
+ version: '4.0'
50
+ type: :runtime
51
+ prerelease: false
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: '3.2'
57
+ - - "<"
58
+ - !ruby/object:Gem::Version
59
+ version: '4.0'
40
60
  - !ruby/object:Gem::Dependency
41
61
  name: activemodel
42
62
  requirement: !ruby/object:Gem::Requirement
@@ -95,7 +115,7 @@ dependencies:
95
115
  version: '3.0'
96
116
  description: Validates european vat numbers. Standalone or as a ActiveModel validator.
97
117
  email:
98
- - sebastian@yo.lk
118
+ - sebastian@mite.de
99
119
  executables: []
100
120
  extensions: []
101
121
  extra_rdoc_files: []
@@ -110,6 +130,7 @@ files:
110
130
  - MIT-LICENSE
111
131
  - README.md
112
132
  - Rakefile
133
+ - certs/mite.pem
113
134
  - certs/yolk.pem
114
135
  - gemfiles/activemodel-5
115
136
  - gemfiles/activemodel-6
@@ -227,42 +248,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
227
248
  - !ruby/object:Gem::Version
228
249
  version: '0'
229
250
  requirements: []
230
- rubygems_version: 3.3.3
251
+ rubygems_version: 3.3.26
231
252
  signing_key:
232
253
  specification_version: 4
233
254
  summary: Validates european vat numbers. Standalone or as a ActiveModel validator.
234
- test_files:
235
- - spec/active_model/validations/valvat_validator_spec.rb
236
- - spec/spec_helper.rb
237
- - spec/valvat/checksum/at_spec.rb
238
- - spec/valvat/checksum/be_spec.rb
239
- - spec/valvat/checksum/bg_spec.rb
240
- - spec/valvat/checksum/cy_spec.rb
241
- - spec/valvat/checksum/de_spec.rb
242
- - spec/valvat/checksum/dk_spec.rb
243
- - spec/valvat/checksum/ee_spec.rb
244
- - spec/valvat/checksum/es_spec.rb
245
- - spec/valvat/checksum/fi_spec.rb
246
- - spec/valvat/checksum/fr_spec.rb
247
- - spec/valvat/checksum/gb_spec.rb
248
- - spec/valvat/checksum/gr_spec.rb
249
- - spec/valvat/checksum/hr_spec.rb
250
- - spec/valvat/checksum/hu_spec.rb
251
- - spec/valvat/checksum/ie_spec.rb
252
- - spec/valvat/checksum/it_spec.rb
253
- - spec/valvat/checksum/lt_spec.rb
254
- - spec/valvat/checksum/lu_spec.rb
255
- - spec/valvat/checksum/mt_spec.rb
256
- - spec/valvat/checksum/nl_spec.rb
257
- - spec/valvat/checksum/pl_spec.rb
258
- - spec/valvat/checksum/pt_spec.rb
259
- - spec/valvat/checksum/ro_spec.rb
260
- - spec/valvat/checksum/se_spec.rb
261
- - spec/valvat/checksum/si_spec.rb
262
- - spec/valvat/checksum_spec.rb
263
- - spec/valvat/lookup/hmrc_spec.rb
264
- - spec/valvat/lookup/vies_spec.rb
265
- - spec/valvat/lookup_spec.rb
266
- - spec/valvat/syntax_spec.rb
267
- - spec/valvat/utils_spec.rb
268
- - spec/valvat_spec.rb
255
+ test_files: []
metadata.gz.sig CHANGED
Binary file