diff options
author | guntasgrewal <guntasgrewal@gmail.com> | 2014-04-07 00:51:38 -0400 |
---|---|---|
committer | guntasgrewal <guntasgrewal@gmail.com> | 2014-04-07 00:51:38 -0400 |
commit | 315f3f87a060bc6c47a98a54c397ddb25e84bfc5 (patch) | |
tree | 69ac06ba8caa17f41678049d538d4664d53ca017 /app/models | |
parent | fd3308f9aacc9efb2a2692dbff8090dfcd663c88 (diff) | |
parent | 15eaa246ae30cc0050fd59a0864b445229464c31 (diff) |
Merge branch 'master' of https://github.com/LukeShu/leaguer
Diffstat (limited to 'app/models')
-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 |