Files
old-holivud2/app/models/custom_rank_order.rb
2020-05-31 22:38:19 +02:00

25 lines
474 B
Ruby

class CustomRankOrder
def initialize(attribute, ordered_values)
@attribute = attribute
@ordered_values = ordered_values
end
def sql
Arel.sql case_statement
end
private
attr_accessor :attribute, :ordered_values
def case_statement
["CASE", case_conditions, "END"].join(" ")
end
def case_conditions
ordered_values.map.with_index do |release, index|
"WHEN #{attribute}='#{release}' THEN '#{index+1}'"
end.join(" ")
end
end