diff --git a/app/models/tournament.rb b/app/models/tournament.rb index bcff179..221c0bc 100644 --- a/app/models/tournament.rb +++ b/app/models/tournament.rb @@ -4,18 +4,19 @@ class Tournament < ActiveRecord::Base has_many :matches, dependent: :destroy has_many :mats, dependent: :destroy attr_accessor :upcomingMatches, :unfinishedMatches + serialize :matchups, Array def unfinishedMatches end def upcomingMatches - @matches = [] - self.weights.sort_by{|x|[x.max]}.each do |weight| - @upcomingMatches = weight.generateMatchups(@matches) + if self.matchups? + return self.matchups + else + @upcomingMatches = generateMatchups + return @upcomingMatches end - @upcomingMatches = assignBouts(@upcomingMatches) - return @upcomingMatches end @@ -26,7 +27,16 @@ class Tournament < ActiveRecord::Base end end - + def generateMatchups + @matches = [] + self.weights.map.sort_by{|x|[x.max]}.each do |weight| + @upcomingMatches = weight.generateMatchups(@matches) + end + @upcomingMatches = assignBouts(@upcomingMatches) + self.matchups = @upcomingMatches + self.save + return @upcomingMatches + end def assignBouts(matches) @bouts = Bout.new diff --git a/db/migrate/20150324233726_add_matchups_to_tournament.rb b/db/migrate/20150324233726_add_matchups_to_tournament.rb new file mode 100644 index 0000000..c6f1ef3 --- /dev/null +++ b/db/migrate/20150324233726_add_matchups_to_tournament.rb @@ -0,0 +1,5 @@ +class AddMatchupsToTournament < ActiveRecord::Migration + def change + add_column :tournaments, :matchups, :text + end +end diff --git a/db/schema.rb b/db/schema.rb index 3a4d587..7cc747e 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20150317122709) do +ActiveRecord::Schema.define(version: 20150324233726) do create_table "matches", force: :cascade do |t| t.integer "r_id" @@ -51,6 +51,7 @@ ActiveRecord::Schema.define(version: 20150317122709) do t.string "director_email" t.datetime "created_at" t.datetime "updated_at" + t.text "matchups" end create_table "users", force: :cascade do |t|