From 4ac5229d216bd6d18a2b6e39bf90f76cbdfbb7c3 Mon Sep 17 00:00:00 2001 From: AndrewMurrell Date: Sun, 6 Apr 2014 23:48:45 -0400 Subject: Fixed Preferences. --- app/models/tournament.rb | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) (limited to 'app/models/tournament.rb') diff --git a/app/models/tournament.rb b/app/models/tournament.rb index fdcdba2..3e85744 100644 --- a/app/models/tournament.rb +++ b/app/models/tournament.rb @@ -16,6 +16,14 @@ class Tournament < ActiveRecord::Base end class Preferences + @vartypes = { + :true_false => 0, + :integer => 1, + :string => 2, + :select => 3, + :range => 4 + } + def initialize(tournament) @tournament = tournament end @@ -29,15 +37,23 @@ class Tournament < ActiveRecord::Base end end - def []=(preference, value) + def []=(preference, val) p = @tournament.preferences_raw.find_by_name(preference) if p.nil? - # TODO: create it + TournamentPreference.create( tournament_id: @tournament.id, vartype: get_type(val), name: preference, value: val ) else - p.value = value + p.value = val end end + def get_type(val) { + return vartypes[:true_false] if val == "true" or val == "false" + return vartypes[:range] if /\d+-\d+/ =~ val + return vartypes[:integer] if /\d+/ =~ val + return vartypes[:select] if /,/ =~ val + return vartypes[:string] + } + def keys @tournament.preferences_raw.all.collect { |x| x.name } end -- cgit v1.2.3-2-g168b