Skip to content

Commit

Permalink
Merge 5bb1270 into b357366
Browse files Browse the repository at this point in the history
  • Loading branch information
notmarkmiranda committed Aug 3, 2018
2 parents b357366 + 5bb1270 commit 0560ebf
Show file tree
Hide file tree
Showing 11 changed files with 244 additions and 29 deletions.
2 changes: 2 additions & 0 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ gem 'coffee-rails', '~> 4.2'
gem 'jbuilder', '~> 2.5'
gem 'bootsnap', '>= 1.1.0', require: false
gem 'devise'
gem 'bootstrap', '~>4.1.1'
gem 'jquery-rails'

group :development, :test do
gem 'factory_bot_rails'
Expand Down
13 changes: 13 additions & 0 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -51,10 +51,16 @@ GEM
minitest (~> 5.1)
tzinfo (~> 1.1)
arel (9.0.0)
autoprefixer-rails (8.6.5)
execjs
bcrypt (3.1.12)
bindex (0.5.0)
bootsnap (1.3.0)
msgpack (~> 1.0)
bootstrap (4.1.1)
autoprefixer-rails (>= 6.0.3)
popper_js (>= 1.12.9, < 2)
sass (>= 3.5.2)
builder (3.2.3)
coderay (1.1.2)
coffee-rails (4.2.2)
Expand Down Expand Up @@ -100,6 +106,10 @@ GEM
jbuilder (2.7.0)
activesupport (>= 4.2.0)
multi_json (>= 1.2)
jquery-rails (4.3.3)
rails-dom-testing (>= 1, < 3)
railties (>= 4.2.0)
thor (>= 0.14, < 2.0)
json (2.1.0)
listen (3.1.5)
rb-fsevent (~> 0.9, >= 0.9.4)
Expand Down Expand Up @@ -128,6 +138,7 @@ GEM
mini_portile2 (~> 2.3.0)
orm_adapter (0.5.0)
pg (1.0.0)
popper_js (1.12.9)
pry (0.11.3)
coderay (~> 1.1.0)
method_source (~> 0.9.0)
Expand Down Expand Up @@ -242,13 +253,15 @@ PLATFORMS

DEPENDENCIES
bootsnap (>= 1.1.0)
bootstrap (~> 4.1.1)
coffee-rails (~> 4.2)
coveralls
database_cleaner
devise
factory_bot_rails
faker!
jbuilder (~> 2.5)
jquery-rails
listen (>= 3.0.5, < 3.2)
pg (>= 0.18, < 2.0)
pry
Expand Down
3 changes: 3 additions & 0 deletions app/assets/javascripts/application.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@
// Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
// about supported directives.
//
//= require jquery3
//= require popper
//= require bootstrap-sprockets
//= require rails-ujs
//= require activestorage
//= require_tree .
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,10 @@
*= require_tree .
*= require_self
*/

@import "bootstrap";
@import url('https://fonts.googleapis.com/css?family=Roboto:100,400,700');

body {
font-family: 'Roboto', sans-serif !important;
}
45 changes: 45 additions & 0 deletions app/assets/stylesheets/leagues/show.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
div.card-header.league-name {
font-size: 18px;
font-weight:100;
text-transform: uppercase;
}

.header-text {
font-size: 16px;
text-transform: uppercase;
color: #aaa;
font-weight: 100;
}

.stats {
display: flex;
justify-content: space-evenly;
}

.card-stat {
display: flex;
flex-direction: row;
justify-content: center;
}

.number-stat {
font-size: 72px;
font-weight: bold;
}

.stat-footer {
display: flex;
justify-content: center;
}

.stat-title {
text-transform: uppercase;
font-weight: 100;
}

.league-show-header {
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: baseline;
}
8 changes: 8 additions & 0 deletions app/assets/stylesheets/navbar.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
nav.navbar > div.container > a.navbar-brand {
text-transform: uppercase;
text-shadow: 2px 2px 5px #eee;
& > span {
font-weight: bold;
color: goldenrod;
}
}
3 changes: 2 additions & 1 deletion app/models/league.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ class League < ApplicationRecord
delegate :count, to: :players, prefix: true

def average_players_per_game
players_count.to_f / games_count
return 0.0 if games_count.zero?
(players_count.to_f / games_count * 100).floor / 100.0
end

def current_season
Expand Down
8 changes: 7 additions & 1 deletion app/views/layouts/application.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,17 @@
<%= stylesheet_link_tag 'application', media: 'all' %>
<%= javascript_include_tag 'application' %>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>

<body>

<%= render partial: 'shared/navbar' %>

<p class="notice"><%= notice %></p>
<p class="alert"><%= alert %></p>
<%= yield %>
<div class="container">
<%= yield %>
</div>
</body>
</html>
131 changes: 104 additions & 27 deletions app/views/leagues/show.html.erb
Original file line number Diff line number Diff line change
@@ -1,27 +1,104 @@
<p>League Name: <%= @league.name %></p>

<p>Number of Seasons: <%= @league.seasons_count %></p>
<p>Total Number of Games: <%= @league.games_count %></p>
<p>Average Players per Game: <%= @league.average_players_per_game %></p>
<p>League Leader:</p>
<p>Most 2nd Place Finishes:</p>
<p>Standings:</p>
<hr>
<p>Stats for Season #<%= @league.current_season_number %></p>
<p>Total Number of Games for Season: <%= @current_season.games_count %></p>
<p>Average Players per Game: <%= @current_season.average_players_per_game %></p>
<p>Current Season Leader: <%= @current_season.leader_full_name %></p>
<% unless @current_season.most_second_place_finishes[1].nil? %>
<p>Most 2nd Place Finishes (<%= @current_season.most_second_place_finishes[1] %>):</p>
<ul>
<% @current_season.most_second_place_finishes[0].each do |player_name| %>
<li><%= player_name %></li>
<% end %>
</ul>
<% end %>
<p>Standings:</p>
<ol>
<% @current_season.ordered_rankings_full_names.each do |player| %>
<li><%= player.user_full_name %> - <%= player.cumulative_score %></li>
<% end %>
</ol>
<div class="card">
<div class="card-header league-name">
<%= @league.name %>
</div>
<div class="card-body">
<div class="league-show-header">
<h5 class="header-text">Overall League Statistics</h5>
<%= link_to 'View Current Season Statistics', '#', class: 'btn btn-outline-info btn-sm' %>
</div>
<hr />
<div class="stats row justify-content-md-center">

<div class="card text-white bg-primary mb-3 ml-3 mr-3 col-md-3 pl-0 pr-0">
<div class="card-body card-stat">
<div class="number-stat"><%= @league.seasons_count %></div>
</div>
<div class="card-footer stat-footer">
<div class="stat-title">Number of Seasons</div>
</div>
</div>

<div class="card text-white bg-secondary mb-3 col-md-3 ml-3 mr-3 pl-0 pr-0">
<div class="card-body card-stat">
<div class="number-stat"><%= @league.games_count %></div>
</div>
<div class="card-footer stat-footer">
<div class="stat-title">Total Number of Games</div>
</div>
</div>

<div class="card text-white bg-success mb-3 col-md-3 ml-3 mr-3 pl-0 pr-0">
<div class="card-body card-stat">
<div class="number-stat"><%= @league.average_players_per_game %></div>
</div>
<div class="card-footer stat-footer">
<div class="stat-title">Average Players per Game</div>
</div>
</div>

</div>

<hr />
<div class="row justify-content-center mt-3">
<div class="col-md-4 mt-3">
<div class="card mb-4 border-primary">
<h5 class="card-header header-text">
League Leader
</h5>
<div class="card-body">
Mike Cassano
</div>
</div>

<div class="card mb-4 border-danger">
<h5 class="card-header header-text">
Most 2nd Place Finishes
</h5>
<div class="card-body">
Kyle Wheeler (23)
</div>
</div>
</div>

<div class="col-md-6 mt-3">
<div class="card mb-4 border-info">
<h5 class="card-header header-text">
Standings
</h5>
<ul class="list-group list-group-flush">
<li class="list-group-item">1. Mike Cassano</li>
<li class="list-group-item">2. Kyle Wheeler</li>
<li class="list-group-item">3. Tyler Merry</li>
<li class="list-group-item">4. Mark Miranda</li>
<li class="list-group-item">5. Mike Cassano</li>
<li class="list-group-item">6. Kyle Wheeler</li>
<li class="list-group-item">7. Tyler Merry</li>
<li class="list-group-item">8. Mark Miranda</li>
</ul>
</div>
</div>
</div>

<hr />
<p>Stats for Season #<%= @league.current_season_number %></p>
<p>Total Number of Games for Season: <%= @current_season.games_count %></p>
<p>Average Players per Game: <%= @current_season.average_players_per_game %></p>
<p>Current Season Leader: <%= @current_season.leader_full_name %></p>
<% unless @current_season.most_second_place_finishes[1].nil? %>
<p>Most 2nd Place Finishes (<%= @current_season.most_second_place_finishes[1] %>):</p>
<ul>
<% @current_season.most_second_place_finishes[0].each do |player_name| %>
<li><%= player_name %></li>
<% end %>
</ul>
<% end %>
<p>Standings:</p>
<ol>
<% @current_season.ordered_rankings_full_names.each do |player| %>
<li><%= player.user_full_name %> - <%= player.cumulative_score %></li>
<% end %>
</ol>

</div>
</div>
39 changes: 39 additions & 0 deletions app/views/shared/_navbar.html.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<div class="container">
<%= link_to root_path, class: 'navbar-brand' do %>
Poker<span>Rank</span>
<% end %>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>

<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link" href="#">Link <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Dropdown
</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="#">Something else here</a>
</div>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#">Disabled</a>
</li>
</ul>
<form class="form-inline my-2 my-lg-0">
<input class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
</form>
</div>
</div>
</nav>
14 changes: 14 additions & 0 deletions spec/models/league_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,20 @@
let!(:first_season) { create(:season, league: league) }
let!(:second_season) { create(:season, league: league, active: true) }

context '#average_players_per_game' do
subject { league.average_players_per_game }
it 'returns 0.0 for no games' do
expect(subject).to eq(0.0)
end

it 'returns the average number of players' do
games = create_list(:game, 4, season: first_season)
create_list(:player, 9, game: games[1])

expect(subject).to eq(2.25)
end
end

context '#current_season' do
subject { league.current_season }

Expand Down

0 comments on commit 0560ebf

Please sign in to comment.