eia 1.1.4 → 1.2.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/eia/data.rb +14 -6
- data/lib/eia/ibge.rb +10 -6
- data/lib/eia/version.rb +5 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 57da7351d5429bd4717f4a23b1dc368b077b1b5f
|
4
|
+
data.tar.gz: 3118696b19c2f10796286be0beedfbe804eecbf5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 436af72e95d3a2efee71a95cbb4e1007fe26a357b0034b63cdca906111e5c9168ccb4a87ba256ec9783e4a02584cd76b6743b39615cc53cc356e41b1f8e26ea9
|
7
|
+
data.tar.gz: ad2411716c81fca684d6e39646ebaf8f0b4452abe80ff62949fbc564a0bc9a1bb5b739e3385483fcdb699981ea48d87a5b90209e367fa1df36cdd46a410979e5
|
data/lib/eia/data.rb
CHANGED
@@ -1,10 +1,13 @@
|
|
1
1
|
class DataIBGE
|
2
|
-
def initialize(table_code, date, variable, location,
|
2
|
+
def initialize(table_code, date, variable, location, classification, unit, value, periodicity)
|
3
3
|
@table_code = table_code
|
4
4
|
@date = standardize_date(date, periodicity)
|
5
5
|
@variable = variable
|
6
6
|
@location = location
|
7
|
-
|
7
|
+
|
8
|
+
#is an array
|
9
|
+
@classification = classification
|
10
|
+
|
8
11
|
@unit = unit
|
9
12
|
@value = value
|
10
13
|
|
@@ -18,11 +21,11 @@ class DataIBGE
|
|
18
21
|
#date is a four digit number
|
19
22
|
if periodicity == 5 then
|
20
23
|
return "01/01/#{date}"
|
21
|
-
elsif periodicity == 4 then
|
24
|
+
elsif periodicity == 4 or periodicity == 3 then
|
22
25
|
y = date[0..3]
|
23
26
|
m = date[4..5]
|
24
27
|
|
25
|
-
return "01/#{m}/#{y}"
|
28
|
+
return "01/#{m}/#{y}"
|
26
29
|
else
|
27
30
|
puts "\nError parsing date for DataIBGE. Attempted to parse #{date}.\n"
|
28
31
|
return "ERROR"
|
@@ -45,8 +48,8 @@ class DataIBGE
|
|
45
48
|
return @location
|
46
49
|
end
|
47
50
|
|
48
|
-
def
|
49
|
-
return @
|
51
|
+
def classification
|
52
|
+
return @classification
|
50
53
|
end
|
51
54
|
|
52
55
|
def unit
|
@@ -97,6 +100,11 @@ class DataIBGE
|
|
97
100
|
return false
|
98
101
|
end
|
99
102
|
|
103
|
+
if @classification == nil or not @classification.class.to_s.eql? "Array" then
|
104
|
+
puts "Classification is invalid. Value is nil."
|
105
|
+
return false
|
106
|
+
end
|
107
|
+
|
100
108
|
return true
|
101
109
|
end
|
102
110
|
end
|
data/lib/eia/ibge.rb
CHANGED
@@ -65,12 +65,14 @@ class IBGE
|
|
65
65
|
begin
|
66
66
|
output = JSON.parse(json_string)
|
67
67
|
heading = output.delete_at(0)
|
68
|
-
identifier = heading["
|
68
|
+
identifier = heading["D1N"]
|
69
69
|
|
70
70
|
if identifier.include? "Trimestre Móvel" then
|
71
71
|
periodicity = 4
|
72
72
|
elsif identifier.include? "Ano" then
|
73
73
|
periodicity = 5
|
74
|
+
elsif identifier.include? "Mês" then
|
75
|
+
periodicity = 2
|
74
76
|
else
|
75
77
|
puts "Error! Unexpected case! Found is: #{identifier}. Report to the dev team."
|
76
78
|
return Array.new
|
@@ -82,7 +84,7 @@ class IBGE
|
|
82
84
|
data = nil
|
83
85
|
date = nil
|
84
86
|
variable = nil
|
85
|
-
|
87
|
+
classification = Array.new
|
86
88
|
location = nil
|
87
89
|
unit = nil
|
88
90
|
val = nil
|
@@ -95,18 +97,20 @@ class IBGE
|
|
95
97
|
variable = value
|
96
98
|
when "D3N" #location
|
97
99
|
location = value
|
98
|
-
when "D4N" #product
|
99
|
-
product = value
|
100
100
|
when "MN" #unit
|
101
101
|
unit = value
|
102
102
|
when "V" #value
|
103
103
|
val = value.to_f
|
104
104
|
else
|
105
|
-
|
105
|
+
if key.include? "D" and key.include? "N" and key[1].to_i > 3 then
|
106
|
+
classification << "#{heading[key]}: #{value}"
|
107
|
+
end
|
108
|
+
#Else this information is discarded
|
106
109
|
end
|
107
110
|
end
|
108
111
|
|
109
|
-
data_array << DataIBGE.new(table_code, date, variable, location,
|
112
|
+
data_array << DataIBGE.new(table_code, date, variable, location,
|
113
|
+
classification, unit, val, periodicity)
|
110
114
|
end
|
111
115
|
|
112
116
|
return data_array
|
data/lib/eia/version.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
module Eia
|
2
|
-
VERSION = "1.
|
2
|
+
VERSION = "1.2.5"
|
3
3
|
|
4
4
|
#Standard for version: xx.yy.zz
|
5
5
|
# xx - release
|
@@ -39,4 +39,8 @@ module Eia
|
|
39
39
|
# Adds getter for periodicity in data type, which I had forgot.
|
40
40
|
# Also adds periodicity to integrity verification.
|
41
41
|
|
42
|
+
# Version 1.2.5
|
43
|
+
# Adds a new date classification for data.
|
44
|
+
# Renames procut as classification, as it's according what actual data in the source is like.
|
45
|
+
# Properly identifies classifications and stores then.
|
42
46
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eia
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- rCamposCruz
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-02-
|
11
|
+
date: 2017-02-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|