Class: DataRequestVariable

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

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(variable_id, unit, description, time_method, table, frequency, realms, standard_name, cell_methods, cell_measures) ⇒ DataRequestVariable

Returns a new instance of DataRequestVariable.



134
135
136
137
138
139
140
141
142
143
144
145
# File 'lib/data_request.rb', line 134

def initialize(variable_id, unit, description, time_method, table, frequency, realms, standard_name, cell_methods, cell_measures)
  @variable_id = variable_id
  @unit = unit
  @description = description
  @time_method = time_method
  @tables = [table]
  @frequencies = [frequency]
  @realms = realms
  @standard_name = standard_name
  @cell_methods_list = [cell_methods]
  @cell_measures_list = [cell_measures]
end

Instance Attribute Details

#descriptionObject (readonly)

Returns the value of attribute description.



127
128
129
# File 'lib/data_request.rb', line 127

def description
  @description
end

#frequenciesObject (readonly)

Returns the value of attribute frequencies.



127
128
129
# File 'lib/data_request.rb', line 127

def frequencies
  @frequencies
end

#realmsObject (readonly)

Returns the value of attribute realms.



127
128
129
# File 'lib/data_request.rb', line 127

def realms
  @realms
end

#standard_nameObject (readonly)

Returns the value of attribute standard_name.



127
128
129
# File 'lib/data_request.rb', line 127

def standard_name
  @standard_name
end

#time_methodObject (readonly)

Returns the value of attribute time_method.



127
128
129
# File 'lib/data_request.rb', line 127

def time_method
  @time_method
end

#unitObject (readonly)

Returns the value of attribute unit.



127
128
129
# File 'lib/data_request.rb', line 127

def unit
  @unit
end

#variable_idObject (readonly)

Returns the value of attribute variable_id.



127
128
129
# File 'lib/data_request.rb', line 127

def variable_id
  @variable_id
end

Class Method Details

.new_from_table_var_entry(var_entry) ⇒ Object



129
130
131
# File 'lib/data_request.rb', line 129

def self.new_from_table_var_entry(var_entry)
  DataRequestVariable.new(var_entry.variable_id, var_entry.unit, var_entry.description, var_entry.time_method, var_entry.table, var_entry.frequency_name, var_entry.realms, var_entry.standard_name, var_entry.cell_methods, var_entry.cell_measures)
end

Instance Method Details

#cell_measures_in_table(table_id) ⇒ Object



176
177
178
179
180
# File 'lib/data_request.rb', line 176

def cell_measures_in_table(table_id)
  i = table_ids.index(table_id)
  raise "variable_id '#{variable_id}' is not associated with table_id '#{table_id}', available table_id(s): #{table_ids.join(', ')}" unless i
  @cell_measures_list[i]
end

#cell_methods_in_table(table_id) ⇒ Object



169
170
171
172
173
# File 'lib/data_request.rb', line 169

def cell_methods_in_table(table_id)
  i = table_ids.index(table_id)
  raise "variable_id '#{variable_id}' is not associated with table_id '#{table_id}', available table_id(s): #{table_ids.join(', ')}" unless i
  @cell_methods_list[i]
end

#frequency_in_table(table_id) ⇒ Object



162
163
164
165
166
# File 'lib/data_request.rb', line 162

def frequency_in_table(table_id)
  i = table_ids.index(table_id)
  raise "variable_id '#{variable_id}' is not associated with table_id '#{table_id}', available table_id(s): #{table_ids.join(', ')}" unless i
  @frequencies[i]
end

#merge_table_var_entry(var_entry) ⇒ Object



148
149
150
151
152
153
154
# File 'lib/data_request.rb', line 148

def merge_table_var_entry(var_entry)
  @tables << var_entry.table
  @frequencies << var_entry.frequency_name
  @cell_methods_list << var_entry.cell_methods # some variables have different entries for cell_methods for different tables
  @cell_measures_list << var_entry.cell_measures # some variables have different entries for cell_measures for different tables
  # we do not merge time methods, as we treat identical variable_ids with different time methods as different variables
end

#table_idsObject



157
158
159
# File 'lib/data_request.rb', line 157

def table_ids
  @tables.map {|t| t.table_id}
end

#to_sObject



183
184
185
# File 'lib/data_request.rb', line 183

def to_s
  "#{variable_id} '#{unit}' [#{frequencies.join(' ')}] [#{@tables.map{|t| t.table_id}.join(' ')}]"
end