From 919ba959bbc782315b0a8b171aa96e2118a43067 Mon Sep 17 00:00:00 2001 From: tkimia Date: Mon, 28 Apr 2014 00:00:47 -0400 Subject: fixed the db seeds. They can now be started --- app/models/match.rb | 1 + 1 file changed, 1 insertion(+) (limited to 'app/models') diff --git a/app/models/match.rb b/app/models/match.rb index d4c0ce5..ff81d68 100644 --- a/app/models/match.rb +++ b/app/models/match.rb @@ -12,6 +12,7 @@ class Match < ActiveRecord::Base ok = true tournament_stage.scoring_method.stats_needed.each do |stat| ok &= statistics.where(match: self, name: stat).nil? + end ok end -- cgit v1.2.3-2-g168b From 33fcf6de9feaaa6f90dfe5082e08d280c930dae1 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Mon, 28 Apr 2014 00:04:30 -0400 Subject: Re-jigger the sampling interface --- app/models/match.rb | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'app/models') diff --git a/app/models/match.rb b/app/models/match.rb index c2df6e0..1edac8f 100644 --- a/app/models/match.rb +++ b/app/models/match.rb @@ -9,6 +9,16 @@ class Match < ActiveRecord::Base winner.players.include? player end + def users + ret = [] + self.teams.each{|t| ret.concat(t.users)} + return ret + end + + def stats_from(sampling_class) + # TODO + end + def handle_sampling(params) # TODO end -- cgit v1.2.3-2-g168b From d43213dfcf1f1d73d76ae2d2aa59cee3597c06da Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Mon, 28 Apr 2014 00:25:18 -0400 Subject: implement most of the TODOs in Match --- app/models/match.rb | 63 +++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 59 insertions(+), 4 deletions(-) (limited to 'app/models') diff --git a/app/models/match.rb b/app/models/match.rb index fa15980..460e7c4 100644 --- a/app/models/match.rb +++ b/app/models/match.rb @@ -27,18 +27,73 @@ class Match < ActiveRecord::Base end def stats_from(sampling_class) - # TODO + figure_sampling_methods.map{|stat,klass| (sampling_class==klass) ? stat : nil}.select{|s| not s.nil?} end - def handle_sampling(params) - # TODO + def handle_sampling(user, params) + method_classes.each do |klass| + klass.new(self).handle_user_interaction(user, params) + end end def render_sampling(user) - # TODO + require 'set' + html = '' + + method_classes.each do |klass| + html += '
' + html += klass.new(self).render_user_interaction(user) + html += '
' + end + + return html.html_safe end def finished? # TODO end + + private + def figure_sampling_methods + if @sampling_methods.nil? + data = {} + needed = self.tournament_stage.scoring.stats_needed + methods_names = self.tournament_stage.tournament.sampling_methods + methods_names.each do |method_name| + method_class = "Sampling::#{sampling_name.camelcase}".constantize + if method_class.works_with(self.tournament_stage.tournament.game) + needed.each do |stat| + data[stat] ||= {} + data[stat][method] = method.can_get?(user, stat) + end + end + end + + needed.each do |stat| + max_val = nil + max_pri = 0 + data[stat].each do |method,priority| + if priority > max_pri + max_val = method + max_pri = priority + end + end + data[stat] = max_val + end + @sampling_methods = data + end + return @sampling_methods + end + + def method_classes + if @method_classes.nil? + data = Set.new + figure_sampling_methods.each do |stat,method| + data.push(method) + end + @method_classes = data + end + return @method_classes + end + end -- cgit v1.2.3-2-g168b From 0a5242c3a460d0b99be0adc4593774a58b68154a Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Mon, 28 Apr 2014 00:29:11 -0400 Subject: fix bad merge --- app/models/match.rb | 4 ---- 1 file changed, 4 deletions(-) (limited to 'app/models') diff --git a/app/models/match.rb b/app/models/match.rb index 460e7c4..3cbe0da 100644 --- a/app/models/match.rb +++ b/app/models/match.rb @@ -49,10 +49,6 @@ class Match < ActiveRecord::Base return html.html_safe end - def finished? - # TODO - end - private def figure_sampling_methods if @sampling_methods.nil? -- cgit v1.2.3-2-g168b