You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
893 B
41 lines
893 B
module Analyze
|
|
module Graph
|
|
class StudentsByIncome
|
|
attr_reader :incomes
|
|
|
|
def initialize(incomes:)
|
|
@incomes = incomes
|
|
end
|
|
|
|
def to_s
|
|
"Students by income"
|
|
end
|
|
|
|
def slug
|
|
"students-by-income"
|
|
end
|
|
|
|
def columns
|
|
[].tap do |array|
|
|
incomes.each do |income|
|
|
array << column_for_income_code(code: income.slug)
|
|
end
|
|
array << Analyze::Graph::Column::AllStudent
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
def column_for_income_code(code:)
|
|
CFR[code.to_s]
|
|
end
|
|
|
|
CFR = {
|
|
"economically-disadvantaged-y" => Analyze::Graph::Column::IncomeColumn::Disadvantaged,
|
|
"economically-disadvantaged-n" => Analyze::Graph::Column::IncomeColumn::NotDisadvantaged,
|
|
"unknown" => Analyze::Graph::Column::IncomeColumn::Unknown
|
|
}.freeze
|
|
end
|
|
end
|
|
end
|