tournament 4.2.0 → 5.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,6 @@
1
+ == 5.0.0 / 2012-03-08
2
+ * 2012 bracket.
3
+
1
4
  == 4.2.0 / 2011-03-20
2
5
  * Add ability to run statistics for the possibility report in more than one
3
6
  process.
@@ -21,120 +21,15 @@ basketball tournament pool.
21
21
  adjunct to the command line script.
22
22
  * FIXME: Complete the test suite for the library and command line tool
23
23
 
24
- == COMMAND LINE SYNOPSIS:
25
-
26
- The tournament command line program is installed as 'pool'. The library
27
- has the 2010 NCAA tournament pre-configured. If you were to use
28
- this library for the 2011 NCAA tournament, code changes would be
29
- necessary. FIXME: (add ability to read teams from a simple configuration
30
- file). For usage, just execute
31
-
32
- pool --help
33
-
34
- For command specific usage, execute
35
-
36
- pool [command] --help
37
-
38
- where [command] is one of the available commands described below. The
39
- pool command saves state in a file called pool.yml by default. This
40
- can be overridden in all cases by using the --save-file option.
41
-
42
- The pool manager would use this program as follows:
43
-
44
- 1. Choose a scoring strategy. There are various scoring strategies
45
- that could be used. The library comes pre-configured with
46
- three scoring strategies:
47
- 1. Basic scoring strategy: each correct pick is worth 2 X the round.
48
- 2. Upset favoring strategy: each correct pick is worth a
49
- base amount per round plus the seed number of the winner. As
50
- pre-configured, the base amounts per round are 3, 5, 11, 19, 30
51
- and 40 points.
52
- 3. The Josh Patashnik strategy: each correct pick is worth the
53
- winner's seed number X a round multiplier. The multipliers
54
- are 1, 2, 4, 8, 16 and 32 points.
55
- 4. Tweaked Josh Patashnik strategy: each correct pick is worth the
56
- winner's seed number X a round multiplier. The multipliers
57
- are 1, 2, 4, 8, 12 and 22 points.
58
- 4. Constant Value strategy: each correct pick is worth exactly
59
- one (1) point, regardless of round.
60
- If your scoring strategy is not one of the above, you will have to
61
- add a class to the ScoringStrategy module, in file
62
- lib/tournament/scoring_strategy.rb.
63
-
64
- 2. Create a directory to hold the pool data and change to it
65
-
66
- 3. Initialize the pool
67
-
68
- pool setup [--scoring=upset]
69
-
70
- Use the --scoring argument to change from the default basic scoring
71
- strategy. If the basic strategy is ok, the --scoring argument is
72
- not required.
73
-
74
- As mentioned above, unless overridden by using the --save-file
75
- option, the pool will save itself to the file 'pool.yml'
76
-
77
- 4. Set the entry fee and payout amounts
78
-
79
- pool fee 10
80
- pool payout 1 80
81
- pool payout 2 20
82
- pool payout last 10 -C
83
-
84
- The above commands say that each entry fee is 10 units (this is all
85
- for fun, not profit, right?) and that the 1st place finisher would
86
- receive 80% of the total payout, the 2nd place finisher would
87
- receive 20% of the total payout and the last place finisher would
88
- receive 10 units back (would get her entry fee back). No error
89
- checking is done with this. FIXME: Add error checking.
90
-
91
- 5. Export a tournament entry YAML file
92
-
93
- pool dump
94
-
95
- This will save the tournament entry file as tournament.yml unless
96
- the --entry option is used to override it.
97
-
98
- 6. Create entries. You can use the included buggy GUI (see below),
99
- or edit YAML files by hand.
100
-
101
- 7. Import the entry YAML files into the pool
102
-
103
- pool entry --add=path/to/entry.yml
104
-
105
- 8. As games progress, update the tournament.yml file, again using the GUI or
106
- editing the YAML file by hand. Then update the pool with the new
107
- pool YAML file
108
-
109
- pool update
110
-
111
- 9. Run reports
112
-
113
- pool report [final_four|entry|region|leader|score]
114
-
115
- The final four report can only be run once the final four teams have
116
- been determined.
117
-
118
- 10. After about 22 teams are left, run a possibility report. This report will
119
- run through all the remaining ways the tournament can come out and
120
- calculate the chance to win for each player. The chance to win
121
- is defined as the percentage of possibilities that lead to that player
122
- coming out on top in the pool. With more than about 22 teams left
123
- (YMMV), this report could take months to run. FIXME (Investigate
124
- possibly using EC2 or something to spread the load around, or
125
- otherwise optimize the possibility checking algorithm)
126
-
127
- pool report possibility
128
-
129
24
  == WEB GUI:
130
25
 
131
- A Rails web application is available if you don't want to use the
132
- command line to manage your pool.
26
+ A Rails web application is available for collecting entries and
27
+ running reports during the course of the pool.
133
28
 
134
29
  === INSTALLING THE WEB GUI:
135
30
 
136
31
  The web application can be installed by running the pool command
137
- as follows
32
+ (see command line synopsis below) as follows
138
33
 
139
34
  pool install_webgui --web-dir=/path/to/directory [options]
140
35
 
@@ -298,6 +193,111 @@ on the server:
298
193
 
299
194
  RAILS_ENV=production rake report:possibilities
300
195
 
196
+ == COMMAND LINE SYNOPSIS:
197
+
198
+ The tournament command line program is installed as 'pool'. The library
199
+ has the 2010 NCAA tournament pre-configured. If you were to use
200
+ this library for the 2011 NCAA tournament, code changes would be
201
+ necessary. FIXME: (add ability to read teams from a simple configuration
202
+ file). For usage, just execute
203
+
204
+ pool --help
205
+
206
+ For command specific usage, execute
207
+
208
+ pool [command] --help
209
+
210
+ where [command] is one of the available commands described below. The
211
+ pool command saves state in a file called pool.yml by default. This
212
+ can be overridden in all cases by using the --save-file option.
213
+
214
+ The pool manager would use this program as follows:
215
+
216
+ 1. Choose a scoring strategy. There are various scoring strategies
217
+ that could be used. The library comes pre-configured with
218
+ three scoring strategies:
219
+ 1. Basic scoring strategy: each correct pick is worth 2 X the round.
220
+ 2. Upset favoring strategy: each correct pick is worth a
221
+ base amount per round plus the seed number of the winner. As
222
+ pre-configured, the base amounts per round are 3, 5, 11, 19, 30
223
+ and 40 points.
224
+ 3. The Josh Patashnik strategy: each correct pick is worth the
225
+ winner's seed number X a round multiplier. The multipliers
226
+ are 1, 2, 4, 8, 16 and 32 points.
227
+ 4. Tweaked Josh Patashnik strategy: each correct pick is worth the
228
+ winner's seed number X a round multiplier. The multipliers
229
+ are 1, 2, 4, 8, 12 and 22 points.
230
+ 4. Constant Value strategy: each correct pick is worth exactly
231
+ one (1) point, regardless of round.
232
+ If your scoring strategy is not one of the above, you will have to
233
+ add a class to the ScoringStrategy module, in file
234
+ lib/tournament/scoring_strategy.rb.
235
+
236
+ 2. Create a directory to hold the pool data and change to it
237
+
238
+ 3. Initialize the pool
239
+
240
+ pool setup [--scoring=upset]
241
+
242
+ Use the --scoring argument to change from the default basic scoring
243
+ strategy. If the basic strategy is ok, the --scoring argument is
244
+ not required.
245
+
246
+ As mentioned above, unless overridden by using the --save-file
247
+ option, the pool will save itself to the file 'pool.yml'
248
+
249
+ 4. Set the entry fee and payout amounts
250
+
251
+ pool fee 10
252
+ pool payout 1 80
253
+ pool payout 2 20
254
+ pool payout last 10 -C
255
+
256
+ The above commands say that each entry fee is 10 units (this is all
257
+ for fun, not profit, right?) and that the 1st place finisher would
258
+ receive 80% of the total payout, the 2nd place finisher would
259
+ receive 20% of the total payout and the last place finisher would
260
+ receive 10 units back (would get her entry fee back). No error
261
+ checking is done with this. FIXME: Add error checking.
262
+
263
+ 5. Export a tournament entry YAML file
264
+
265
+ pool dump
266
+
267
+ This will save the tournament entry file as tournament.yml unless
268
+ the --entry option is used to override it.
269
+
270
+ 6. Create entries. You can use the included buggy GUI (see below),
271
+ or edit YAML files by hand.
272
+
273
+ 7. Import the entry YAML files into the pool
274
+
275
+ pool entry --add=path/to/entry.yml
276
+
277
+ 8. As games progress, update the tournament.yml file, again using the GUI or
278
+ editing the YAML file by hand. Then update the pool with the new
279
+ pool YAML file
280
+
281
+ pool update
282
+
283
+ 9. Run reports
284
+
285
+ pool report [final_four|entry|region|leader|score]
286
+
287
+ The final four report can only be run once the final four teams have
288
+ been determined.
289
+
290
+ 10. After about 22 teams are left, run a possibility report. This report will
291
+ run through all the remaining ways the tournament can come out and
292
+ calculate the chance to win for each player. The chance to win
293
+ is defined as the percentage of possibilities that lead to that player
294
+ coming out on top in the pool. With more than about 22 teams left
295
+ (YMMV), this report could take months to run. FIXME (Investigate
296
+ possibly using EC2 or something to spread the load around, or
297
+ otherwise optimize the possibility checking algorithm)
298
+
299
+ pool report possibility
300
+
301
301
  == SHOES GUI (Deprecated):
302
302
 
303
303
  A GUI for filling out tournment bracket entries is included and is run
data/bin/gui.rb CHANGED
@@ -1,4 +1,6 @@
1
- #!/usr/bin/env shoes
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'green_shoes'
2
4
 
3
5
  Dir.chdir(File.join(File.dirname(__FILE__), '..'))
4
6
 
@@ -30,7 +32,7 @@ Shoes.app :width => WINDOW_WIDTH, :height => 600 do
30
32
  load_data
31
33
  else
32
34
  @entry = Tournament::Entry.new
33
- @entry.picks = Tournament::Bracket.new(@pool.scoring_strategy, @pool.tournament_entry.picks.teams)
35
+ @entry.picks = Tournament::Bracket.new(@pool.tournament_entry.picks.teams)
34
36
  #@picks = Tournament::Bracket.random_bracket(Tournament::Pool.ncaa_2008.bracket.teams)
35
37
  end
36
38
 
@@ -71,6 +73,7 @@ Shoes.app :width => WINDOW_WIDTH, :height => 600 do
71
73
  "%4s" % team.short_name
72
74
  end
73
75
  end
76
+ return label.gsub("&", "&")
74
77
  end
75
78
 
76
79
  def matchup_flow(region_idx, round, game, real_game, bc, gap)
@@ -172,11 +175,11 @@ Shoes.app :width => WINDOW_WIDTH, :height => 600 do
172
175
  end
173
176
  stack do
174
177
  para "Name"
175
- @name = edit_line @entry.name
178
+ @name = edit_line :text => @entry.name
176
179
  end
177
180
  stack do
178
181
  para "Tie Breaker"
179
- @tie_break = edit_line "#{@entry.tie_breaker}"
182
+ @tie_break = edit_line :text => "#{@entry.tie_breaker}"
180
183
  end
181
184
  end
182
185
  @pool.regions.each_with_index do |region, region_idx|
@@ -7,7 +7,7 @@ unless defined? Tournament
7
7
  module Tournament
8
8
 
9
9
  # :stopdoc:
10
- VERSION = '4.2.0'
10
+ VERSION = '5.0.0'
11
11
  LIBPATH = ::File.expand_path(::File.dirname(__FILE__)) + ::File::SEPARATOR
12
12
  PATH = ::File.dirname(LIBPATH) + ::File::SEPARATOR
13
13
  # :startdoc:
@@ -4,7 +4,7 @@ TABLE.bracket
4
4
  BORDER-TOP: black 1px solid;
5
5
  BORDER-LEFT: black 1px solid;
6
6
  BORDER-BOTTOM: black 1px solid;
7
- background: white url(../images/2011FinalFour.jpg) center no-repeat;
7
+ background: white url(../images/2012FinalFour.jpg) center no-repeat;
8
8
  }
9
9
 
10
10
  TABLE.bracket TH.header
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: 4.2.0
4
+ version: 5.0.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,23 +9,23 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-03-20 00:00:00.000000000 -07:00
12
+ date: 2012-03-09 00:00:00.000000000 -08:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: main
17
- requirement: &19735860 !ruby/object:Gem::Requirement
17
+ requirement: &70317973692360 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
21
21
  - !ruby/object:Gem::Version
22
- version: '0'
22
+ version: 5.0.0
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *19735860
25
+ version_requirements: *70317973692360
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: rake
28
- requirement: &19735380 !ruby/object:Gem::Requirement
28
+ requirement: &70317973691800 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ! '>='
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: 0.8.7
34
34
  type: :runtime
35
35
  prerelease: false
36
- version_requirements: *19735380
36
+ version_requirements: *70317973691800
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: rails
39
- requirement: &19734880 !ruby/object:Gem::Requirement
39
+ requirement: &70317973691300 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - =
@@ -44,18 +44,18 @@ dependencies:
44
44
  version: 2.3.11
45
45
  type: :runtime
46
46
  prerelease: false
47
- version_requirements: *19734880
47
+ version_requirements: *70317973691300
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: bones
50
- requirement: &19734400 !ruby/object:Gem::Requirement
50
+ requirement: &70317973690820 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ! '>='
54
54
  - !ruby/object:Gem::Version
55
- version: 3.6.5
55
+ version: 3.7.3
56
56
  type: :development
57
57
  prerelease: false
58
- version_requirements: *19734400
58
+ version_requirements: *70317973690820
59
59
  description: ! 'Small library, command line program and Rails web GUI for managing
60
60
  a NCAA
61
61
 
@@ -208,6 +208,7 @@ files:
208
208
  - webgui/public/images/2009FinalFour.png
209
209
  - webgui/public/images/2010FinalFour.jpg
210
210
  - webgui/public/images/2011FinalFour.jpg
211
+ - webgui/public/images/2012FinalFour.jpg
211
212
  - webgui/public/images/rails.png
212
213
  - webgui/public/javascripts/application.js
213
214
  - webgui/public/javascripts/bracket.js
@@ -374,5 +375,5 @@ specification_version: 3
374
375
  summary: Small library, command line program and Rails web GUI for managing a NCAA
375
376
  basketball tournament pool.
376
377
  test_files:
377
- - test/test_webgui_installer.rb
378
378
  - test/test_tournament.rb
379
+ - test/test_webgui_installer.rb