diff options
author | Luke Shumaker <LukeShu@sbcglobal.net> | 2014-02-27 16:59:04 -0500 |
---|---|---|
committer | Luke Shumaker <LukeShu@sbcglobal.net> | 2014-02-27 16:59:04 -0500 |
commit | 3a7b14f4a51c0fdb8b71720f361a0a8ccf080325 (patch) | |
tree | b677c4e56d96dfc872ae58d0d0e45d8243750441 | |
parent | 8e3e88f52c1f2d73acdcb7fdf60326b5f7717068 (diff) |
add game types
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 |