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.
sqm-dashboards/app/models/gender.rb

35 lines
874 B

class Gender < ApplicationRecord
scope :by_qualtrics_code, lambda {
all.map { |gender| [gender.qualtrics_code, gender] }.to_h
}
def self.qualtrics_code_from(word)
return 99 if word.blank?
case word
when /Female|^F$|1/i
1
when /Male|^M$|2/i
2
when /Another\s*Gender|Gender Identity not listed above|3|7/i
4 # We categorize any self reported gender as non-binary
when /Non-Binary|^N$|4/i
4
when /Prefer not to disclose|6/i
99
when %r{^#*N/*A$}i
99
when /Unknown|99|Gender/i
99
else
puts "************************************"
puts "******** ERROR **********"
puts ""
puts "Error parsing Gender column. '#{word}' is not a known value. Halting execution"
puts ""
puts "************************************"
exit
end
end
end