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.
44 lines
1.4 KiB
44 lines
1.4 KiB
# frozen_string_literal: true
|
|
|
|
module Analyze
|
|
module Graph
|
|
class ParentsByLanguage
|
|
attr_reader :speds
|
|
|
|
ALL_LANGUAGES = Language.all
|
|
ENGLISH_LANGUAGES = ALL_LANGUAGES.select { |language| language.designation == "English" }
|
|
UNKNOWN_LANGUAGES = ALL_LANGUAGES.select { |language| language.designation == "Prefer not to disclose" }
|
|
NON_ENGLISH_LANGUAGES = (ALL_LANGUAGES - ENGLISH_LANGUAGES - UNKNOWN_LANGUAGES)
|
|
|
|
def to_s
|
|
"Parents by Language"
|
|
end
|
|
|
|
def slug
|
|
"parents-by-language"
|
|
end
|
|
|
|
def columns
|
|
[].tap do |array|
|
|
array << Analyze::Graph::Column::Language.new(languages: ENGLISH_LANGUAGES, label: ["English", "Speaking"])
|
|
array << Analyze::Graph::Column::Language.new(languages: NON_ENGLISH_LANGUAGES, label: ["Non English", "Speaking"])
|
|
array << Analyze::Graph::Column::Language.new(languages: UNKNOWN_LANGUAGES, label: ["Unknown"])
|
|
array << Analyze::Graph::Column::Language.new(languages: ALL_LANGUAGES, label: ["All", "Parents"])
|
|
end
|
|
end
|
|
|
|
def source
|
|
Analyze::Source::SurveyData.new(slices: nil, graph: self)
|
|
end
|
|
|
|
def slice
|
|
Analyze::Slice::ParentsByGroup.new(graph: self)
|
|
end
|
|
|
|
def group
|
|
Analyze::Group::Base.new(name: "Language", slug: "language", graph: self)
|
|
end
|
|
end
|
|
end
|
|
end
|