tournament 2.4.0 → 2.5.0
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +6 -0
- data/README.txt +17 -0
- data/Rakefile +2 -2
- data/lib/tournament/pool.rb +7 -7
- data/webgui/app/views/reports/_possibility.html.erb +10 -3
- data/webgui/db/development.sqlite3 +0 -0
- data/webgui/public/stylesheets/main.css +7 -0
- metadata +3 -3
data/History.txt
CHANGED
@@ -1,5 +1,11 @@
|
|
1
|
+
== 2.5.0 / 2009-03-23
|
2
|
+
* Add rake task for generating possibility report data file.
|
3
|
+
* Bugfix for final four report: work around fact that web gui
|
4
|
+
sets things as strings that it should not.
|
5
|
+
|
1
6
|
== 2.4.0 / 2009-03-23
|
2
7
|
* Hook up possibility report.
|
8
|
+
* Limit recap mails to pool participants.
|
3
9
|
|
4
10
|
== 2.3.0 / 2009-03-20
|
5
11
|
* Add ability for admin to send emails to participants. Needs work.
|
data/README.txt
CHANGED
@@ -264,6 +264,23 @@ on the right sidebar to record the winning teams.
|
|
264
264
|
|
265
265
|
Use the report links to run reports, etc.
|
266
266
|
|
267
|
+
==== POSSIBILITY REPORT
|
268
|
+
|
269
|
+
After about 21 teams are left in the tournament, you can run the
|
270
|
+
possibility report. This report runs through every possible way the
|
271
|
+
tournament can come out and ranks each entry against the possiblity.
|
272
|
+
The report lists the "chance to win" for each entry. The chance
|
273
|
+
to win is the percentage of possible outcomes that would result in
|
274
|
+
that entry coming in first.
|
275
|
+
|
276
|
+
The possibility report requires that a rake task be run on the
|
277
|
+
web server. It is very processor intensive and can take a long
|
278
|
+
time to complete. To generate the possibility report data file,
|
279
|
+
run the following command from the web gui install directory
|
280
|
+
on the server:
|
281
|
+
|
282
|
+
RAILS_ENV=production rake report:possibilities
|
283
|
+
|
267
284
|
== SHOES GUI:
|
268
285
|
|
269
286
|
A GUI for filling out tournment bracket entries is included and is run
|
data/Rakefile
CHANGED
@@ -11,7 +11,7 @@ task :default => 'spec:run'
|
|
11
11
|
|
12
12
|
depend_on 'main'
|
13
13
|
depend_on 'rake'
|
14
|
-
depend_on 'rails', '2.2.2'
|
14
|
+
depend_on 'rails', '=2.2.2'
|
15
15
|
depend_on 'sqlite3-ruby'
|
16
16
|
|
17
17
|
|
@@ -20,7 +20,7 @@ PROJ.authors = 'Douglas A. Seifert'
|
|
20
20
|
PROJ.email = 'doug+rubyforge@dseifert.net'
|
21
21
|
PROJ.url = 'http://www.dseifert.net/code/tournament'
|
22
22
|
PROJ.rubyforge.name = 'tournament'
|
23
|
-
PROJ.version = '2.
|
23
|
+
PROJ.version = '2.5.0'
|
24
24
|
PROJ.group_id = 5863
|
25
25
|
|
26
26
|
PROJ.spec.opts << '--color'
|
data/lib/tournament/pool.rb
CHANGED
@@ -467,11 +467,12 @@ class Tournament::Pool
|
|
467
467
|
out << "are four or fewer teams left in the tournament." << "\n"
|
468
468
|
return
|
469
469
|
end
|
470
|
-
total_payout = @entries.size * @entry_fee
|
470
|
+
total_payout = @entries.size * @entry_fee.to_i
|
471
471
|
# Subtract out constant payments
|
472
472
|
total_payout = @payouts.values.inject(total_payout) {|t, amount| t += amount if amount < 0; t}
|
473
473
|
|
474
|
-
|
474
|
+
use_payouts = @payouts.inject({}) {|h,arr| k = arr[0] != :last ? arr[0].to_i : arr[0]; h[k] = arr[1]; h}
|
475
|
+
payout_keys = use_payouts.keys.sort do |a,b|
|
475
476
|
if Symbol === a
|
476
477
|
1
|
477
478
|
elsif Symbol === b
|
@@ -488,10 +489,10 @@ class Tournament::Pool
|
|
488
489
|
end
|
489
490
|
out << "Payouts" << "\n"
|
490
491
|
payout_keys.each do |key|
|
491
|
-
amount = if
|
492
|
-
|
492
|
+
amount = if use_payouts[key] > 0
|
493
|
+
use_payouts[key].to_f / 100.0 * total_payout
|
493
494
|
else
|
494
|
-
|
495
|
+
-use_payouts[key]
|
495
496
|
end
|
496
497
|
out << "%4s: $%5.2f" % [key, amount] << "\n"
|
497
498
|
end
|
@@ -515,13 +516,12 @@ class Tournament::Pool
|
|
515
516
|
end
|
516
517
|
end
|
517
518
|
finishers = {}
|
518
|
-
|
519
|
+
use_payouts.each do |rank, payout|
|
519
520
|
finishers[rank] = {}
|
520
521
|
finishers[rank][:payout] = payout
|
521
522
|
finishers[rank][:entries] = []
|
522
523
|
finishers[rank][:score] = 0
|
523
524
|
end
|
524
|
-
#puts "Got finishers: #{finishers.inspect}"
|
525
525
|
index = 0
|
526
526
|
rank = 1
|
527
527
|
while index < @entries.size
|
@@ -24,19 +24,26 @@
|
|
24
24
|
</tr>
|
25
25
|
</thead>
|
26
26
|
<tbody>
|
27
|
+
<% db_entry_ids = @pool.user_entries.inject({}) {|h,e| h[e.name] = e.id; h} %>
|
27
28
|
<% @stats.each do |stat| -%>
|
28
29
|
<tr class="<%=cycle('even', 'odd', :name => 'rtclass')%>">
|
29
|
-
<td><%=stat.entry.name%></td>
|
30
|
-
<td><%=stat.times_champ * 100.0/pool.tournament_entry.picks.number_of_outcomes%>%</td>
|
30
|
+
<td><%= link_to stat.entry.name, :controller => 'entry', :action => 'show', :id => db_entry_ids[stat.entry.name]%></td>
|
31
|
+
<td><%="%5.2f" % (stat.times_champ * 100.0/pool.tournament_entry.picks.number_of_outcomes)%>%</td>
|
31
32
|
<td><%=stat.min_rank.ordinal%></td>
|
32
33
|
<td><%=stat.entry.bracket.score_against(pool.tournament_entry.picks, pool.scoring_strategy)%></td>
|
33
34
|
<td><%=stat.max_score%></td>
|
34
35
|
<td><%=stat.entry.tie_breaker%></td>
|
35
36
|
<td>
|
37
|
+
<% if stat.champs.size > 0 %>
|
38
|
+
<a class="info" href="#">Detail
|
39
|
+
<span class="flow">
|
36
40
|
<% stat.champs.sort_by{|k,v| -v}.each do |team, occurrences| -%>
|
37
|
-
|
41
|
+
<nobr><%=team%> <%=occurrences%> (<%="%5.2f" % (occurrences.to_f * 100.0 / stat.times_champ)%>%)</nobr>
|
38
42
|
<br/>
|
39
43
|
<% end -%>
|
44
|
+
</span>
|
45
|
+
</a>
|
46
|
+
<% end -%>
|
40
47
|
|
41
48
|
</td>
|
42
49
|
</tr>
|
Binary file
|
@@ -181,3 +181,10 @@ a.info:hover span { /*the span will display just on :hover state*/
|
|
181
181
|
padding: 5px;
|
182
182
|
background-color:#cff; color:#000;
|
183
183
|
}
|
184
|
+
|
185
|
+
/* For non fixed width popups that have left justified text.*/
|
186
|
+
a.info:hover span.flow {
|
187
|
+
width: auto;
|
188
|
+
text-align: left;
|
189
|
+
}
|
190
|
+
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tournament
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Douglas A. Seifert
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-03-
|
12
|
+
date: 2009-03-25 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -38,7 +38,7 @@ dependencies:
|
|
38
38
|
version_requirement:
|
39
39
|
version_requirements: !ruby/object:Gem::Requirement
|
40
40
|
requirements:
|
41
|
-
- - "
|
41
|
+
- - "="
|
42
42
|
- !ruby/object:Gem::Version
|
43
43
|
version: 2.2.2
|
44
44
|
version:
|