diff options
author | AndrewMurrell <amurrel@purdue.edu> | 2014-04-06 23:48:45 -0400 |
---|---|---|
committer | AndrewMurrell <amurrel@purdue.edu> | 2014-04-06 23:48:45 -0400 |
commit | 4ac5229d216bd6d18a2b6e39bf90f76cbdfbb7c3 (patch) | |
tree | aca47500626da60a09a5f26216d7e6a3b2d934f5 /app | |
parent | edec37791164f1c32c8071784a8a02aa63afae55 (diff) |
Fixed Preferences.
Diffstat (limited to 'app')
-rw-r--r-- | app/models/tournament.rb | 22 |
1 files changed, 19 insertions, 3 deletions
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 |