Class: Variable
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Variable
show all
- Includes:
- MarkupTransform
- Defined in:
- app/models/variable.rb
Instance Method Summary
collapse
#block_element?, #default_text_handler, #ensure_p_closed, #format_in_paragraph, #format_not_in_paragraph, #inside_ul?, #link_target, #load_file, #load_html_fragment, #load_image, #load_link, #more, #open_p, #parse_list, #parse_list_text, #parse_node, #parse_non_text_node, #parse_text, #transform_markup
Instance Method Details
#availability_by_country ⇒ Object
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
# File 'app/models/variable.rb', line 83
def availability_by_country
cache = variable_availability_caches.first
if cache.nil?
store = {}
_availability_by_country = {}
samples.select("samples.*, countries.full_name AS country_full_name").joins("INNER JOIN terrapop_samples ON terrapop_samples.sample_id = samples.id LEFT OUTER JOIN countries ON countries.id = samples.country_id").each do |sample|
country_code = sample.country_full_name
store[country_code] ||= []
store[country_code]<< sample.year
end
store.each { |key, val| _availability_by_country[key] = val.sort }
obj = VariableAvailabilityCach.create(variable_id: id, json: _availability_by_country.to_json)
JSON.parse(obj.json)
else
JSON.parse(cache.json)
end
end
|
#availability_by_sample ⇒ Object
78
79
80
|
# File 'app/models/variable.rb', line 78
def availability_by_sample
samples.select("samples.*, countries.full_name AS country_full_name, UPPER(countries.short_name) AS short_country_name, UPPER(countries.short_name) || lpad((year % 100)::text, 2, '0') AS short_country_name_year").joins("INNER JOIN countries ON samples.country_id = countries.id")
end
|
#country_comparability_for_samples(them_samples) ⇒ Object
102
103
104
|
# File 'app/models/variable.rb', line 102
def country_comparability_for_samples(them_samples)
country_comparabilities.where("country_id in (?)", (samples & them_samples).map { |s| s.country }.uniq)
end
|
#country_comparability_html(visible_samples) ⇒ Object
112
113
114
|
# File 'app/models/variable.rb', line 112
def country_comparability_html(visible_samples)
country_comparability_for_samples(visible_samples).to_a
end
|
#data_table_key ⇒ Object
72
73
74
|
# File 'app/models/variable.rb', line 72
def data_table_key
record_type_name.to_s.pluralize.to_sym
end
|
#description_html ⇒ Object
107
108
109
|
# File 'app/models/variable.rb', line 107
def description_html
transform_markup(description)
end
|
#general_comparability_html ⇒ Object
117
118
119
|
# File 'app/models/variable.rb', line 117
def general_comparability_html
transform_markup(general_comparability)
end
|
#household_variable? ⇒ Boolean
62
63
64
|
# File 'app/models/variable.rb', line 62
def household_variable?
record_type == 'H'
end
|
#included_in?(sample) ⇒ Boolean
30
31
32
|
# File 'app/models/variable.rb', line 30
def included_in?(sample)
samples.include? sample
end
|
#person_variable? ⇒ Boolean
57
58
59
|
# File 'app/models/variable.rb', line 57
def person_variable?
record_type == 'P'
end
|
#record_type_name ⇒ Object
67
68
69
|
# File 'app/models/variable.rb', line 67
def record_type_name
household_variable? ? :household : :person
end
|
#samples_universes ⇒ Object
35
36
37
38
39
40
41
|
# File 'app/models/variable.rb', line 35
def samples_universes
tuples = {}
sample_variables.joins(sample: :terrapop_samples).includes(:sample, :universe).find_each{ |sample_variable|
tuples[sample_variable.sample.name] = {description: sample_variable.sample.long_description, universe_statement: sample_variable.universe.nil? ? "" : sample_variable.universe.universe_statement}
}
tuples
end
|
#start ⇒ Object
44
45
46
47
48
49
50
51
52
53
54
|
# File 'app/models/variable.rb', line 44
def start
if is_svar
s = samples.first
offset = household_variable? ? s.offset_for_person : s.offset_for_household
column_start + offset
else
column_start
end
end
|
#variable_path(str) ⇒ Object
122
123
124
|
# File 'app/models/variable.rb', line 122
def variable_path(str)
"<a href='#' class='cross_reference_variables' id='cross_reference_variable_#{str}' data-mnemonic='#{str}'>#{str}</a>"
end
|