summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrewMurrell <amurrel@purdue.edu>2014-04-06 22:20:24 -0400
committerAndrewMurrell <amurrel@purdue.edu>2014-04-06 22:20:24 -0400
commit91fee659eadaf6bcc4d063fd5645950da1250896 (patch)
treebf1df15fd055199fc07d971623bfd6632dc3dee4
parent0d42079611ed2aeacd71b926580fdc3b943cf1ba (diff)
A few bug fixes, and a bunch of code that almost works.
-rw-r--r--Gemfile1
-rw-r--r--Gemfile.lock6
-rw-r--r--app/models/tournament.rb47
-rw-r--r--app/views/tournaments/_selected.html.erb23
-rw-r--r--db/seeds.rb5
5 files changed, 59 insertions, 23 deletions
diff --git a/Gemfile b/Gemfile
index a34b0a6..49e0795 100644
--- a/Gemfile
+++ b/Gemfile
@@ -13,6 +13,7 @@ gem 'httparty'
gem 'simple_captcha2', require: 'simple_captcha'
#gem 'rmagick'
+gem 'byebug'
group :development, :test do
# Use sqlite3 as the database for Active Record
diff --git a/Gemfile.lock b/Gemfile.lock
index 51e29e7..0de5c48 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -31,6 +31,9 @@ GEM
bootstrap-sass (3.1.1.0)
sass (~> 3.2)
builder (3.1.4)
+ byebug (2.7.0)
+ columnize (~> 0.3)
+ debugger-linecache (~> 1.2)
coffee-rails (4.0.1)
coffee-script (>= 2.2.0)
railties (>= 4.0.0, < 5.0)
@@ -38,6 +41,8 @@ GEM
coffee-script-source
execjs
coffee-script-source (1.7.0)
+ columnize (0.3.6)
+ debugger-linecache (1.2.0)
delayed_job (4.0.0)
activesupport (>= 3.0, < 4.1)
erubis (2.7.0)
@@ -127,6 +132,7 @@ PLATFORMS
DEPENDENCIES
bcrypt-ruby (= 3.1.2)
bootstrap-sass
+ byebug
coffee-rails (~> 4.0.0)
delayed_job
httparty
diff --git a/app/models/tournament.rb b/app/models/tournament.rb
index e408cfe..0b55cb6 100644
--- a/app/models/tournament.rb
+++ b/app/models/tournament.rb
@@ -1,9 +1,56 @@
class Tournament < ActiveRecord::Base
belongs_to :game
has_many :matches
+ has_many :preferences_raw, class_name: "TournamentPreference"
has_and_belongs_to_many :players, class_name: "User", association_foreign_key: "player_id", join_table: "players_tournaments"
has_and_belongs_to_many :hosts, class_name: "User", association_foreign_key: "host_id", join_table: "hosts_tournaments"
+ def preferences
+ @preferences ||= Preferences.new(self)
+ end
+ def preferences=(pref)
+ pref.each do |key, value|
+ value = false if valuedd == "0"
+ preferences[key] = value
+ end
+ end
+
+ class Preferences
+ def initialize(tournament)
+ @tournament = tournament
+ end
+
+ def [](preference)
+ p = @tournament.preferences_raw.find_by_name(preference)
+ if p.nil?
+ return nil
+ else
+ return p.value
+ end
+ end
+
+ def []=(preference, value)
+ p = @tournament.preferences_raw.find_by_name(preference)
+ if p.nil?
+ # TODO: create it
+ else
+ p.value = value
+ end
+ end
+
+ def keys
+ @tournament.preferences_raw.all.collect { |x| x.name }
+ end
+
+ def method_missing(name, *args)
+ if name.to_s.ends_with?('=')
+ self[name.to_s.sub(/=$/, '').to_sym] = args.first
+ else
+ return self[name.to_sym]
+ end
+ end
+ end
+
def open?
return true
end
diff --git a/app/views/tournaments/_selected.html.erb b/app/views/tournaments/_selected.html.erb
index 3661077..b66acb0 100644
--- a/app/views/tournaments/_selected.html.erb
+++ b/app/views/tournaments/_selected.html.erb
@@ -2,7 +2,7 @@
<%= render "common/error_messages", :target => @tournament %>
<%= f.hidden_field(:game_id) %>
- <% @game = Game.find_by(params[:game]) %>
+ <% @game = Game.find(params[:game]) %>
<% @tournament.attributes.each do |name, value| %>
<% if (name == "id") or (name =~ /.*_at$/) or (name == "game_id") or (name == "status") or (name == "set_rounds") %>
<% next %>
@@ -17,24 +17,5 @@
</p>
<% end %>
- <% @settings = GameSetting.find_by(params[:game_id]) %>
- <% unless @settings %>
- <br>
- <br>
- <br>
- <br>
- <br>
- <br>
- <br>
- <br>
- <% end %>
- <% @settings.each do |setting| %>
- <p>
- <%= f.label setting.name %><br>
- <% #eventually display by non-generic input method %>
- <%= f.select :setting options_from_collection_for_select([setting.description, ""].append setting.type_opt.split(',')) %>
- </p>
- <% end %>
-
- <%= f.submit %>
+ <%= f.submit %>
<% end %>
diff --git a/db/seeds.rb b/db/seeds.rb
index 986256c..01723bb 100644
--- a/db/seeds.rb
+++ b/db/seeds.rb
@@ -13,6 +13,7 @@ Game.create(name: "Hearthstone", min_players_per_team: 1, max_players_per_team:
Game.find_by_name("League of Legends").settings.create(name: "Map", default: "Summoners Rift", type_opt: "Summoners Rift,Twisted Treeline,Crystal Scar,Haunted Abyss", description: "Select a map to play on.", stype: 5, display_order: 1)
Game.find_by_name("League of Legends").settings.create(name: "Pick Type", type_opt: "Blind Pick,Draft", description: "Select a pick type.", stype: 5, display_order: 2)
-#Game_setting.create(game_id: , type: , name: , default: , description: , type_opt: , display_order: , created_at: , updated_at: )
+Game.find_by_name("Chess").settings.create(name: "Time Control", description: "Enter a value for Time Control (ie. 5-5, 30, 6hr, or None)", stype: 1, display_order: 1)
+
+Game.find_by_name("Hearthstone").settings.create(name: "Deck Name", description: "Enter a name for your deck, be descriptive.", stype: 2, display_order: 1)
-#User.create(id: 1, name: "Andrew", email: "amurrel@example.com", user_name: "ImFromNASA", created_at: "2014-03-07 22:48:53", updated_at: "2014-03-07 22:48:53", password_digest: "$2a$10$W0FwPRDzdQp8arolCHGt5ezXqkOiTLNsXI5GKGtu9qr3...", remember_token: "1583722b02663e024533296171cad79f29037ebc", groups: 0)