europe 0.0.6 → 0.0.7
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
- data/.pryrc +3 -4
- data/CHANGELOG.md +6 -0
- data/Rakefile +1 -0
- data/europe.gemspec +0 -1
- data/lib/europe/countries/countries.rb +7 -6
- data/lib/europe/currency/currency.rb +0 -2
- data/lib/europe/eurostat/eurostat.rb +4 -1
- data/lib/europe/rake_task.rb +7 -0
- data/lib/europe/tasks/eurostat.rake +14 -0
- data/lib/europe/vat/format.rb +1 -1
- data/lib/europe/version.rb +1 -1
- data/test/europe/countries/country_test.rb +6 -1
- data/test/europe/currency/currency_test.rb +0 -1
- data/test/europe/eurostat/eurostat_test.rb +15 -0
- data/test/europe/vat/format_test.rb +6 -6
- data/test/europe/vat/rates_test.rb +5 -1
- data/test/europe/vat/validation_test.rb +3 -3
- data/test/test_helper.rb +0 -3
- metadata +7 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6039ec82c528518055ad094e19437f8190da44ea
|
4
|
+
data.tar.gz: ca869802ec44bb4a7e79ef3f4f6315cd4fcff733
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6812433fe3589e26e8816f8adc369dbf2593b98137a99d0af3767adfdabcdec74747a8bf743cc1ff6fdbeec47051ce76efe5277157143365fac8b3a49185320e
|
7
|
+
data.tar.gz: c642b1f354545f0f6b96bc48d3702e3d63206c852838d1a862f820fca0be60f0a7644a7ab910e605807da96c30e87c437bd14d0306457855da61831183e81c4b
|
data/.pryrc
CHANGED
@@ -2,13 +2,12 @@
|
|
2
2
|
require 'europe'
|
3
3
|
|
4
4
|
Pry.config.commands.import(Pry::CommandSet.new do
|
5
|
-
|
6
|
-
command "reload!", "Reload Pry" do
|
5
|
+
command 'reload!', 'Reload Pry' do
|
7
6
|
target.eval <<-EVAL
|
8
7
|
at_exit { puts "Reloading pry..."; exec "pry" }
|
9
8
|
exit
|
10
9
|
EVAL
|
11
10
|
end
|
12
11
|
|
13
|
-
alias_command
|
14
|
-
end)
|
12
|
+
alias_command 'r', 'reload!'
|
13
|
+
end)
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,12 @@
|
|
2
2
|
All notable changes to this project will be documented in this file.
|
3
3
|
This project adheres to [Semantic Versioning](http://semver.org/).
|
4
4
|
|
5
|
+
# 0.0.7
|
6
|
+
- Fixed currencies for Estonia, Lithuania and Sweden
|
7
|
+
- Added eurozone call to Countries which returns all countries with EUR currency
|
8
|
+
- Removed simplecov because of Gem errors
|
9
|
+
- Updated dependencies and fixed rubocop syntax errors
|
10
|
+
|
5
11
|
## 0.0.6
|
6
12
|
- Added Changelog
|
7
13
|
- Fixed test case for VAT validation where EU VIES services times out
|
data/Rakefile
CHANGED
data/europe.gemspec
CHANGED
@@ -32,6 +32,5 @@ Gem::Specification.new do |spec|
|
|
32
32
|
spec.add_development_dependency 'awesome_print'
|
33
33
|
spec.add_development_dependency 'pry'
|
34
34
|
spec.add_development_dependency 'rubocop'
|
35
|
-
spec.add_development_dependency 'simplecov'
|
36
35
|
spec.add_development_dependency 'webmock'
|
37
36
|
end
|
@@ -1,6 +1,3 @@
|
|
1
|
-
#!/bin/env ruby
|
2
|
-
# encoding: utf-8
|
3
|
-
|
4
1
|
# Source: http://publications.europa.eu/code/pdf/370000en.htm
|
5
2
|
|
6
3
|
require 'europe/countries/reversed'
|
@@ -27,7 +24,7 @@ module Europe
|
|
27
24
|
tld: '.de', currency: :EUR, capital: 'Berlin' },
|
28
25
|
EE: { name: 'Estonia', source_name: 'Eesti',
|
29
26
|
official_name: 'Republic of Estonia',
|
30
|
-
tld: '.ee', currency: :
|
27
|
+
tld: '.ee', currency: :EEK, capital: 'Tallinn' },
|
31
28
|
IE: { name: 'Ireland', source_name: 'Éire',
|
32
29
|
official_name: 'Ireland',
|
33
30
|
tld: '.ie', currency: :EUR, capital: 'Dublin' },
|
@@ -54,7 +51,7 @@ module Europe
|
|
54
51
|
tld: '.lv', currency: :EUR, capital: 'Riga' },
|
55
52
|
LT: { name: 'Lithuania', source_name: 'Lietuva',
|
56
53
|
official_name: 'Republic of Lithuania',
|
57
|
-
tld: '.lt', currency: :
|
54
|
+
tld: '.lt', currency: :LTL, capital: 'Vilnius' },
|
58
55
|
LU: { name: 'Luxembourg', source_name: 'Luxembourg',
|
59
56
|
official_name: 'Grand Duchy of Luxembourg',
|
60
57
|
tld: '.lu', currency: :EUR, capital: 'Luxembourg City' },
|
@@ -90,11 +87,15 @@ module Europe
|
|
90
87
|
tld: '.fi', currency: :EUR, capital: 'Helsinki' },
|
91
88
|
SE: { name: 'Sweden', source_name: 'Sverige',
|
92
89
|
official_name: 'Kingdom of Sweden',
|
93
|
-
tld: '.se', currency: :
|
90
|
+
tld: '.se', currency: :SEK, capital: 'Stockholm' },
|
94
91
|
UK: { name: 'United Kingdom', source_name: 'United Kingdom',
|
95
92
|
official_name: 'United Kingdom of Great ' \
|
96
93
|
'Britain and Northern Ireland',
|
97
94
|
tld: '.uk', currency: :GBP, capital: 'London' }
|
98
95
|
}.freeze
|
96
|
+
|
97
|
+
def self.eurozone
|
98
|
+
Reversed.generate(:currency)[:EUR]
|
99
|
+
end
|
99
100
|
end
|
100
101
|
end
|
@@ -6,8 +6,9 @@ require 'json'
|
|
6
6
|
module Europe
|
7
7
|
# Eurostat
|
8
8
|
module Eurostat
|
9
|
+
# http://ec.europa.eu/eurostat/data/database
|
9
10
|
STAT_URL = 'http://ec.europa.eu/eurostat/wdds' \
|
10
|
-
'/rest/data/
|
11
|
+
'/rest/data/v2.1/json/en/'.freeze
|
11
12
|
|
12
13
|
def self.retrieve(dataset, filters)
|
13
14
|
fetch_stats(dataset, filters)
|
@@ -21,6 +22,8 @@ module Europe
|
|
21
22
|
indic_na: 'B1GM', unitLabel: 'code'
|
22
23
|
}
|
23
24
|
uri.query = URI.encode_www_form(params)
|
25
|
+
# p URI.encode_www_form(params)
|
26
|
+
# p uri.to_s
|
24
27
|
uri
|
25
28
|
end
|
26
29
|
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'open-uri'
|
2
|
+
|
3
|
+
namespace :eurostat do
|
4
|
+
EUROSTAT_BULK_URL = 'http://ec.europa.eu/eurostat/' \
|
5
|
+
'estat-navtree-portlet-prod/BulkDownloadListing' \
|
6
|
+
'?sort=1&file='.freeze
|
7
|
+
|
8
|
+
desc 'Download categories from Eurostat Bulk Facility'
|
9
|
+
task :download_categories do
|
10
|
+
File.open('cat.txt', 'w') do |f|
|
11
|
+
IO.copy_stream(open(EUROSTAT_BULK_URL + 'table_of_contents_en.txt'), f)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
data/lib/europe/vat/format.rb
CHANGED
data/lib/europe/version.rb
CHANGED
@@ -14,7 +14,12 @@ module Europe
|
|
14
14
|
|
15
15
|
reversed_hash =
|
16
16
|
Europe::Countries::Reversed.generate(:currency)
|
17
|
-
assert_equal reversed_hash[:EUR].count,
|
17
|
+
assert_equal reversed_hash[:EUR].count, 17
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_eurozone
|
21
|
+
assert Europe::Countries.eurozone.include?(:DE)
|
22
|
+
assert_equal false, Europe::Countries.eurozone.include?(:UK)
|
18
23
|
end
|
19
24
|
end
|
20
25
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
#!/bin/env ruby
|
2
|
+
require 'test_helper'
|
3
|
+
|
4
|
+
module Europe
|
5
|
+
module Eurostat
|
6
|
+
# CurrencyTest
|
7
|
+
class EurostatTest < Minitest::Test
|
8
|
+
include Benchmark
|
9
|
+
|
10
|
+
def test_eurostat_retrieval
|
11
|
+
Europe::Eurostat.retrieve('nama_gdp_c', '')
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -9,9 +9,9 @@ module Europe
|
|
9
9
|
VAT_FORMAT_VALIDATION = {
|
10
10
|
AT: 'ATU99999999',
|
11
11
|
BE: 'BE0999999999',
|
12
|
-
BG: %w
|
12
|
+
BG: %w[BG999999999 BG9999999999],
|
13
13
|
CY: 'CY99999999L',
|
14
|
-
CZ: %w
|
14
|
+
CZ: %w[CZ99999999 CZ999999999 CZ9999999999],
|
15
15
|
DE: 'DE999999999',
|
16
16
|
DK: 'DK99 99 99 99',
|
17
17
|
EE: 'EE999999999',
|
@@ -25,13 +25,13 @@ module Europe
|
|
25
25
|
'GB999 9999 99'],
|
26
26
|
HR: 'HR99999999999',
|
27
27
|
HU: 'HU99999999',
|
28
|
-
IE: %w
|
28
|
+
IE: %w[IE9S99999L IE9999999WI],
|
29
29
|
IT: 'IT99999999999',
|
30
|
-
LT: %w
|
30
|
+
LT: %w[LT999999999 LT999999999999],
|
31
31
|
LU: 'LU99999999',
|
32
32
|
LV: 'LV99999999999',
|
33
33
|
MT: 'MT99999999',
|
34
|
-
NL: %w
|
34
|
+
NL: %w[NL999999999B99 NL999.9999.99.B99],
|
35
35
|
PL: 'PL9999999999',
|
36
36
|
PT: 'PT999999999',
|
37
37
|
RO: 'RO999999999',
|
@@ -41,7 +41,7 @@ module Europe
|
|
41
41
|
}.freeze
|
42
42
|
|
43
43
|
def test_all_vat_numbers_on_format
|
44
|
-
VAT_FORMAT_VALIDATION.
|
44
|
+
VAT_FORMAT_VALIDATION.each_value do |number|
|
45
45
|
if number.is_a?(Array)
|
46
46
|
number.each do |num|
|
47
47
|
check_vat_number(num)
|
@@ -12,7 +12,11 @@ module Europe
|
|
12
12
|
|
13
13
|
def test_retrieval_of_vat_rates
|
14
14
|
rates = Europe::Vat::Rates.retrieve
|
15
|
-
|
15
|
+
if rates == :failed
|
16
|
+
rates = { NL: 17, DE: 19, ES: 18 }
|
17
|
+
else
|
18
|
+
assert_equal rates.count, Europe::Countries::COUNTRIES.count
|
19
|
+
end
|
16
20
|
assert rates[:NL]
|
17
21
|
assert rates[:DE]
|
18
22
|
assert rates[:ES]
|
@@ -19,17 +19,17 @@ module Europe
|
|
19
19
|
# PostNL
|
20
20
|
validate_correct_vat = Europe::Vat.validate('NL009291477B01')
|
21
21
|
assert validate_correct_vat[:valid] \
|
22
|
-
unless [
|
22
|
+
unless %i[timeout failed].include?(validate_correct_vat)
|
23
23
|
|
24
24
|
# Sky
|
25
25
|
validate_correct_vat = Europe::Vat.validate('GB440627467')
|
26
26
|
assert validate_correct_vat[:valid] \
|
27
|
-
unless [
|
27
|
+
unless %i[timeout failed].include?(validate_correct_vat)
|
28
28
|
|
29
29
|
# Volkswagen
|
30
30
|
validate_correct_vat = Europe::Vat.validate('DE115235681')
|
31
31
|
assert validate_correct_vat[:valid] \
|
32
|
-
unless [
|
32
|
+
unless %i[timeout failed].include?(validate_correct_vat)
|
33
33
|
end
|
34
34
|
|
35
35
|
def test_failed_request_to_soap_service
|
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: europe
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- VvanGemert
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-11-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|
@@ -136,20 +136,6 @@ dependencies:
|
|
136
136
|
- - ">="
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '0'
|
139
|
-
- !ruby/object:Gem::Dependency
|
140
|
-
name: simplecov
|
141
|
-
requirement: !ruby/object:Gem::Requirement
|
142
|
-
requirements:
|
143
|
-
- - ">="
|
144
|
-
- !ruby/object:Gem::Version
|
145
|
-
version: '0'
|
146
|
-
type: :development
|
147
|
-
prerelease: false
|
148
|
-
version_requirements: !ruby/object:Gem::Requirement
|
149
|
-
requirements:
|
150
|
-
- - ">="
|
151
|
-
- !ruby/object:Gem::Version
|
152
|
-
version: '0'
|
153
139
|
- !ruby/object:Gem::Dependency
|
154
140
|
name: webmock
|
155
141
|
requirement: !ruby/object:Gem::Requirement
|
@@ -190,6 +176,8 @@ files:
|
|
190
176
|
- lib/europe/currency/currency.rb
|
191
177
|
- lib/europe/currency/exchange_rates.rb
|
192
178
|
- lib/europe/eurostat/eurostat.rb
|
179
|
+
- lib/europe/rake_task.rb
|
180
|
+
- lib/europe/tasks/eurostat.rake
|
193
181
|
- lib/europe/vat/format.rb
|
194
182
|
- lib/europe/vat/rates.rb
|
195
183
|
- lib/europe/vat/vat.rb
|
@@ -197,6 +185,7 @@ files:
|
|
197
185
|
- test/europe/countries/country_test.rb
|
198
186
|
- test/europe/currency/currency_test.rb
|
199
187
|
- test/europe/currency/exchange_rates_test.rb
|
188
|
+
- test/europe/eurostat/eurostat_test.rb
|
200
189
|
- test/europe/vat/format_test.rb
|
201
190
|
- test/europe/vat/rates_test.rb
|
202
191
|
- test/europe/vat/validation_test.rb
|
@@ -221,7 +210,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
221
210
|
version: '0'
|
222
211
|
requirements: []
|
223
212
|
rubyforge_project:
|
224
|
-
rubygems_version: 2.6.
|
213
|
+
rubygems_version: 2.6.13
|
225
214
|
signing_key:
|
226
215
|
specification_version: 4
|
227
216
|
summary: Europe is a gem for retrieving and validating EU government data.
|
@@ -229,6 +218,7 @@ test_files:
|
|
229
218
|
- test/europe/countries/country_test.rb
|
230
219
|
- test/europe/currency/currency_test.rb
|
231
220
|
- test/europe/currency/exchange_rates_test.rb
|
221
|
+
- test/europe/eurostat/eurostat_test.rb
|
232
222
|
- test/europe/vat/format_test.rb
|
233
223
|
- test/europe/vat/rates_test.rb
|
234
224
|
- test/europe/vat/validation_test.rb
|