mirror of
https://github.com/edcommonwealth/sqm-dashboards.git
synced 2026-03-09 07:28:41 -07:00
after a word boundary. This means it still doesn't get confused with caucasian and it's more flexible whan asian appears inside other text such as 'Caucasian and Asian and Black'
35 lines
787 B
Ruby
35 lines
787 B
Ruby
class Race < ApplicationRecord
|
|
include FriendlyId
|
|
has_many :student_races
|
|
has_many :students, through: :student_races
|
|
friendly_id :designation, use: [:slugged]
|
|
|
|
scope :by_qualtrics_code, lambda {
|
|
all.map { |race| [race.qualtrics_code, race] }.to_h
|
|
}
|
|
|
|
def self.qualtrics_code_from(word)
|
|
case word
|
|
when /Native\s*American|American\s*Indian|Alaskan\s*Native|1/i
|
|
1
|
|
when /\bAsian|Pacific\s*Island|Hawaiian|2/i
|
|
2
|
|
when /Black|African\s*American|3/i
|
|
3
|
|
when /Hispanic|Latinx|4/i
|
|
4
|
|
when /White|Caucasian|5/i
|
|
5
|
|
when /Prefer not to disclose|6/i
|
|
6
|
|
when /Prefer to self-describe|7/i
|
|
7
|
|
when /Middle\s*Eastern|North\s*African|8/i
|
|
8
|
|
when %r{^#*N/*A$}i
|
|
nil
|
|
else
|
|
99
|
|
end
|
|
end
|
|
end
|