europe 0.0.6 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- 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
|