valvat-core 0.0.1
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 +7 -0
- data/.gitignore +5 -0
- data/.rbenv-gemsets +1 -0
- data/.ruby-version +1 -0
- data/.travis.yml +10 -0
- data/CHANGES.md +223 -0
- data/Gemfile +4 -0
- data/Guardfile +5 -0
- data/MIT-LICENSE +20 -0
- data/README.md +61 -0
- data/Rakefile +8 -0
- data/gemfiles/standalone +4 -0
- data/lib/valvat.rb +44 -0
- data/lib/valvat/core.rb +1 -0
- data/lib/valvat/core/version.rb +5 -0
- data/lib/valvat/locales/bg.yml +34 -0
- data/lib/valvat/locales/cs.yml +34 -0
- data/lib/valvat/locales/da.yml +34 -0
- data/lib/valvat/locales/de.yml +34 -0
- data/lib/valvat/locales/en.yml +34 -0
- data/lib/valvat/locales/es.yml +34 -0
- data/lib/valvat/locales/fr.yml +33 -0
- data/lib/valvat/locales/it.yml +34 -0
- data/lib/valvat/locales/lv.yml +34 -0
- data/lib/valvat/locales/nl.yml +34 -0
- data/lib/valvat/locales/pl.yml +34 -0
- data/lib/valvat/locales/pt.yml +34 -0
- data/lib/valvat/locales/ro.yml +34 -0
- data/lib/valvat/locales/sv.yml +34 -0
- data/lib/valvat/syntax.rb +41 -0
- data/lib/valvat/utils.rb +27 -0
- data/spec/spec_helper.rb +11 -0
- data/spec/valvat/syntax_spec.rb +287 -0
- data/spec/valvat/utils_spec.rb +78 -0
- data/spec/valvat_spec.rb +227 -0
- data/valvat-core.gemspec +27 -0
- metadata +125 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 3f1c3ac61821e5dda76536c5bf4f24413ba4ff2b
|
4
|
+
data.tar.gz: 1d33a51ed76f49a85a1966e66c0be2255b3279ee
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 2cccbf512f0aa01895fa8fca654172dfedea9d171246d5acf979f91e4fcd098da3a7d5751ded86e379710cfe7f35b33c62d039795f4852421a8af7a1b9f36b29
|
7
|
+
data.tar.gz: e81b500fc096cfa3b259c7a83ab12ed8bbf1e194a70981ec31900f32bab99446dea5a233dadee79268e065f4e81b00eec8a714207762e34a52e6a79c4c719ddd
|
data/.rbenv-gemsets
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
plugin
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.1.2
|
data/.travis.yml
ADDED
data/CHANGES.md
ADDED
@@ -0,0 +1,223 @@
|
|
1
|
+
### dev
|
2
|
+
|
3
|
+
[full changelog](http://github.com/yolk/valvat/compare/v0.6.7...master)
|
4
|
+
|
5
|
+
* Removed all circular require-statements - fixed #34 (by [Julik Tarkhanov](https://github.com/julik))
|
6
|
+
* Fixed segfault with activemodel requiring files with .rb-suffix - fixed #34 (by [Julik Tarkhanov](https://github.com/julik))
|
7
|
+
|
8
|
+
### 0.6.7 / 2014-11-03
|
9
|
+
|
10
|
+
[full changelog](http://github.com/yolk/valvat/compare/v0.6.6...v0.6.7)
|
11
|
+
|
12
|
+
* Fixed SOAP issue with current wasabi 3.3 - fixed #33
|
13
|
+
* Several minor travis/guard fixes
|
14
|
+
|
15
|
+
### 0.6.6 / 2014-10-02
|
16
|
+
|
17
|
+
[full changelog](http://github.com/yolk/valvat/compare/v0.6.5...v0.6.6)
|
18
|
+
|
19
|
+
* Added czech translations (by [Dawid Cichuta](https://github.com/cichaczem))
|
20
|
+
* Fixed polish translations (by [Dawid Cichuta](https://github.com/cichaczem))
|
21
|
+
|
22
|
+
### 0.6.5 / 2014-06-19
|
23
|
+
|
24
|
+
[full changelog](http://github.com/yolk/valvat/compare/v0.6.4...v0.6.5)
|
25
|
+
|
26
|
+
* Added french, spanish and danish translations (by [Roman Lehnert](https://github.com/romanlehnert))
|
27
|
+
* Specs: Fixed issues with rspec 3
|
28
|
+
* Specs: Switched to :expect syntax
|
29
|
+
|
30
|
+
### 0.6.4 / 2014-04-09
|
31
|
+
|
32
|
+
[full changelog](http://github.com/yolk/valvat/compare/v0.6.3...v0.6.4)
|
33
|
+
|
34
|
+
* Added dutch translations (by [0scarius](https://github.com/0scarius))
|
35
|
+
|
36
|
+
### 0.6.3 / 2014-04-05
|
37
|
+
|
38
|
+
[full changelog](http://github.com/yolk/valvat/compare/v0.6.2...v0.6.3)
|
39
|
+
|
40
|
+
* Fixed portuguese translations (by [Davidslv](https://github.com/Davidslv))
|
41
|
+
|
42
|
+
### 0.6.2 / 2013-11-10
|
43
|
+
|
44
|
+
[full changelog](http://github.com/yolk/valvat/compare/v0.6.1...v0.6.2)
|
45
|
+
|
46
|
+
* Added blank? method to Valvat object
|
47
|
+
|
48
|
+
### 0.6.1 / 2013-09-02
|
49
|
+
|
50
|
+
[full changelog](http://github.com/yolk/valvat/compare/v0.6.0...v0.6.1)
|
51
|
+
|
52
|
+
* Valvat::Lockup: require savon on load
|
53
|
+
|
54
|
+
### 0.6.0 / 2013-08-01
|
55
|
+
|
56
|
+
[full changelog](http://github.com/yolk/valvat/compare/v0.5.0...v0.6.0)
|
57
|
+
|
58
|
+
* Works now with current version of savon gem (2.3.0) (by [liggitt](https://github.com/liggitt))
|
59
|
+
* Corrected regex for IE VAT numbers (by [brianphillips](https://github.com/brianphillips))
|
60
|
+
* Improved PT translation
|
61
|
+
* Some code refactorings
|
62
|
+
* Spec improvments
|
63
|
+
|
64
|
+
### 0.5.0 / 2013-07-18
|
65
|
+
|
66
|
+
[full changelog](http://github.com/yolk/valvat/compare/v0.4.7...v0.5.0)
|
67
|
+
|
68
|
+
* Added experimental checksum verification for 17 european countries (with help from [kirichkov](https://github.com/kirichkov))
|
69
|
+
* Works now with current version of savon gem (2.2.0) (by [nevesenin](https://github.com/nevesenin))
|
70
|
+
|
71
|
+
### 0.4.7 / 2013-07-18
|
72
|
+
|
73
|
+
[full changelog](http://github.com/yolk/valvat/compare/v0.4.6...v0.4.7)
|
74
|
+
|
75
|
+
* Added I18n locales for Polish, Romanian, Italian, Portuguese and Latvian (by [shaundaley39](https://github.com/shaundaley39))
|
76
|
+
|
77
|
+
### 0.4.6 / 2013-07-01
|
78
|
+
|
79
|
+
[full changelog](http://github.com/yolk/valvat/compare/v0.4.5...v0.4.6)
|
80
|
+
|
81
|
+
* Added support for croatian vat numbers (by [mowli](https://github.com/mowli))
|
82
|
+
|
83
|
+
### 0.4.5 / 2013-02-16
|
84
|
+
|
85
|
+
[full changelog](http://github.com/yolk/valvat/compare/v0.4.4...v0.4.5)
|
86
|
+
|
87
|
+
* Added I18n locales in bulgarian (by [kirichkov](https://github.com/kirichkov))
|
88
|
+
|
89
|
+
### 0.4.4 / 2013-01-07
|
90
|
+
|
91
|
+
[full changelog](http://github.com/yolk/valvat/compare/v0.4.3...v0.4.4)
|
92
|
+
|
93
|
+
* Fixed dependency on savon version 1.2 (2.0 uses new api)
|
94
|
+
* Convert to string before normalize (by [borodiychuk](https://github.com/borodiychuk))
|
95
|
+
|
96
|
+
### 0.4.3 / 2012-12-11
|
97
|
+
|
98
|
+
[full changelog](http://github.com/yolk/valvat/compare/v0.4.2...v0.4.3)
|
99
|
+
|
100
|
+
* Fixed error handling in Lookup (by [bmurzeau](https://github.com/bmurzeau))
|
101
|
+
|
102
|
+
### 0.4.2 / 2012-11-16
|
103
|
+
|
104
|
+
[full changelog](http://github.com/yolk/valvat/compare/v0.4.1...v0.4.2)
|
105
|
+
|
106
|
+
* Fixed usage with savon version 1.2
|
107
|
+
* Require version 1.2 of the savon gem from now on
|
108
|
+
* Added :raise_error option to throw errors instead of returning nil
|
109
|
+
|
110
|
+
### 0.4.1 / 2012-07-17
|
111
|
+
|
112
|
+
[full changelog](http://github.com/yolk/valvat/compare/v0.4.0...v0.4.1)
|
113
|
+
|
114
|
+
* Fixed issue with current savon version & required more recent savon version
|
115
|
+
|
116
|
+
### 0.4.0 / 2012-07-17
|
117
|
+
|
118
|
+
[full changelog](http://github.com/yolk/valvat/compare/v0.3.6...v0.4.0)
|
119
|
+
|
120
|
+
* Added support for company details and requester identifiers in successful responses
|
121
|
+
(by [lcx](https://github.com/lcx))
|
122
|
+
* Added Valvat::Lookup.last_error for debugging
|
123
|
+
|
124
|
+
### 0.3.6 / 2012-04-10
|
125
|
+
|
126
|
+
[full changelog](http://github.com/yolk/valvat/compare/v0.3.5...v0.3.6)
|
127
|
+
|
128
|
+
* Fixed wrong regexp for Belgium numbers (by [opsidao](https://github.com/opsidao))
|
129
|
+
|
130
|
+
### 0.3.5 / 2012-02-02
|
131
|
+
|
132
|
+
[full changelog](http://github.com/yolk/valvat/compare/v0.3.4...v0.3.5)
|
133
|
+
|
134
|
+
* Swedish translation (by [henrik](https://github.com/henrik))
|
135
|
+
* English fixes (by [henrik](https://github.com/henrik))
|
136
|
+
|
137
|
+
### 0.3.4 / 2011-08-01
|
138
|
+
|
139
|
+
[full changelog](http://github.com/yolk/valvat/compare/v0.3.3...v0.3.4)
|
140
|
+
|
141
|
+
* Normalize all input on initialization (by [SpoBo](https://github.com/SpoBo))
|
142
|
+
|
143
|
+
### 0.3.3 / 2011-06-02
|
144
|
+
|
145
|
+
[full changelog](http://github.com/yolk/valvat/compare/v0.3.2...v0.3.3)
|
146
|
+
|
147
|
+
* Add Valvat::Utils.iso_country_to_vat_country (by [Deb Bassett](https://github.com/urbanwide))
|
148
|
+
|
149
|
+
### 0.3.2 / 2011-01-14
|
150
|
+
|
151
|
+
[full changelog](http://github.com/yolk/valvat/compare/v0.3.1...v0.3.2)
|
152
|
+
|
153
|
+
* Fixed localization strings (en/de)
|
154
|
+
* Moved locales folder to lib/valvat/locales
|
155
|
+
|
156
|
+
### 0.3.1 / 2011-01-12
|
157
|
+
|
158
|
+
[full changelog](http://github.com/yolk/valvat/compare/v0.3.0...v0.3.1)
|
159
|
+
|
160
|
+
* ActiveModel validation: Failed validations with _match_country_ now use error message with country from given attribute
|
161
|
+
* ActiveModel validation: Failed validations with _match_country_ skip lookup and syntax checks
|
162
|
+
|
163
|
+
### 0.3.0 / 2011-01-12
|
164
|
+
|
165
|
+
[full changelog](http://github.com/yolk/valvat/compare/v0.2.3...v0.3.0)
|
166
|
+
|
167
|
+
* ActiveModel validation: added _match_country_ option to validate if iso country code of vat number matches another attribute.
|
168
|
+
|
169
|
+
### 0.2.3 / 2011-01-10
|
170
|
+
|
171
|
+
[full changelog](http://github.com/yolk/valvat/compare/v0.2.2...v0.2.3)
|
172
|
+
|
173
|
+
* Valvat::Utils.normalize now removes spaces and special chars anywhere
|
174
|
+
|
175
|
+
### 0.2.2 / 2011-01-10
|
176
|
+
|
177
|
+
[full changelog](http://github.com/yolk/valvat/compare/v0.2.1...v0.2.2)
|
178
|
+
|
179
|
+
* Using vies directly via soap/savon again; isvat.appspot.com is not _really_ reliable.
|
180
|
+
* Added support for Valvat#exist? as an alias of Valvat#exists?
|
181
|
+
|
182
|
+
### 0.2.1 / 2011-01-07
|
183
|
+
|
184
|
+
[full changelog](http://github.com/yolk/valvat/compare/v0.2.0...v0.2.1)
|
185
|
+
|
186
|
+
* Fixed blocker in valvat/lookup
|
187
|
+
|
188
|
+
### 0.2.0 / 2011-01-07
|
189
|
+
|
190
|
+
[full changelog](http://github.com/yolk/valvat/compare/v0.1.1...v0.2.0)
|
191
|
+
|
192
|
+
* Rewrote Valvat module to a vat number class for convenience + internal use of Valvat instances
|
193
|
+
* I18n: Default error messages in german
|
194
|
+
|
195
|
+
### 0.1.1 / 2011-01-07
|
196
|
+
|
197
|
+
[full changelog](http://github.com/yolk/valvat/compare/v0.1.0...v0.1.1)
|
198
|
+
|
199
|
+
* Fixed issue with country web service down and added spec
|
200
|
+
* Stubbed web service specs with fakeweb
|
201
|
+
* Added documentation for ActiveModel support
|
202
|
+
|
203
|
+
### 0.1.0 / 2011-01-07
|
204
|
+
|
205
|
+
[full changelog](http://github.com/yolk/valvat/compare/v0.0.3...v0.1.0)
|
206
|
+
|
207
|
+
* ActiveModel validation: added optional lookup support
|
208
|
+
* ActiveModel validation: I18n support with country specific messages
|
209
|
+
* ActiveModel validation: I18n locales in english and german
|
210
|
+
* Fixed bug with wrong iso country code on greek vat number (EL != GR)
|
211
|
+
* Valvat::Util.split only returns countries from europe
|
212
|
+
|
213
|
+
### 0.0.3 / 2011-01-06
|
214
|
+
|
215
|
+
[full changelog](http://github.com/yolk/valvat/compare/v0.0.2...v0.0.3)
|
216
|
+
|
217
|
+
* Basic support for ActiveModel validation
|
218
|
+
|
219
|
+
### 0.0.2 / 2011-01-06
|
220
|
+
|
221
|
+
[full changelog](http://github.com/yolk/valvat/compare/v0.0.1...v0.0.2)
|
222
|
+
|
223
|
+
* Use REST-wrapper for accessing VIES web service; this removes dependency on savon and some lines of code. See http://isvat.appspot.com/
|
data/Gemfile
ADDED
data/Guardfile
ADDED
data/MIT-LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2011 Yolk Sebastian Munz & Julia Soergel GbR
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
valvat-core
|
2
|
+
===========
|
3
|
+
|
4
|
+
Core functionality extraction from the [valvat gem](http://github.com/yolk/valvat) - Validates european vat numbers.
|
5
|
+
|
6
|
+
## Features
|
7
|
+
|
8
|
+
* Simple syntax verification
|
9
|
+
|
10
|
+
valvat-core is tested and works with ruby MRI 1.9.3/2.0/2.1, jruby (in 1.9 mode) and rubinius 2.2
|
11
|
+
|
12
|
+
## Installation
|
13
|
+
|
14
|
+
gem install valvat-core
|
15
|
+
|
16
|
+
## Basic Usage
|
17
|
+
|
18
|
+
To verify the syntax of a vat number:
|
19
|
+
|
20
|
+
Valvat.new("DE345789003").valid?
|
21
|
+
=> true or false
|
22
|
+
|
23
|
+
It is also possible to bypass initializing a Valvat instance and check the syntax of a var number string directly with:
|
24
|
+
|
25
|
+
Valvat::Syntax.validate("DE345789003")
|
26
|
+
=> true or false
|
27
|
+
|
28
|
+
|
29
|
+
## Utilities
|
30
|
+
|
31
|
+
To split a vat number into the country code and the remaining chars:
|
32
|
+
|
33
|
+
Valvat::Utils.split("ATU345789003")
|
34
|
+
=> ["AT", "U345789003"]
|
35
|
+
|
36
|
+
or
|
37
|
+
|
38
|
+
Valvat.new("ATU345789003").to_a
|
39
|
+
=> ["AT", "U345789003"]
|
40
|
+
|
41
|
+
Both methods always return an array. If it can not detect the country or the given country is located outside of europe it returns `[nil, nil]`. Please note that this does not strictly return the ISO country code: for greek vat numbers this returns the ISO language code 'EL' instead of the ISO country code 'GR'.
|
42
|
+
|
43
|
+
To extract the ISO country code of a given vat number:
|
44
|
+
|
45
|
+
Valvat.new("EL7345789003").iso_country_code
|
46
|
+
=> "GR"
|
47
|
+
|
48
|
+
To extract the vat country code (first two chars in every european vat number):
|
49
|
+
|
50
|
+
Valvat.new("EL7345789003").vat_country_code
|
51
|
+
=> "EL"
|
52
|
+
|
53
|
+
To normalize a vat number:
|
54
|
+
|
55
|
+
Valvat::Utils.normalize("atu345789003")
|
56
|
+
=> "ATU345789003"
|
57
|
+
|
58
|
+
This basically just removes trailing spaces and ensures all chars are uppercase.
|
59
|
+
|
60
|
+
## Links
|
61
|
+
[valvat](http://github.com/yolk/valvat)
|
data/Rakefile
ADDED
data/gemfiles/standalone
ADDED
data/lib/valvat.rb
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
class Valvat
|
2
|
+
def initialize(raw)
|
3
|
+
@raw = Valvat::Utils.normalize(raw || "")
|
4
|
+
@vat_country_code, @to_s_wo_country = to_a
|
5
|
+
end
|
6
|
+
|
7
|
+
attr_reader :raw, :vat_country_code, :to_s_wo_country
|
8
|
+
|
9
|
+
def blank?
|
10
|
+
raw.nil? || raw.strip == ""
|
11
|
+
end
|
12
|
+
|
13
|
+
def valid?
|
14
|
+
Valvat::Syntax.validate(self)
|
15
|
+
end
|
16
|
+
|
17
|
+
def iso_country_code
|
18
|
+
Valvat::Utils.vat_country_to_iso_country(vat_country_code)
|
19
|
+
end
|
20
|
+
|
21
|
+
def european?
|
22
|
+
Valvat::Utils::EU_COUNTRIES.include?(iso_country_code)
|
23
|
+
end
|
24
|
+
|
25
|
+
def to_a
|
26
|
+
Valvat::Utils.split(raw)
|
27
|
+
end
|
28
|
+
|
29
|
+
def to_s
|
30
|
+
raw
|
31
|
+
end
|
32
|
+
|
33
|
+
def inspect
|
34
|
+
"#<Valvat #{[raw, iso_country_code].compact.join(" ")}>"
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def Valvat(vat)
|
39
|
+
vat.is_a?(Valvat) ? vat : Valvat.new(vat)
|
40
|
+
end
|
41
|
+
|
42
|
+
require 'valvat/utils'
|
43
|
+
require 'valvat/syntax'
|
44
|
+
|
data/lib/valvat/core.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require 'valvat'
|
@@ -0,0 +1,34 @@
|
|
1
|
+
bg:
|
2
|
+
errors:
|
3
|
+
messages:
|
4
|
+
invalid_vat: не е валиден %{country_adjective} ДДС номер
|
5
|
+
valvat:
|
6
|
+
country_adjectives:
|
7
|
+
eu: европейски
|
8
|
+
at: австрийски
|
9
|
+
be: белгийски
|
10
|
+
bg: български
|
11
|
+
cy: кипърски
|
12
|
+
cz: чешки
|
13
|
+
de: германски
|
14
|
+
dk: датски
|
15
|
+
ee: естонски
|
16
|
+
es: испански
|
17
|
+
fi: финландски
|
18
|
+
fr: френски
|
19
|
+
gb: британски
|
20
|
+
gr: гръцки
|
21
|
+
hu: унгарски
|
22
|
+
ie: ирландски
|
23
|
+
it: италиански
|
24
|
+
lt: литовски
|
25
|
+
lu: люксембургски
|
26
|
+
lv: латвийски
|
27
|
+
mt: малтийски
|
28
|
+
nl: холандски
|
29
|
+
pl: полски
|
30
|
+
pt: португалски
|
31
|
+
ro: румънски
|
32
|
+
se: шведски
|
33
|
+
si: словенски
|
34
|
+
sk: словашки
|