validates_as_vat_number 1.0.2 → 1.0.3
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.
- data/README.markdown +2 -0
- data/VERSION +1 -1
- data/lib/validates_as_vat_number.rb +1 -3
- data/spec/validates_as_vat_number_spec.rb +7 -1
- metadata +20 -9
data/README.markdown
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0.
|
1
|
+
1.0.3
|
@@ -9,8 +9,6 @@ module Develon
|
|
9
9
|
}
|
10
10
|
configuration.update(attr_names.pop) if attr_names.last.is_a?(Hash)
|
11
11
|
|
12
|
-
iso3661_country_codes = %w(AF AX AL DZ AS AD AO AI AQ AG AR AM AW AU AT AZ BS BH BD BB BY BE BZ BJ BM BT BO BA BW BV BR IO BN BG BF BI KH CM CA CV KY CF TD CL CN CX CC CO KM CG CD CK CR CI HR CU CY CZ DK DJ DM DO EC EG SV GQ ER EE ET FK FO FJ FI FR GF PF TF GA GM GE DE GH GI GR GL GD GP GU GT GG GN GW GY HT HM VA HN HK HU IS IN ID IR IQ IE IM IL IT JM JP JE JO KZ KE KI KP KR KW KG LA LV LB LS LR LY LI LT LU MO MK MG MW MY MV ML MT MH MQ MR MU YT MX FM MD MC MN ME MS MA MZ MM NA NR NP NL AN NC NZ NI NE NG NU NF MP NO OM PK PW PS PA PG PY PE PH PN PL PT PR QA RE RO RU RW BL SH KN LC MF PM VC WS SM ST SA SN RS SC SL SG SK SI SB SO ZA GS ES LK SD SR SJ SZ SE CH SY TW TJ TZ TH TL TG TK TO TT TN TR TM TC TV UG UA AE GB US UM UY UZ VU VE VN VG VI WF EH YE ZM ZW)
|
13
|
-
|
14
12
|
structures = { 'AT' => /^ATU\w{8}$/, 'BE' => /^BE0\d{9}$/, 'BG' => /^BG\d{9,10}$/, 'CY' => /^CY\w{8}L$/,
|
15
13
|
'CZ' => /^CZ\d{8,10}$/, 'DE' => /^DE\d{9}$/, 'DK' => /^DK\d{2}\s\d{2}\s\d{2}\s\d{2}$/,
|
16
14
|
'EE' => /^EE\d{9}$/, 'EL' => /^EL\d{9}$/, 'ES' => /^ESX\d{7}X$/, 'FI' => /^FI\d{8}$/, 'FR' => /^FR\w{2}\s\d{9}$/,
|
@@ -22,7 +20,7 @@ module Develon
|
|
22
20
|
|
23
21
|
validates_each(attr_names,configuration) do |record, attr_name, value|
|
24
22
|
country = country_code(value)
|
25
|
-
if
|
23
|
+
if structures.include?(country)
|
26
24
|
message = configuration[:message] unless structures[country].match(value) && check_vat(country, value.gsub(/^\w\w/, ''))
|
27
25
|
else
|
28
26
|
message = 'has an invalid country'
|
@@ -17,10 +17,16 @@ describe Develon::ValidatesAsVatNumber do
|
|
17
17
|
fake_company.valid?.should == false
|
18
18
|
fake_company.errors.on('vat').should == 'is an invalid VAT number'
|
19
19
|
end
|
20
|
+
|
21
|
+
it "should invalidate a non-supported iso3661 country code" do
|
22
|
+
fake_company = Company.new(:name => 'Fake Company', :vat => 'BO123456789')
|
23
|
+
fake_company.valid?.should == false
|
24
|
+
fake_company.errors.on('vat').should == 'has an invalid country'
|
25
|
+
end
|
20
26
|
|
21
27
|
it "should invalidate locally if country is not valid" do
|
22
28
|
develon = Company.new(:name => 'Develon', :vat => 'KO03018900245')
|
23
29
|
develon.valid?.should == false
|
24
30
|
develon.errors.on('vat').should == 'has an invalid country'
|
25
31
|
end
|
26
|
-
end
|
32
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: validates_as_vat_number
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 1
|
7
|
+
- 0
|
8
|
+
- 3
|
9
|
+
version: 1.0.3
|
5
10
|
platform: ruby
|
6
11
|
authors:
|
7
12
|
- Alessandro Dal Grande
|
@@ -10,19 +15,23 @@ autorequire:
|
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
17
|
|
13
|
-
date: 2010-
|
18
|
+
date: 2010-03-01 00:00:00 +01:00
|
14
19
|
default_executable:
|
15
20
|
dependencies:
|
16
21
|
- !ruby/object:Gem::Dependency
|
17
22
|
name: rspec
|
18
|
-
|
19
|
-
|
20
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
21
25
|
requirements:
|
22
26
|
- - ">="
|
23
27
|
- !ruby/object:Gem::Version
|
28
|
+
segments:
|
29
|
+
- 1
|
30
|
+
- 2
|
31
|
+
- 9
|
24
32
|
version: 1.2.9
|
25
|
-
|
33
|
+
type: :development
|
34
|
+
version_requirements: *id001
|
26
35
|
description: |-
|
27
36
|
Now you can validate VAT using the European service called VIES,
|
28
37
|
to ensure it exists. Only require this gem and call validate_as_vat_number
|
@@ -63,18 +72,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
63
72
|
requirements:
|
64
73
|
- - ">="
|
65
74
|
- !ruby/object:Gem::Version
|
75
|
+
segments:
|
76
|
+
- 0
|
66
77
|
version: "0"
|
67
|
-
version:
|
68
78
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
69
79
|
requirements:
|
70
80
|
- - ">="
|
71
81
|
- !ruby/object:Gem::Version
|
82
|
+
segments:
|
83
|
+
- 0
|
72
84
|
version: "0"
|
73
|
-
version:
|
74
85
|
requirements: []
|
75
86
|
|
76
87
|
rubyforge_project:
|
77
|
-
rubygems_version: 1.3.
|
88
|
+
rubygems_version: 1.3.6
|
78
89
|
signing_key:
|
79
90
|
specification_version: 3
|
80
91
|
summary: Permits VAT validation within ActiveRecord using EU VIES Web Service.
|