europe 0.0.7 → 0.0.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/lib/europe/vat/rates.rb +6 -30
- data/lib/europe/version.rb +1 -1
- data/test/europe/eurostat/eurostat_test.rb +1 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: c2e7e1e3027e935421fd4e15e7164cff183a1345deed66a5a2c764b35e63667a
|
4
|
+
data.tar.gz: ffbaee22b0ec7bbccedb5a9ae2e269deed652007ed28e3bed0faf5b8818cda7b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 559cecc3c404bf11e187c1ff2641ede7721bb66b34152be7d7981302561c1bd0593755eac3b8f964ede852b27f37794200cf5623d124d4c61f2ef1b1f3d79755
|
7
|
+
data.tar.gz: 8b68f205e4b6bb3972ba988771c965948b6b8bb7e8295f40922c54d8741b6ec615cb70d2caa9e7491518797bd2c2c08b9482cbbdb1cb0195d64ce8502505ad81
|
data/lib/europe/vat/rates.rb
CHANGED
@@ -2,50 +2,26 @@ module Europe
|
|
2
2
|
module Vat
|
3
3
|
# Rates
|
4
4
|
module Rates
|
5
|
-
RATES_URL = '
|
6
|
-
'
|
5
|
+
RATES_URL = 'https://europa.eu/youreurope/business/' \
|
6
|
+
'vat-customs/buy-sell/vat-rates/index_en.htm'.freeze
|
7
7
|
def self.retrieve
|
8
8
|
resp = fetch_rates
|
9
9
|
return resp if resp == :failed
|
10
10
|
extract_rates(resp)
|
11
11
|
end
|
12
12
|
|
13
|
-
def self.extract_country_code(data)
|
14
|
-
Europe::Countries::Reversed.generate(:name) \
|
15
|
-
[data.css('td').first.text.strip!]
|
16
|
-
end
|
17
|
-
|
18
|
-
def self.extract_rate_number(data)
|
19
|
-
data.css('td')[1].css('div span').text.tr('%', '').to_f
|
20
|
-
end
|
21
|
-
|
22
13
|
def self.extract_rates(resp)
|
23
14
|
rates = {}
|
24
15
|
doc = Nokogiri::XML(resp)
|
25
|
-
doc.css('
|
26
|
-
key =
|
27
|
-
rates[key] =
|
16
|
+
doc.css('body tbody tr')[2..-1].each do |data|
|
17
|
+
key = data.css('td').children[1].text.to_sym
|
18
|
+
rates[key] = data.css('td').children[2].text.to_f
|
28
19
|
end
|
29
20
|
rates
|
30
21
|
end
|
31
22
|
|
32
|
-
def self.generate_url
|
33
|
-
uri = URI.parse(RATES_URL)
|
34
|
-
params = 'listOfTypes=Standard&dateFilter=' +
|
35
|
-
Time.new.strftime('%d/%m/%Y')
|
36
|
-
[*1..Europe::Countries::COUNTRIES.count].each do |index|
|
37
|
-
params += '&listOfMsa=' + index.to_s
|
38
|
-
end
|
39
|
-
[uri, params]
|
40
|
-
end
|
41
|
-
|
42
23
|
def self.fetch_rates
|
43
|
-
|
44
|
-
req = Net::HTTP::Post.new(uri.path)
|
45
|
-
req.body = params
|
46
|
-
resp = Net::HTTP.start(uri.hostname, uri.port) do |http|
|
47
|
-
http.request(req)
|
48
|
-
end
|
24
|
+
resp = Net::HTTP.get_response(URI.parse(RATES_URL))
|
49
25
|
resp.code.to_i == 200 ? resp.body : :failed
|
50
26
|
end
|
51
27
|
end
|
data/lib/europe/version.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.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- VvanGemert
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-03-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|
@@ -210,7 +210,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
210
210
|
version: '0'
|
211
211
|
requirements: []
|
212
212
|
rubyforge_project:
|
213
|
-
rubygems_version: 2.6
|
213
|
+
rubygems_version: 2.7.6
|
214
214
|
signing_key:
|
215
215
|
specification_version: 4
|
216
216
|
summary: Europe is a gem for retrieving and validating EU government data.
|