summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Shumaker <LukeShu@sbcglobal.net>2014-02-27 16:59:04 -0500
committerLuke Shumaker <LukeShu@sbcglobal.net>2014-02-27 16:59:04 -0500
commit3a7b14f4a51c0fdb8b71720f361a0a8ccf080325 (patch)
treeb677c4e56d96dfc872ae58d0d0e45d8243750441
parent8e3e88f52c1f2d73acdcb7fdf60326b5f7717068 (diff)
add game types
-rw-r--r--app/assets/javascripts/games.js.coffee3
-rw-r--r--app/assets/stylesheets/games.css.scss3
-rw-r--r--app/controllers/games_controller.rb74
-rw-r--r--app/helpers/games_helper.rb2
-rw-r--r--app/models/game.rb2
-rw-r--r--app/models/game_attribute.rb3
-rw-r--r--app/views/games/_form.html.erb21
-rw-r--r--app/views/games/edit.html.erb6
-rw-r--r--app/views/games/index.html.erb27
-rw-r--r--app/views/games/index.json.jbuilder4
-rw-r--r--app/views/games/new.html.erb5
-rw-r--r--app/views/games/show.html.erb9
-rw-r--r--app/views/games/show.json.jbuilder1
-rw-r--r--config/routes.rb2
-rw-r--r--db/migrate/20140304015013_create_servers.rb (renamed from db/migrate/20140304014940_create_servers.rb)0
-rw-r--r--db/migrate/20140304015015_create_tournaments.rb (renamed from db/migrate/20140304014942_create_tournaments.rb)0
-rw-r--r--db/migrate/20140304015017_create_matches.rb (renamed from db/migrate/20140304014944_create_matches.rb)0
-rw-r--r--db/migrate/20140304015019_create_teams.rb (renamed from db/migrate/20140304014946_create_teams.rb)0
-rw-r--r--db/migrate/20140304015021_create_users.rb (renamed from db/migrate/20140304014948_create_users.rb)0
-rw-r--r--db/migrate/20140304015023_create_user_team_pairs.rb (renamed from db/migrate/20140304014950_create_user_team_pairs.rb)0
-rw-r--r--db/migrate/20140304015026_create_team_match_pairs.rb (renamed from db/migrate/20140304014952_create_team_match_pairs.rb)0
-rw-r--r--db/migrate/20140304015028_create_alerts.rb (renamed from db/migrate/20140304014954_create_alerts.rb)0
-rw-r--r--db/migrate/20140304015030_create_pms.rb (renamed from db/migrate/20140304014957_create_pms.rb)0
-rw-r--r--db/migrate/20140304015032_create_games.rb9
-rw-r--r--db/migrate/20140304015034_create_game_attributes.rb11
-rw-r--r--db/migrate/20140304015036_create_server_settings.rb (renamed from db/migrate/20140304014959_create_server_settings.rb)0
-rw-r--r--db/migrate/20140304015042_create_tournament_options.rb (renamed from db/migrate/20140304015005_create_tournament_options.rb)0
-rw-r--r--db/schema.rb18
-rwxr-xr-xgenerate.sh4
-rw-r--r--test/controllers/games_controller_test.rb49
-rw-r--r--test/fixtures/game_attributes.yml11
-rw-r--r--test/fixtures/games.yml7
-rw-r--r--test/helpers/games_helper_test.rb4
-rw-r--r--test/models/game_attribute_test.rb7
-rw-r--r--test/models/game_test.rb7
35 files changed, 287 insertions, 2 deletions
diff --git a/app/assets/javascripts/games.js.coffee b/app/assets/javascripts/games.js.coffee
new file mode 100644
index 0000000..24f83d1
--- /dev/null
+++ b/app/assets/javascripts/games.js.coffee
@@ -0,0 +1,3 @@
+# Place all the behaviors and hooks related to the matching controller here.
+# All this logic will automatically be available in application.js.
+# You can use CoffeeScript in this file: http://coffeescript.org/
diff --git a/app/assets/stylesheets/games.css.scss b/app/assets/stylesheets/games.css.scss
new file mode 100644
index 0000000..db1b7bc
--- /dev/null
+++ b/app/assets/stylesheets/games.css.scss
@@ -0,0 +1,3 @@
+// Place all the styles related to the games controller here.
+// They will automatically be included in application.css.
+// You can use Sass (SCSS) here: http://sass-lang.com/
diff --git a/app/controllers/games_controller.rb b/app/controllers/games_controller.rb
new file mode 100644
index 0000000..0a9d8e8
--- /dev/null
+++ b/app/controllers/games_controller.rb
@@ -0,0 +1,74 @@
+class GamesController < ApplicationController
+ before_action :set_game, only: [:show, :edit, :update, :destroy]
+
+ # GET /games
+ # GET /games.json
+ def index
+ @games = Game.all
+ end
+
+ # GET /games/1
+ # GET /games/1.json
+ def show
+ end
+
+ # GET /games/new
+ def new
+ @game = Game.new
+ end
+
+ # GET /games/1/edit
+ def edit
+ end
+
+ # POST /games
+ # POST /games.json
+ def create
+ @game = Game.new(game_params)
+
+ respond_to do |format|
+ if @game.save
+ format.html { redirect_to @game, notice: 'Game was successfully created.' }
+ format.json { render action: 'show', status: :created, location: @game }
+ else
+ format.html { render action: 'new' }
+ format.json { render json: @game.errors, status: :unprocessable_entity }
+ end
+ end
+ end
+
+ # PATCH/PUT /games/1
+ # PATCH/PUT /games/1.json
+ def update
+ respond_to do |format|
+ if @game.update(game_params)
+ format.html { redirect_to @game, notice: 'Game was successfully updated.' }
+ format.json { head :no_content }
+ else
+ format.html { render action: 'edit' }
+ format.json { render json: @game.errors, status: :unprocessable_entity }
+ end
+ end
+ end
+
+ # DELETE /games/1
+ # DELETE /games/1.json
+ def destroy
+ @game.destroy
+ respond_to do |format|
+ format.html { redirect_to games_url }
+ format.json { head :no_content }
+ end
+ end
+
+ private
+ # Use callbacks to share common setup or constraints between actions.
+ def set_game
+ @game = Game.find(params[:id])
+ end
+
+ # Never trust parameters from the scary internet, only allow the white list through.
+ def game_params
+ params.require(:game).permit(:name)
+ end
+end
diff --git a/app/helpers/games_helper.rb b/app/helpers/games_helper.rb
new file mode 100644
index 0000000..2ef8c1f
--- /dev/null
+++ b/app/helpers/games_helper.rb
@@ -0,0 +1,2 @@
+module GamesHelper
+end
diff --git a/app/models/game.rb b/app/models/game.rb
new file mode 100644
index 0000000..a181c26
--- /dev/null
+++ b/app/models/game.rb
@@ -0,0 +1,2 @@
+class Game < ActiveRecord::Base
+end
diff --git a/app/models/game_attribute.rb b/app/models/game_attribute.rb
new file mode 100644
index 0000000..c12723b
--- /dev/null
+++ b/app/models/game_attribute.rb
@@ -0,0 +1,3 @@
+class GameAttribute < ActiveRecord::Base
+ belongs_to :game
+end
diff --git a/app/views/games/_form.html.erb b/app/views/games/_form.html.erb
new file mode 100644
index 0000000..0bbdd1f
--- /dev/null
+++ b/app/views/games/_form.html.erb
@@ -0,0 +1,21 @@
+<%= form_for(@game) do |f| %>
+ <% if @game.errors.any? %>
+ <div id="error_explanation">
+ <h2><%= pluralize(@game.errors.count, "error") %> prohibited this game from being saved:</h2>
+
+ <ul>
+ <% @game.errors.full_messages.each do |msg| %>
+ <li><%= msg %></li>
+ <% end %>
+ </ul>
+ </div>
+ <% end %>
+
+ <div class="field">
+ <%= f.label :name %><br>
+ <%= f.text_area :name %>
+ </div>
+ <div class="actions">
+ <%= f.submit %>
+ </div>
+<% end %>
diff --git a/app/views/games/edit.html.erb b/app/views/games/edit.html.erb
new file mode 100644
index 0000000..d72bd2e
--- /dev/null
+++ b/app/views/games/edit.html.erb
@@ -0,0 +1,6 @@
+<h1>Editing game</h1>
+
+<%= render 'form' %>
+
+<%= link_to 'Show', @game %> |
+<%= link_to 'Back', games_path %>
diff --git a/app/views/games/index.html.erb b/app/views/games/index.html.erb
new file mode 100644
index 0000000..27d47b6
--- /dev/null
+++ b/app/views/games/index.html.erb
@@ -0,0 +1,27 @@
+<h1>Listing games</h1>
+
+<table>
+ <thead>
+ <tr>
+ <th>Name</th>
+ <th></th>
+ <th></th>
+ <th></th>
+ </tr>
+ </thead>
+
+ <tbody>
+ <% @games.each do |game| %>
+ <tr>
+ <td><%= game.name %></td>
+ <td><%= link_to 'Show', game %></td>
+ <td><%= link_to 'Edit', edit_game_path(game) %></td>
+ <td><%= link_to 'Destroy', game, method: :delete, data: { confirm: 'Are you sure?' } %></td>
+ </tr>
+ <% end %>
+ </tbody>
+</table>
+
+<br>
+
+<%= link_to 'New Game', new_game_path %>
diff --git a/app/views/games/index.json.jbuilder b/app/views/games/index.json.jbuilder
new file mode 100644
index 0000000..90f4236
--- /dev/null
+++ b/app/views/games/index.json.jbuilder
@@ -0,0 +1,4 @@
+json.array!(@games) do |game|
+ json.extract! game, :id, :name
+ json.url game_url(game, format: :json)
+end
diff --git a/app/views/games/new.html.erb b/app/views/games/new.html.erb
new file mode 100644
index 0000000..ab95f70
--- /dev/null
+++ b/app/views/games/new.html.erb
@@ -0,0 +1,5 @@
+<h1>New game</h1>
+
+<%= render 'form' %>
+
+<%= link_to 'Back', games_path %>
diff --git a/app/views/games/show.html.erb b/app/views/games/show.html.erb
new file mode 100644
index 0000000..20d374f
--- /dev/null
+++ b/app/views/games/show.html.erb
@@ -0,0 +1,9 @@
+<p id="notice"><%= notice %></p>
+
+<p>
+ <strong>Name:</strong>
+ <%= @game.name %>
+</p>
+
+<%= link_to 'Edit', edit_game_path(@game) %> |
+<%= link_to 'Back', games_path %>
diff --git a/app/views/games/show.json.jbuilder b/app/views/games/show.json.jbuilder
new file mode 100644
index 0000000..a4d8d1c
--- /dev/null
+++ b/app/views/games/show.json.jbuilder
@@ -0,0 +1 @@
+json.extract! @game, :id, :name, :created_at, :updated_at
diff --git a/config/routes.rb b/config/routes.rb
index f13c891..3412005 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -1,4 +1,6 @@
Leaguer::Application.routes.draw do
+ resources :games
+
resources :pms
resources :alerts
diff --git a/db/migrate/20140304014940_create_servers.rb b/db/migrate/20140304015013_create_servers.rb
index f33241a..f33241a 100644
--- a/db/migrate/20140304014940_create_servers.rb
+++ b/db/migrate/20140304015013_create_servers.rb
diff --git a/db/migrate/20140304014942_create_tournaments.rb b/db/migrate/20140304015015_create_tournaments.rb
index 2095590..2095590 100644
--- a/db/migrate/20140304014942_create_tournaments.rb
+++ b/db/migrate/20140304015015_create_tournaments.rb
diff --git a/db/migrate/20140304014944_create_matches.rb b/db/migrate/20140304015017_create_matches.rb
index 6c0c157..6c0c157 100644
--- a/db/migrate/20140304014944_create_matches.rb
+++ b/db/migrate/20140304015017_create_matches.rb
diff --git a/db/migrate/20140304014946_create_teams.rb b/db/migrate/20140304015019_create_teams.rb
index dd8397d..dd8397d 100644
--- a/db/migrate/20140304014946_create_teams.rb
+++ b/db/migrate/20140304015019_create_teams.rb
diff --git a/db/migrate/20140304014948_create_users.rb b/db/migrate/20140304015021_create_users.rb
index 6a500e5..6a500e5 100644
--- a/db/migrate/20140304014948_create_users.rb
+++ b/db/migrate/20140304015021_create_users.rb
diff --git a/db/migrate/20140304014950_create_user_team_pairs.rb b/db/migrate/20140304015023_create_user_team_pairs.rb
index 2c492ac..2c492ac 100644
--- a/db/migrate/20140304014950_create_user_team_pairs.rb
+++ b/db/migrate/20140304015023_create_user_team_pairs.rb
diff --git a/db/migrate/20140304014952_create_team_match_pairs.rb b/db/migrate/20140304015026_create_team_match_pairs.rb
index 8fac07e..8fac07e 100644
--- a/db/migrate/20140304014952_create_team_match_pairs.rb
+++ b/db/migrate/20140304015026_create_team_match_pairs.rb
diff --git a/db/migrate/20140304014954_create_alerts.rb b/db/migrate/20140304015028_create_alerts.rb
index 68a8e10..68a8e10 100644
--- a/db/migrate/20140304014954_create_alerts.rb
+++ b/db/migrate/20140304015028_create_alerts.rb
diff --git a/db/migrate/20140304014957_create_pms.rb b/db/migrate/20140304015030_create_pms.rb
index 93bb5c6..93bb5c6 100644
--- a/db/migrate/20140304014957_create_pms.rb
+++ b/db/migrate/20140304015030_create_pms.rb
diff --git a/db/migrate/20140304015032_create_games.rb b/db/migrate/20140304015032_create_games.rb
new file mode 100644
index 0000000..fc54709
--- /dev/null
+++ b/db/migrate/20140304015032_create_games.rb
@@ -0,0 +1,9 @@
+class CreateGames < ActiveRecord::Migration
+ def change
+ create_table :games do |t|
+ t.text :name
+
+ t.timestamps
+ end
+ end
+end
diff --git a/db/migrate/20140304015034_create_game_attributes.rb b/db/migrate/20140304015034_create_game_attributes.rb
new file mode 100644
index 0000000..b63f134
--- /dev/null
+++ b/db/migrate/20140304015034_create_game_attributes.rb
@@ -0,0 +1,11 @@
+class CreateGameAttributes < ActiveRecord::Migration
+ def change
+ create_table :game_attributes do |t|
+ t.references :game, index: true
+ t.text :key
+ t.integer :type
+
+ t.timestamps
+ end
+ end
+end
diff --git a/db/migrate/20140304014959_create_server_settings.rb b/db/migrate/20140304015036_create_server_settings.rb
index dfdd91b..dfdd91b 100644
--- a/db/migrate/20140304014959_create_server_settings.rb
+++ b/db/migrate/20140304015036_create_server_settings.rb
diff --git a/db/migrate/20140304015005_create_tournament_options.rb b/db/migrate/20140304015042_create_tournament_options.rb
index d2df22e..d2df22e 100644
--- a/db/migrate/20140304015005_create_tournament_options.rb
+++ b/db/migrate/20140304015042_create_tournament_options.rb
diff --git a/db/schema.rb b/db/schema.rb
index 9d307ae..86afd1b 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: 20140304015005) do
+ActiveRecord::Schema.define(version: 20140304015042) do
create_table "alerts", force: true do |t|
t.integer "author_id"
@@ -22,6 +22,22 @@ ActiveRecord::Schema.define(version: 20140304015005) do
add_index "alerts", ["author_id"], name: "index_alerts_on_author_id"
+ create_table "game_attributes", force: true do |t|
+ t.integer "game_id"
+ t.text "key"
+ t.integer "type"
+ t.datetime "created_at"
+ t.datetime "updated_at"
+ end
+
+ add_index "game_attributes", ["game_id"], name: "index_game_attributes_on_game_id"
+
+ create_table "games", force: true do |t|
+ t.text "name"
+ t.datetime "created_at"
+ t.datetime "updated_at"
+ end
+
create_table "matches", force: true do |t|
t.integer "tournament_id"
t.datetime "created_at"
diff --git a/generate.sh b/generate.sh
index 52d0f90..7dbb444 100755
--- a/generate.sh
+++ b/generate.sh
@@ -5,7 +5,7 @@
# bundle exec rails server
#
# To Clear the Generated Files:
-#
+# git clean -df
#
set -x
@@ -18,6 +18,8 @@ bundle exec rails generate model user_team_pair user:references team:references
bundle exec rails generate model team_match_pair team:references match:references
bundle exec rails generate scaffold alert author:references message:text
bundle exec rails generate scaffold pm author:references recipient:references message:text
+bundle exec rails generate scaffold game name:text
+bundle exec rails generate model game_attribute game:references key:text type:integer
bundle exec rails generate model server_settings
bundle exec rails generate controller search
bundle exec rails generate controller main
diff --git a/test/controllers/games_controller_test.rb b/test/controllers/games_controller_test.rb
new file mode 100644
index 0000000..420758e
--- /dev/null
+++ b/test/controllers/games_controller_test.rb
@@ -0,0 +1,49 @@
+require 'test_helper'
+
+class GamesControllerTest < ActionController::TestCase
+ setup do
+ @game = games(:one)
+ end
+
+ test "should get index" do
+ get :index
+ assert_response :success
+ assert_not_nil assigns(:games)
+ end
+
+ test "should get new" do
+ get :new
+ assert_response :success
+ end
+
+ test "should create game" do
+ assert_difference('Game.count') do
+ post :create, game: { name: @game.name }
+ end
+
+ assert_redirected_to game_path(assigns(:game))
+ end
+
+ test "should show game" do
+ get :show, id: @game
+ assert_response :success
+ end
+
+ test "should get edit" do
+ get :edit, id: @game
+ assert_response :success
+ end
+
+ test "should update game" do
+ patch :update, id: @game, game: { name: @game.name }
+ assert_redirected_to game_path(assigns(:game))
+ end
+
+ test "should destroy game" do
+ assert_difference('Game.count', -1) do
+ delete :destroy, id: @game
+ end
+
+ assert_redirected_to games_path
+ end
+end
diff --git a/test/fixtures/game_attributes.yml b/test/fixtures/game_attributes.yml
new file mode 100644
index 0000000..eff7212
--- /dev/null
+++ b/test/fixtures/game_attributes.yml
@@ -0,0 +1,11 @@
+# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
+
+one:
+ game_id:
+ key: MyText
+ type: 1
+
+two:
+ game_id:
+ key: MyText
+ type: 1
diff --git a/test/fixtures/games.yml b/test/fixtures/games.yml
new file mode 100644
index 0000000..ce6f466
--- /dev/null
+++ b/test/fixtures/games.yml
@@ -0,0 +1,7 @@
+# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
+
+one:
+ name: MyText
+
+two:
+ name: MyText
diff --git a/test/helpers/games_helper_test.rb b/test/helpers/games_helper_test.rb
new file mode 100644
index 0000000..449a85c
--- /dev/null
+++ b/test/helpers/games_helper_test.rb
@@ -0,0 +1,4 @@
+require 'test_helper'
+
+class GamesHelperTest < ActionView::TestCase
+end
diff --git a/test/models/game_attribute_test.rb b/test/models/game_attribute_test.rb
new file mode 100644
index 0000000..13c6e65
--- /dev/null
+++ b/test/models/game_attribute_test.rb
@@ -0,0 +1,7 @@
+require 'test_helper'
+
+class GameAttributeTest < ActiveSupport::TestCase
+ # test "the truth" do
+ # assert true
+ # end
+end
diff --git a/test/models/game_test.rb b/test/models/game_test.rb
new file mode 100644
index 0000000..2cab36e
--- /dev/null
+++ b/test/models/game_test.rb
@@ -0,0 +1,7 @@
+require 'test_helper'
+
+class GameTest < ActiveSupport::TestCase
+ # test "the truth" do
+ # assert true
+ # end
+end