Sha256: 54f19a486010d8c62609e7b0365f95c657ad0e28ee3d87139984e31a90720ecb

Contents?: true

Size: 1.43 KB

Versions: 24

Compression:

Stored size: 1.43 KB

Contents

class Entry < ActiveRecord::Base
  belongs_to :user
  belongs_to :pool
  validates_uniqueness_of :name
  validates_presence_of :tie_break
  validates_presence_of :user_id
  attr_accessor :old_name

  # Override bracket to resolve the db blob to an object
  def bracket
    unless @bracket
      if self[:data]
        @bracket = Marshal.load(self[:data])
      end
      @bracket ||= Tournament::Bracket.new(self.pool.pool.tournament_entry.picks.teams)
    end
    @bracket
  end

  def reset
    @bracket = Tournament::Bracket.new(self.pool.pool.tournament_entry.picks.teams)
  end

  def before_save
    if @bracket
      logger.debug("MARSHALLING BRACKET: #{@bracket.inspect}")
      self[:data] = Marshal.dump(@bracket)
      logger.debug("DONE MARSHALLING BRACKET")
    end
  end

  def after_save
    if self.bracket.complete? && self.user_id != self.pool.user_id
      if self.old_name
        # We changed entry names, so pull the old one out of the
        # backing pool
        self.pool.pool.entries.delete_if{|e| self.old_name == e.name}
      end
      self.pool.pool.update_entry(self.tournament_entry)
      self.pool.save!
    end
  end

  # Override name= to record name changes
  def name=(new_name)
    if new_name != self.name
      self.old_name = self.name
      self.write_attribute(:name, new_name)
    end
  end

  def tournament_entry
    @tournament_entry ||= Tournament::Entry.new(self.name, self.bracket, self.tie_break)
  end

end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
tournament-3.3.3 webgui/app/models/entry.rb
tournament-3.3.2 webgui/app/models/entry.rb
tournament-3.3.1 webgui/app/models/entry.rb
tournament-3.3.0 webgui/app/models/entry.rb
tournament-3.2.2 webgui/app/models/entry.rb
tournament-3.2.1 webgui/app/models/entry.rb
tournament-3.2.0 webgui/app/models/entry.rb
tournament-3.1.1 webgui/app/models/entry.rb
tournament-3.1.0 webgui/app/models/entry.rb
tournament-3.0.3 webgui/app/models/entry.rb
tournament-3.0.2 webgui/app/models/entry.rb
tournament-3.0.1 webgui/app/models/entry.rb
tournament-3.0.0 webgui/app/models/entry.rb
tournament-2.1.2 webgui/app/models/entry.rb
tournament-2.2.0 webgui/app/models/entry.rb
tournament-2.2.1 webgui/app/models/entry.rb
tournament-2.1.1 webgui/app/models/entry.rb
tournament-2.4.0 webgui/app/models/entry.rb
tournament-2.5.0 webgui/app/models/entry.rb
tournament-2.3.0 webgui/app/models/entry.rb