valvat 0.9.1 → 1.0.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.tar.gz.sig +0 -0
- data/.gitignore +2 -1
- data/.travis.yml +30 -16
- data/CHANGES.md +13 -0
- data/Gemfile +2 -3
- data/README.md +90 -44
- data/gemfiles/activemodel-3-2 +3 -4
- data/gemfiles/activemodel-4 +3 -4
- data/gemfiles/activemodel-5 +4 -5
- data/gemfiles/activemodel-6 +7 -0
- data/gemfiles/before-ruby21/activemodel-3-2 +3 -4
- data/gemfiles/before-ruby21/activemodel-4 +3 -4
- data/gemfiles/before-ruby21/standalone +3 -4
- data/gemfiles/standalone +3 -5
- data/lib/active_model/validations/valvat_validator.rb +20 -5
- data/lib/valvat.rb +3 -1
- data/lib/valvat/checksum/gb.rb +30 -13
- data/lib/valvat/checksum/ie.rb +1 -1
- data/lib/valvat/error.rb +28 -0
- data/lib/valvat/locales/en.yml +1 -1
- data/lib/valvat/lookup.rb +11 -43
- data/lib/valvat/lookup/fault.rb +30 -0
- data/lib/valvat/lookup/request.rb +33 -12
- data/lib/valvat/lookup/response.rb +36 -0
- data/lib/valvat/version.rb +1 -1
- data/spec/active_model/validations/valvat_validator_spec.rb +66 -66
- data/spec/valvat/checksum/at_spec.rb +2 -2
- data/spec/valvat/checksum/be_spec.rb +2 -2
- data/spec/valvat/checksum/bg_spec.rb +2 -2
- data/spec/valvat/checksum/cy_spec.rb +2 -2
- data/spec/valvat/checksum/de_spec.rb +2 -2
- data/spec/valvat/checksum/dk_spec.rb +2 -2
- data/spec/valvat/checksum/ee_spec.rb +2 -2
- data/spec/valvat/checksum/es_spec.rb +2 -2
- data/spec/valvat/checksum/fi_spec.rb +2 -2
- data/spec/valvat/checksum/fr_spec.rb +2 -2
- data/spec/valvat/checksum/gb_spec.rb +5 -3
- data/spec/valvat/checksum/gr_spec.rb +2 -2
- data/spec/valvat/checksum/hr_spec.rb +2 -2
- data/spec/valvat/checksum/hu_spec.rb +2 -2
- data/spec/valvat/checksum/ie_spec.rb +8 -2
- data/spec/valvat/checksum/it_spec.rb +4 -4
- data/spec/valvat/checksum/lt_spec.rb +2 -2
- data/spec/valvat/checksum/lu_spec.rb +2 -2
- data/spec/valvat/checksum/mt_spec.rb +2 -2
- data/spec/valvat/checksum/nl_spec.rb +2 -2
- data/spec/valvat/checksum/pl_spec.rb +3 -3
- data/spec/valvat/checksum/pt_spec.rb +2 -2
- data/spec/valvat/checksum/ro_spec.rb +2 -2
- data/spec/valvat/checksum/se_spec.rb +3 -3
- data/spec/valvat/checksum/si_spec.rb +4 -4
- data/spec/valvat/checksum_spec.rb +2 -2
- data/spec/valvat/lockup/fault_spec.rb +32 -0
- data/spec/valvat/lockup/request_spec.rb +15 -0
- data/spec/valvat/lockup/response_spec.rb +27 -0
- data/spec/valvat/lookup_spec.rb +168 -35
- data/spec/valvat/syntax_spec.rb +29 -29
- data/spec/valvat/utils_spec.rb +6 -6
- data/spec/valvat_spec.rb +18 -18
- data/valvat.gemspec +1 -0
- metadata +29 -6
- metadata.gz.sig +0 -0
- data/lib/valvat/lookup/request_with_id.rb +0 -31
data/spec/valvat/utils_spec.rb
CHANGED
@@ -3,7 +3,7 @@ require 'spec_helper'
|
|
3
3
|
|
4
4
|
describe Valvat::Utils do
|
5
5
|
describe "#split" do
|
6
|
-
it "returns country and rest on
|
6
|
+
it "returns country and rest on VAT number as array" do
|
7
7
|
expect(Valvat::Utils.split("DE345889003")).to eql(["DE", "345889003"])
|
8
8
|
expect(Valvat::Utils.split("ESX4588900X")).to eql(["ES", "X4588900X"])
|
9
9
|
end
|
@@ -27,18 +27,18 @@ describe Valvat::Utils do
|
|
27
27
|
end
|
28
28
|
|
29
29
|
describe "#normalize" do
|
30
|
-
it "returns
|
30
|
+
it "returns VAT number with upcase chars" do
|
31
31
|
expect(Valvat::Utils.normalize("de345889003")).to eql("DE345889003")
|
32
32
|
expect(Valvat::Utils.normalize("EsX4588900y")).to eql("ESX4588900Y")
|
33
33
|
end
|
34
34
|
|
35
|
-
it "returns trimmed
|
35
|
+
it "returns trimmed VAT number" do
|
36
36
|
expect(Valvat::Utils.normalize(" DE345889003")).to eql("DE345889003")
|
37
37
|
expect(Valvat::Utils.normalize(" DE345889003 ")).to eql("DE345889003")
|
38
38
|
expect(Valvat::Utils.normalize("DE345889003 ")).to eql("DE345889003")
|
39
39
|
end
|
40
40
|
|
41
|
-
it "does not change already normalized
|
41
|
+
it "does not change already normalized VAT numbers" do
|
42
42
|
expect(Valvat::Utils.normalize("DE345889003")).to eql("DE345889003")
|
43
43
|
expect(Valvat::Utils.normalize("ESX4588900X")).to eql("ESX4588900X")
|
44
44
|
end
|
@@ -67,12 +67,12 @@ describe Valvat::Utils do
|
|
67
67
|
end
|
68
68
|
|
69
69
|
describe "#iso_country_to_vat_country" do
|
70
|
-
it "returns
|
70
|
+
it "returns VAT country on greek iso country code 'GR'" do
|
71
71
|
expect(Valvat::Utils.iso_country_to_vat_country("GR")).to eql("EL")
|
72
72
|
end
|
73
73
|
|
74
74
|
Valvat::Utils::EU_COUNTRIES.reject{|c| c == "GR"}.each do |c|
|
75
|
-
it "returns unchanged
|
75
|
+
it "returns unchanged VAT country code '#{c}'" do
|
76
76
|
expect(Valvat::Utils.iso_country_to_vat_country(c)).to eql(c)
|
77
77
|
end
|
78
78
|
end
|
data/spec/valvat_spec.rb
CHANGED
@@ -44,7 +44,7 @@ describe Valvat do
|
|
44
44
|
end
|
45
45
|
end
|
46
46
|
|
47
|
-
context "on european
|
47
|
+
context "on european VAT number" do
|
48
48
|
let(:de_vat) { Valvat.new("DE259597697") } # valid & exists
|
49
49
|
let(:invalid_checksum) { Valvat.new("DE259597687") } # valid & invalid checksum
|
50
50
|
let(:at_vat) { Valvat.new("ATU458890031") } # invalid
|
@@ -74,9 +74,9 @@ describe Valvat do
|
|
74
74
|
end
|
75
75
|
|
76
76
|
describe "#exist(s)?" do
|
77
|
-
context "on existing
|
77
|
+
context "on existing VAT numbers" do
|
78
78
|
before do
|
79
|
-
allow(Valvat::Lookup).to receive_messages(:
|
79
|
+
allow(Valvat::Lookup).to receive_messages(validate: true)
|
80
80
|
end
|
81
81
|
|
82
82
|
it "returns true" do
|
@@ -87,9 +87,9 @@ describe Valvat do
|
|
87
87
|
end
|
88
88
|
end
|
89
89
|
|
90
|
-
context "on not existing
|
90
|
+
context "on not existing VAT numbers" do
|
91
91
|
before do
|
92
|
-
allow(Valvat::Lookup).to receive_messages(:
|
92
|
+
allow(Valvat::Lookup).to receive_messages(validate: false)
|
93
93
|
end
|
94
94
|
|
95
95
|
it "returns false" do
|
@@ -100,8 +100,8 @@ describe Valvat do
|
|
100
100
|
|
101
101
|
context "with options" do
|
102
102
|
it "calls Valvat::Lookup.validate with options" do
|
103
|
-
expect(Valvat::Lookup).to receive(:validate).once.with(de_vat, :
|
104
|
-
expect(de_vat.exists?(:
|
103
|
+
expect(Valvat::Lookup).to receive(:validate).once.with(de_vat, detail: true, bla: 'blupp').and_return(true)
|
104
|
+
expect(de_vat.exists?(detail: true, bla: 'blupp')).to eql(true)
|
105
105
|
end
|
106
106
|
end
|
107
107
|
end
|
@@ -112,7 +112,7 @@ describe Valvat do
|
|
112
112
|
expect(at_vat.iso_country_code).to eql("AT")
|
113
113
|
end
|
114
114
|
|
115
|
-
it "returns GR iso country code on greek
|
115
|
+
it "returns GR iso country code on greek VAT number" do
|
116
116
|
expect(gr_vat.iso_country_code).to eql("GR")
|
117
117
|
end
|
118
118
|
end
|
@@ -123,7 +123,7 @@ describe Valvat do
|
|
123
123
|
expect(at_vat.vat_country_code).to eql("AT")
|
124
124
|
end
|
125
125
|
|
126
|
-
it "returns EL iso language code on greek
|
126
|
+
it "returns EL iso language code on greek VAT number" do
|
127
127
|
expect(gr_vat.vat_country_code).to eql("EL")
|
128
128
|
end
|
129
129
|
end
|
@@ -137,7 +137,7 @@ describe Valvat do
|
|
137
137
|
end
|
138
138
|
|
139
139
|
describe "#to_s" do
|
140
|
-
it "returns full
|
140
|
+
it "returns full VAT number" do
|
141
141
|
expect(de_vat.to_s).to eql("DE259597697")
|
142
142
|
expect(at_vat.to_s).to eql("ATU458890031")
|
143
143
|
expect(gr_vat.to_s).to eql("EL999943280")
|
@@ -145,7 +145,7 @@ describe Valvat do
|
|
145
145
|
end
|
146
146
|
|
147
147
|
describe "#inspect" do
|
148
|
-
it "returns
|
148
|
+
it "returns VAT number with iso country code" do
|
149
149
|
expect(de_vat.inspect).to eql("#<Valvat DE259597697 DE>")
|
150
150
|
expect(at_vat.inspect).to eql("#<Valvat ATU458890031 AT>")
|
151
151
|
expect(gr_vat.inspect).to eql("#<Valvat EL999943280 GR>")
|
@@ -153,7 +153,7 @@ describe Valvat do
|
|
153
153
|
end
|
154
154
|
|
155
155
|
describe "#to_a" do
|
156
|
-
it "calls Valvat::Utils.split with raw
|
156
|
+
it "calls Valvat::Utils.split with raw VAT number and returns result" do
|
157
157
|
de_vat # initialize
|
158
158
|
expect(Valvat::Utils).to receive(:split).once.with("DE259597697").and_return(["a", "b"])
|
159
159
|
expect(de_vat.to_a).to eql(["a", "b"])
|
@@ -161,7 +161,7 @@ describe Valvat do
|
|
161
161
|
end
|
162
162
|
end
|
163
163
|
|
164
|
-
context "on
|
164
|
+
context "on VAT number from outside of europe" do
|
165
165
|
let(:us_vat) { Valvat.new("US345889003") }
|
166
166
|
let(:ch_vat) { Valvat.new("CH445889003") }
|
167
167
|
|
@@ -201,14 +201,14 @@ describe Valvat do
|
|
201
201
|
end
|
202
202
|
|
203
203
|
describe "#to_s" do
|
204
|
-
it "returns full given
|
204
|
+
it "returns full given VAT number" do
|
205
205
|
expect(us_vat.to_s).to eql("US345889003")
|
206
206
|
expect(ch_vat.to_s).to eql("CH445889003")
|
207
207
|
end
|
208
208
|
end
|
209
209
|
|
210
210
|
describe "#inspect" do
|
211
|
-
it "returns
|
211
|
+
it "returns VAT number without iso country code" do
|
212
212
|
expect(us_vat.inspect).to eql("#<Valvat US345889003>")
|
213
213
|
expect(ch_vat.inspect).to eql("#<Valvat CH445889003>")
|
214
214
|
end
|
@@ -216,7 +216,7 @@ describe Valvat do
|
|
216
216
|
|
217
217
|
end
|
218
218
|
|
219
|
-
context "on non-sense/empty
|
219
|
+
context "on non-sense/empty VAT number" do
|
220
220
|
let(:only_iso_vat) { Valvat.new("DE") }
|
221
221
|
let(:num_vat) { Valvat.new("12445889003") }
|
222
222
|
let(:empty_vat) { Valvat.new("") }
|
@@ -268,7 +268,7 @@ describe Valvat do
|
|
268
268
|
end
|
269
269
|
|
270
270
|
describe "#to_s" do
|
271
|
-
it "returns full given
|
271
|
+
it "returns full given VAT number" do
|
272
272
|
expect(only_iso_vat.to_s).to eql("DE")
|
273
273
|
expect(num_vat.to_s).to eql("12445889003")
|
274
274
|
expect(empty_vat.to_s).to eql("")
|
@@ -277,7 +277,7 @@ describe Valvat do
|
|
277
277
|
end
|
278
278
|
|
279
279
|
describe "#inspect" do
|
280
|
-
it "returns
|
280
|
+
it "returns VAT number without iso country code" do
|
281
281
|
expect(only_iso_vat.inspect).to eql("#<Valvat DE>")
|
282
282
|
expect(num_vat.inspect).to eql("#<Valvat 12445889003>")
|
283
283
|
expect(empty_vat.inspect).to eql("#<Valvat >")
|
data/valvat.gemspec
CHANGED
metadata
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: valvat
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sebastian Munz
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain:
|
11
11
|
- |
|
@@ -34,7 +34,7 @@ cert_chain:
|
|
34
34
|
rAFNAD1QEGN6elQdy1MRuXwjcUhM8P8ofLDEaE225TSZvAI+XoCxW2PSsQj5cGER
|
35
35
|
9vbf6JSKzQPa/HeBoU0s1Q==
|
36
36
|
-----END CERTIFICATE-----
|
37
|
-
date: 2020-
|
37
|
+
date: 2020-11-06 00:00:00.000000000 Z
|
38
38
|
dependencies:
|
39
39
|
- !ruby/object:Gem::Dependency
|
40
40
|
name: savon
|
@@ -50,6 +50,20 @@ dependencies:
|
|
50
50
|
- - ">="
|
51
51
|
- !ruby/object:Gem::Version
|
52
52
|
version: 2.3.0
|
53
|
+
- !ruby/object:Gem::Dependency
|
54
|
+
name: rake
|
55
|
+
requirement: !ruby/object:Gem::Requirement
|
56
|
+
requirements:
|
57
|
+
- - ">="
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: '0'
|
60
|
+
type: :development
|
61
|
+
prerelease: false
|
62
|
+
version_requirements: !ruby/object:Gem::Requirement
|
63
|
+
requirements:
|
64
|
+
- - ">="
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: '0'
|
53
67
|
- !ruby/object:Gem::Dependency
|
54
68
|
name: rspec
|
55
69
|
requirement: !ruby/object:Gem::Requirement
|
@@ -98,6 +112,7 @@ files:
|
|
98
112
|
- gemfiles/activemodel-3-2
|
99
113
|
- gemfiles/activemodel-4
|
100
114
|
- gemfiles/activemodel-5
|
115
|
+
- gemfiles/activemodel-6
|
101
116
|
- gemfiles/before-ruby21/activemodel-3-2
|
102
117
|
- gemfiles/before-ruby21/activemodel-4
|
103
118
|
- gemfiles/before-ruby21/standalone
|
@@ -130,6 +145,7 @@ files:
|
|
130
145
|
- lib/valvat/checksum/ro.rb
|
131
146
|
- lib/valvat/checksum/se.rb
|
132
147
|
- lib/valvat/checksum/si.rb
|
148
|
+
- lib/valvat/error.rb
|
133
149
|
- lib/valvat/local.rb
|
134
150
|
- lib/valvat/locales/bg.yml
|
135
151
|
- lib/valvat/locales/ca.yml
|
@@ -152,8 +168,9 @@ files:
|
|
152
168
|
- lib/valvat/locales/sv.yml
|
153
169
|
- lib/valvat/locales/tr.yml
|
154
170
|
- lib/valvat/lookup.rb
|
171
|
+
- lib/valvat/lookup/fault.rb
|
155
172
|
- lib/valvat/lookup/request.rb
|
156
|
-
- lib/valvat/lookup/
|
173
|
+
- lib/valvat/lookup/response.rb
|
157
174
|
- lib/valvat/syntax.rb
|
158
175
|
- lib/valvat/utils.rb
|
159
176
|
- lib/valvat/version.rb
|
@@ -185,6 +202,9 @@ files:
|
|
185
202
|
- spec/valvat/checksum/se_spec.rb
|
186
203
|
- spec/valvat/checksum/si_spec.rb
|
187
204
|
- spec/valvat/checksum_spec.rb
|
205
|
+
- spec/valvat/lockup/fault_spec.rb
|
206
|
+
- spec/valvat/lockup/request_spec.rb
|
207
|
+
- spec/valvat/lockup/response_spec.rb
|
188
208
|
- spec/valvat/lookup_spec.rb
|
189
209
|
- spec/valvat/syntax_spec.rb
|
190
210
|
- spec/valvat/utils_spec.rb
|
@@ -194,7 +214,7 @@ homepage: https://github.com/yolk/valvat
|
|
194
214
|
licenses:
|
195
215
|
- MIT
|
196
216
|
metadata: {}
|
197
|
-
post_install_message:
|
217
|
+
post_install_message:
|
198
218
|
rdoc_options: []
|
199
219
|
require_paths:
|
200
220
|
- lib
|
@@ -210,7 +230,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
210
230
|
version: '0'
|
211
231
|
requirements: []
|
212
232
|
rubygems_version: 3.0.3
|
213
|
-
signing_key:
|
233
|
+
signing_key:
|
214
234
|
specification_version: 4
|
215
235
|
summary: Validates european vat numbers. Standalone or as a ActiveModel validator.
|
216
236
|
test_files:
|
@@ -242,6 +262,9 @@ test_files:
|
|
242
262
|
- spec/valvat/checksum/se_spec.rb
|
243
263
|
- spec/valvat/checksum/si_spec.rb
|
244
264
|
- spec/valvat/checksum_spec.rb
|
265
|
+
- spec/valvat/lockup/fault_spec.rb
|
266
|
+
- spec/valvat/lockup/request_spec.rb
|
267
|
+
- spec/valvat/lockup/response_spec.rb
|
245
268
|
- spec/valvat/lookup_spec.rb
|
246
269
|
- spec/valvat/syntax_spec.rb
|
247
270
|
- spec/valvat/utils_spec.rb
|
metadata.gz.sig
CHANGED
Binary file
|
@@ -1,31 +0,0 @@
|
|
1
|
-
class Valvat
|
2
|
-
class Lookup
|
3
|
-
class RequestWithId < Request
|
4
|
-
def initialize(vat, requester_vat)
|
5
|
-
@vat = vat
|
6
|
-
@requester_vat = requester_vat
|
7
|
-
end
|
8
|
-
|
9
|
-
private
|
10
|
-
|
11
|
-
def body
|
12
|
-
super.merge(
|
13
|
-
:requester_country_code => @requester_vat.vat_country_code,
|
14
|
-
:requester_vat_number => @requester_vat.to_s_wo_country
|
15
|
-
)
|
16
|
-
end
|
17
|
-
|
18
|
-
def message_tag
|
19
|
-
:checkVatApprox
|
20
|
-
end
|
21
|
-
|
22
|
-
def action
|
23
|
-
:check_vat_approx
|
24
|
-
end
|
25
|
-
|
26
|
-
def response_key
|
27
|
-
:check_vat_approx_response
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|