Class: DataIBGE

Inherits:
Object
  • Object
show all
Defined in:
lib/eia/data.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(table_code, date, variable, location, classification, unit, value, periodicity) ⇒ DataIBGE

Returns a new instance of DataIBGE.



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/eia/data.rb', line 5

def initialize(table_code, date, variable, location, classification, unit, value, periodicity)
	@table_code = table_code
	@date = standardize_date(date, periodicity)
	@variable = variable
	@location = location

	#is an array
	@classification = classification

	@unit = unit
	@value = value

	#The standard is:
	# 2 : "Mês"
	# 4 : "Trimestre"
	# 5 : "Ano"
	# 6 : "Trimestre Módel"
	@periodicity = periodicity 
end

Instance Attribute Details

#classificationObject

Returns the value of attribute classification.



2
3
4
# File 'lib/eia/data.rb', line 2

def classification
  @classification
end

#dateObject

Returns the value of attribute date.



2
3
4
# File 'lib/eia/data.rb', line 2

def date
  @date
end

#locationObject

Returns the value of attribute location.



2
3
4
# File 'lib/eia/data.rb', line 2

def location
  @location
end

#periodicityObject

Returns the value of attribute periodicity.



2
3
4
# File 'lib/eia/data.rb', line 2

def periodicity
  @periodicity
end

#table_codeObject

Returns the value of attribute table_code.



2
3
4
# File 'lib/eia/data.rb', line 2

def table_code
  @table_code
end

#unitObject

Returns the value of attribute unit.



2
3
4
# File 'lib/eia/data.rb', line 2

def unit
  @unit
end

#valueObject

Returns the value of attribute value.



2
3
4
# File 'lib/eia/data.rb', line 2

def value
  @value
end

#variableObject

Returns the value of attribute variable.



2
3
4
# File 'lib/eia/data.rb', line 2

def variable
  @variable
end

Instance Method Details

#is_valid?Boolean

Returns:

  • (Boolean)


41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# File 'lib/eia/data.rb', line 41

def is_valid?
	if @table_code == '' or @table_code == nil or @table_code.to_i <= 0 then
		puts "Invalid table code supplied. Value is #{@table_code}."
		return false
	end

	if @date == '' or @date == "ERROR" or @date == nil then
		puts "Date found is invalid. Value is '#{@date}'."
		return false
	end
	
	if @variable == '' or @variable == nil then
		puts "Variable found is invalid. Value is '#{@variable}'."
		return false
	end

	if @location == '' or @location == nil then
		puts "Location found is invalid. Value is '#{@location}'."
		return false
	end

	if @unit == '' or @unit == nil then
		puts "Unit found is invalid. Value is '#{@unit}'."
		return false
	end

	if @periodicity == nil or @periodicity.to_i > 6 or @periodicity.to_i < 0 then
		puts "Periodicity is invalid. Value is '#{@periodicity}'."
		return false
	end

	if @value == '' or @value == nil then
		puts "Value found is invalid. Value is '#{@value}'."
		return false
	end

	if @classification == nil or not @classification.class.to_s.eql? "Array" then
		puts "Classification is invalid. Value is nil."
		return false
	end

	return true 
end

#standardize_date(date, periodicity) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/eia/data.rb', line 25

def standardize_date(date, periodicity)
	#date is a four digit number
	if periodicity == 5 then
		return "01/01/#{date}"

	elsif [2, 4, 6].include?(periodicity) then
		y = date[0..3]
		m = date[4..5]

		return "01/#{m}/#{y}"		
	else
		puts "\nError parsing date for DataIBGE. Attempted to parse #{date}.\n"
		return "ERROR"
	end
end