tournament 2.1.0 → 2.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt CHANGED
@@ -1,8 +1,14 @@
1
+ == 2.1.1 / 2009-03-16
2
+ * Fix bug when changing entry name after it has been completed
3
+ and therefore added to the backing Tournament::Pool object
4
+ * Another release forthcoming when play-in game is decided.
5
+
1
6
  == 2.1.0 / 2009-03-15
2
7
  * Update for 2009 NCAA tournament seedings
8
+ * Update for 2009 NCAA tournament seedings
3
9
  * Leader board report is HTML instead of text
4
10
  * Minor formatting changes for main page
5
- * 2.1.1 release when play-in game is decided.
11
+ * Another release forthcoming when play-in game is decided.
6
12
 
7
13
  == 2.0.0 / 2009-03-12
8
14
  * Release Rails GUI for self-service entries and admin
@@ -14,7 +20,7 @@
14
20
  http://blogs.tnr.com/tnr/blogs/the_plank/archive/2008/03/27/ncaa-pool-scoring-system-rant.aspx
15
21
  for details.
16
22
  * Many library improvements and refactorings.
17
- * 2.0.1 release with final 2009 NCAA tournament seedings forthcoming
23
+ * Another release forthcoming with final 2009 NCAA tournament seedings forthcoming
18
24
 
19
25
  == 1.1.1 / 2008-07-07
20
26
  * Update rake tasks to bones-2.0.2
data/README.txt CHANGED
@@ -211,6 +211,22 @@ name, "email" for the administrators email address, "name" for the
211
211
  admin user's name (eg, "Joe Admin"), and "password" for the desired
212
212
  admin account password
213
213
 
214
+ === UPDATING THE WEB GUI:
215
+
216
+ If the tournament gem is updated, you can pull in the changes as follows:
217
+
218
+ 1. Update your tournament gem
219
+
220
+ sudo gem update tournament
221
+
222
+ 2. Rerun the same pool install_webgui command you used to install originally
223
+
224
+ 3. Pull in any released db migrations:
225
+
226
+ cd $install_dir; RAILS_ENV=production rake db:migrate
227
+
228
+ 4. Reload your web server configuration (nginx, apache, etc.)
229
+
214
230
  === USING THE WEB GUI:
215
231
 
216
232
  Load the entry page in your brower. Log in as the admin user you
data/Rakefile CHANGED
@@ -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.1.0'
23
+ PROJ.version = '2.1.1'
24
24
  PROJ.group_id = 5863
25
25
 
26
26
  PROJ.spec.opts << '--color'
@@ -4,6 +4,7 @@ class Entry < ActiveRecord::Base
4
4
  validates_uniqueness_of :name
5
5
  validates_presence_of :tie_break
6
6
  validates_presence_of :user_id
7
+ attr_accessor :old_name
7
8
 
8
9
  # Override bracket to resolve the db blob to an object
9
10
  def bracket
@@ -30,11 +31,24 @@ class Entry < ActiveRecord::Base
30
31
 
31
32
  def after_save
32
33
  if self.bracket.complete? && self.user_id != self.pool.user_id
34
+ if self.old_name
35
+ # We changed entry names, so pull the old one out of the
36
+ # backing pool
37
+ self.pool.pool.entries.delete_if{|e| self.old_name == e.name}
38
+ end
33
39
  self.pool.pool.update_entry(self.tournament_entry)
34
40
  self.pool.save!
35
41
  end
36
42
  end
37
43
 
44
+ # Override name= to record name changes
45
+ def name=(new_name)
46
+ if new_name != self.name
47
+ self.old_name = self.name
48
+ self.write_attribute(:name, new_name)
49
+ end
50
+ end
51
+
38
52
  def tournament_entry
39
53
  @tournament_entry ||= Tournament::Entry.new(self.name, self.bracket, self.tie_break)
40
54
  end
Binary file
@@ -24,4 +24,31 @@ class EntryControllerTest < ActionController::TestCase
24
24
  assert_redirected_to :action => 'show'
25
25
  assert_equal "You can't make changes to your entry, the pool has already started.", flash[:error]
26
26
  end
27
+
28
+ test "entry can change name" do
29
+ login_as :quentin
30
+ pool = Pool.find(2)
31
+ # SHould have 1 pending entry
32
+ assert_equal 1, pool.pending_entries.size, "Should have 1 pending entry"
33
+ assert_equal 1, pool.user_entries.size, "Should have 1 user entry"
34
+ post(:edit, {:picks => "111222222222222222222222222222222222222222222222222222222222222",
35
+ :id => 1, :entry => {:name => 'Test', :tie_break => 42}, :pool_id => 2})
36
+ # Should have 1 completed entry
37
+ pool = Pool.find(2)
38
+ assert_equal 0, pool.pending_entries.size, "Should have 0 pending entries."
39
+ assert_equal 1, pool.user_entries.size, "Should have 1 user entry."
40
+ assert_equal pool.user_entries.size, pool.pool.entries.size, "AR and backing pool should have same number of entries"
41
+ assert_equal ['Test'], pool.user_entries.map{|e| e.name}
42
+ assert_equal ['Test'], pool.pool.entries.map{|e| e.name}
43
+
44
+ # Change entry name
45
+ post(:edit, {:picks => "111222222222222222222222222211111222222222222222222222222222222",
46
+ :id => 1, :entry => {:name => 'New Name', :tie_break => 42}, :pool_id => 2})
47
+ pool = Pool.find(2)
48
+ assert_equal 0, pool.pending_entries.size, "Should have 0 pending entries."
49
+ assert_equal 1, pool.user_entries.size, "AR pool should have 1 user entry."
50
+ assert_equal 1, pool.pool.entries.size, "Backing pool should have 1 user entry."
51
+ assert_equal ['New Name'], pool.user_entries.map{|e| e.name}
52
+ assert_equal ['New Name'], pool.pool.entries.map{|e| e.name}
53
+ end
27
54
  end
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.1.0
4
+ version: 2.1.1
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-15 00:00:00 -07:00
12
+ date: 2009-03-16 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency