tournament 4.2.0 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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