valvat 1.2.0 → 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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/.github/workflows/ruby.yml +9 -5
- data/CHANGES.md +16 -1
- data/README.md +3 -3
- data/certs/mite.pem +26 -0
- data/gemfiles/activemodel-5 +0 -2
- data/gemfiles/activemodel-6 +0 -5
- data/gemfiles/activemodel-7 +0 -5
- data/gemfiles/standalone +0 -5
- data/lib/valvat/checksum/fr.rb +14 -0
- data/lib/valvat/lookup/base.rb +2 -2
- data/lib/valvat/lookup/hmrc.rb +1 -0
- data/lib/valvat/lookup/vies.rb +1 -0
- data/lib/valvat/syntax.rb +1 -1
- data/lib/valvat/version.rb +1 -1
- data/lib/valvat.rb +5 -0
- data/spec/valvat/checksum/es_spec.rb +1 -1
- data/spec/valvat/checksum/fr_spec.rb +1 -1
- data/spec/valvat/lookup_spec.rb +2 -2
- data/spec/valvat_spec.rb +25 -2
- data/valvat.gemspec +4 -3
- data.tar.gz.sig +0 -0
- metadata +50 -63
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f03e6103f577ebcec25d3cbd5c4e2e13c914945c13a1767912f9f49380c9a6ae
|
|
4
|
+
data.tar.gz: db8423cf0d17a8c3a7a840d7d22ff887b6296442da31fc11931aa24aafd6c630
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c9c92f073fc78fae74582d093bdf76f2747dab68aa44eb7f1106bb82bdc8f63b47a5236e8e1d766bc49a3e68b74f3723c45be6ff9e91f96548cfc526cad33ef1
|
|
7
|
+
data.tar.gz: 3127010ce2d38d7a75ebcb0688850414d8149cb9db5fe8f6f575c2d1bf0ff2bae0b68a39878df8f851654b5d6cea766b2d63c91639aca5d7696776ed01ed3042
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data/.github/workflows/ruby.yml
CHANGED
|
@@ -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-
|
|
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.
|
|
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.
|
|
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.
|
|
30
|
-
gemfile: 'activemodel-
|
|
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.
|
|
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
|
-
*
|
|
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 [
|
|
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-----
|
data/gemfiles/activemodel-5
CHANGED
data/gemfiles/activemodel-6
CHANGED
data/gemfiles/activemodel-7
CHANGED
data/gemfiles/standalone
CHANGED
data/lib/valvat/checksum/fr.rb
CHANGED
|
@@ -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
|
data/lib/valvat/lookup/base.rb
CHANGED
|
@@ -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
|
|
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)
|
data/lib/valvat/lookup/hmrc.rb
CHANGED
data/lib/valvat/lookup/vies.rb
CHANGED
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/,
|
|
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
|
data/lib/valvat/version.rb
CHANGED
data/lib/valvat.rb
CHANGED
|
@@ -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
|
data/spec/valvat/lookup_spec.rb
CHANGED
|
@@ -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
|
|
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
|
|
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@
|
|
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/
|
|
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.
|
|
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
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
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:
|
|
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@
|
|
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.
|
|
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
|