hubstats 0.3.13 → 0.3.14
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/CHANGELOG.markdown +5 -0
- data/Gemfile +1 -0
- data/app/assets/javascripts/hubstats/application.js +3 -4
- data/app/assets/stylesheets/hubstats/application.css +1 -1
- data/app/controllers/hubstats/application_controller.rb +2 -1
- data/app/controllers/hubstats/deploys_controller.rb +1 -1
- data/app/controllers/hubstats/pull_requests_controller.rb +5 -4
- data/app/controllers/hubstats/repos_controller.rb +23 -23
- data/app/controllers/hubstats/users_controller.rb +10 -10
- data/app/models/hubstats/comment.rb +1 -1
- data/app/models/hubstats/deploy.rb +4 -5
- data/app/models/hubstats/label.rb +1 -1
- data/app/models/hubstats/pull_request.rb +14 -14
- data/app/models/hubstats/repo.rb +20 -19
- data/app/models/hubstats/user.rb +37 -34
- data/app/views/hubstats/partials/_header.html.erb +4 -2
- data/app/views/layouts/hubstats/application.html.erb +1 -0
- data/date_range +0 -0
- data/hubstats.gemspec +1 -0
- data/lib/hubstats.rb +1 -1
- data/lib/hubstats/version.rb +1 -1
- data/spec/controllers/hubstats/deploys_controller_spec.rb +1 -1
- data/spec/controllers/hubstats/pull_requests_controller_spec.rb +4 -3
- data/spec/controllers/hubstats/repos_controller_spec.rb +9 -4
- data/spec/models/hubstats/deploy_spec.rb +6 -6
- data/spec/spec_helper.rb +1 -1
- data/test/test_helper.rb +1 -1
- metadata +17 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MTU5NGI4YWFlZjBjMTUzOTEwMjk3NDExMDU4OTk2MjM3OTQ4NmYzMQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
NTFmYjkwNjdmMmU5MDUwYjA3MmI1ZDA4OTNkMTJjZTgyNGEyMGMzOA==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MjIxMjNmMmJlNmRhNGZkZWZjZDc5MDI4ZjlkZTMwMmU5MzllYjE3YmZjNGM1
|
10
|
+
MWZhMDBjN2U1NWE5MDk0OGZhOTk1NDJmZGY3OTA5ZDQ1MDEyNzQwMTM5YWFi
|
11
|
+
OWIyMDQzNGIwNGExZDJjZmZhNmQxNjA2NDY5MDY3NzI3ZWVhOWU=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NWEzNGI2NWRlNThlMzBkMGNjM2M5MTYwMWNjMTMxMGQwYmI0MWY3ZjZiMGM0
|
14
|
+
ZjQwOTY4YmFkMDJmZTZhMzg1ZjFlMTM3NWNhOWQyZDBiZjI4NjcxN2NkYmY5
|
15
|
+
ODZhYTQzZTViNjMxMTlhZDExYWJjYWQ3MTVmMTBiODUyYTQ1NjU=
|
data/CHANGELOG.markdown
CHANGED
data/Gemfile
CHANGED
@@ -8,6 +8,7 @@ gemspec
|
|
8
8
|
# jquery-rails is used by the dummy application
|
9
9
|
gem "jquery-rails"
|
10
10
|
gem "mysql2"
|
11
|
+
gem "bootstrap-datepicker-rails"
|
11
12
|
# Declare any dependencies that are still in development here instead of in
|
12
13
|
# your gemspec. These might include edge Rails or gems from your path or
|
13
14
|
# Git. Remember to move these dependencies to your gemspec before releasing
|
@@ -14,21 +14,20 @@
|
|
14
14
|
//= require jquery_ujs
|
15
15
|
//= require select2
|
16
16
|
//= require hubstats/bootstrap
|
17
|
+
//= require bootstrap-datepicker
|
17
18
|
//= require_tree .
|
18
19
|
|
19
|
-
|
20
20
|
$(document).ready( function() {
|
21
|
-
|
21
|
+
setDateRange()
|
22
22
|
});
|
23
23
|
|
24
|
-
function
|
24
|
+
function setDateRange() {
|
25
25
|
var index = readCookie("hubstats_index") || 2;
|
26
26
|
var timer = document.getElementById("time-select");
|
27
27
|
|
28
28
|
timer.selectedIndex = index;
|
29
29
|
|
30
30
|
timer.onchange = function() {
|
31
|
-
|
32
31
|
createCookie("hubstats_index",this.selectedIndex,1);
|
33
32
|
window.location.reload();
|
34
33
|
};
|
@@ -6,7 +6,8 @@ module Hubstats
|
|
6
6
|
private
|
7
7
|
def set_time
|
8
8
|
cookies[:hubstats_index] ||= 2
|
9
|
-
@
|
9
|
+
@start_date = DATE_RANGE_ARRAY[cookies[:hubstats_index].to_i][:date].ago.to_date
|
10
|
+
@end_date = Date.today
|
10
11
|
end
|
11
12
|
end
|
12
13
|
end
|
@@ -8,7 +8,7 @@ module Hubstats
|
|
8
8
|
@deploys = Hubstats::Deploy.includes(:repo, :pull_requests, :user)
|
9
9
|
.belonging_to_users(params[:users]).belonging_to_repos(params[:repos])
|
10
10
|
.group_by(params[:group])
|
11
|
-
.
|
11
|
+
.order_with_date_range(@start_date, @end_date, params[:order])
|
12
12
|
.paginate(:page => params[:page], :per_page => 15)
|
13
13
|
|
14
14
|
grouping(params[:group], @deploys)
|
@@ -6,13 +6,13 @@ module Hubstats
|
|
6
6
|
def index
|
7
7
|
URI.decode(params[:label]) if params[:label]
|
8
8
|
|
9
|
-
pull_requests = PullRequest.all_filtered(params, @
|
9
|
+
pull_requests = PullRequest.all_filtered(params, @start_date, @end_date)
|
10
10
|
@labels = Hubstats::Label.count_by_pull_requests(pull_requests).order("pull_request_count DESC")
|
11
11
|
|
12
12
|
@pull_requests = Hubstats::PullRequest.includes(:user, :repo)
|
13
13
|
.belonging_to_users(params[:users]).belonging_to_repos(params[:repos])
|
14
14
|
.group_by(params[:group]).with_label(params[:label])
|
15
|
-
.state_based_order(@
|
15
|
+
.state_based_order(@start_date, @end_date, params[:state], params[:order])
|
16
16
|
.paginate(:page => params[:page], :per_page => 15)
|
17
17
|
|
18
18
|
grouping(params[:group], @pull_requests)
|
@@ -21,9 +21,10 @@ module Hubstats
|
|
21
21
|
def show
|
22
22
|
@repo = Hubstats::Repo.where(name: params[:repo]).first
|
23
23
|
@pull_request = Hubstats::PullRequest.belonging_to_repo(@repo.id).where(id: params[:id]).first
|
24
|
-
@comments = Hubstats::Comment.belonging_to_pull_request(params[:id]).
|
25
|
-
comment_count = Hubstats::Comment.belonging_to_pull_request(params[:id]).
|
24
|
+
@comments = Hubstats::Comment.belonging_to_pull_request(params[:id]).created_in_date_range(@start_date, @end_date).limit(20)
|
25
|
+
comment_count = Hubstats::Comment.belonging_to_pull_request(params[:id]).created_in_date_range(@start_date, @end_date).count(:all)
|
26
26
|
@deploys = Hubstats::Deploy.where(id: @pull_request.deploy_id).order("deployed_at DESC")
|
27
|
+
|
27
28
|
@stats_basics = {
|
28
29
|
comment_count: comment_count,
|
29
30
|
net_additions: @pull_request.additions.to_i - @pull_request.deletions.to_i,
|
@@ -4,12 +4,12 @@ module Hubstats
|
|
4
4
|
class ReposController < ApplicationController
|
5
5
|
|
6
6
|
def index
|
7
|
-
if params[:query]
|
7
|
+
if params[:query] ## For select 2
|
8
8
|
@repos = Hubstats::Repo.where("name LIKE ?", "%#{params[:query]}%").order("name ASC")
|
9
9
|
elsif params[:id]
|
10
10
|
@repos = Hubstats::Repo.where(id: params[:id].split(",")).order("name ASC")
|
11
11
|
else
|
12
|
-
@repos = Hubstats::Repo.with_recent_activity(@
|
12
|
+
@repos = Hubstats::Repo.with_recent_activity(@start_date, @end_date)
|
13
13
|
end
|
14
14
|
|
15
15
|
respond_to do |format|
|
@@ -19,40 +19,40 @@ module Hubstats
|
|
19
19
|
|
20
20
|
def show
|
21
21
|
@repo = Hubstats::Repo.where(name: params[:repo]).first
|
22
|
-
@pull_requests = Hubstats::PullRequest.belonging_to_repo(@repo.id).
|
23
|
-
@pull_count = Hubstats::PullRequest.belonging_to_repo(@repo.id).
|
24
|
-
@deploys = Hubstats::Deploy.belonging_to_repo(@repo.id).
|
25
|
-
@deploy_count = Hubstats::Deploy.belonging_to_repo(@repo.id).
|
26
|
-
@comment_count = Hubstats::Comment.belonging_to_repo(@repo.id).
|
27
|
-
@user_count = Hubstats::User.with_pulls_or_comments(@
|
28
|
-
@net_additions = Hubstats::PullRequest.
|
29
|
-
Hubstats::PullRequest.
|
30
|
-
@additions = Hubstats::PullRequest.
|
31
|
-
@deletions = Hubstats::PullRequest.
|
32
|
-
|
22
|
+
@pull_requests = Hubstats::PullRequest.belonging_to_repo(@repo.id).merged_in_date_range(@start_date, @end_date).order("updated_at DESC").limit(20)
|
23
|
+
@pull_count = Hubstats::PullRequest.belonging_to_repo(@repo.id).merged_in_date_range(@start_date, @end_date).count(:all)
|
24
|
+
@deploys = Hubstats::Deploy.belonging_to_repo(@repo.id).deployed_in_date_range(@start_date, @end_date).order("deployed_at DESC").limit(20)
|
25
|
+
@deploy_count = Hubstats::Deploy.belonging_to_repo(@repo.id).deployed_in_date_range(@start_date, @end_date).count(:all)
|
26
|
+
@comment_count = Hubstats::Comment.belonging_to_repo(@repo.id).created_in_date_range(@start_date, @end_date).count(:all)
|
27
|
+
@user_count = Hubstats::User.with_pulls_or_comments(@start_date, @end_date, @repo.id).only_active.length
|
28
|
+
@net_additions = Hubstats::PullRequest.merged_in_date_range(@start_date, @end_date).belonging_to_repo(@repo.id).sum(:additions).to_i -
|
29
|
+
Hubstats::PullRequest.merged_in_date_range(@start_date, @end_date).belonging_to_repo(@repo.id).sum(:deletions).to_i
|
30
|
+
@additions = Hubstats::PullRequest.merged_in_date_range(@start_date, @end_date).belonging_to_repo(@repo.id).average(:additions)
|
31
|
+
@deletions = Hubstats::PullRequest.merged_in_date_range(@start_date, @end_date).belonging_to_repo(@repo.id).average(:deletions)
|
32
|
+
|
33
33
|
stats
|
34
34
|
end
|
35
35
|
|
36
36
|
def dashboard
|
37
|
-
if params[:query] ## For select 2
|
37
|
+
if params[:query] ## For select 2
|
38
38
|
@repos = Hubstats::Repo.where("name LIKE ?", "%#{params[:query]}%").order("name ASC")
|
39
39
|
elsif params[:id]
|
40
40
|
@repos = Hubstats::Repo.where(id: params[:id].split(",")).order("name ASC")
|
41
41
|
else
|
42
|
-
@repos = Hubstats::Repo.with_all_metrics(@
|
42
|
+
@repos = Hubstats::Repo.with_all_metrics(@start_date, @end_date)
|
43
43
|
.with_id(params[:repos])
|
44
44
|
.custom_order(params[:order])
|
45
45
|
.paginate(:page => params[:page], :per_page => 15)
|
46
46
|
end
|
47
47
|
|
48
|
-
@user_count = Hubstats::User.with_pulls_or_comments(@
|
49
|
-
@deploy_count = Hubstats::Deploy.
|
50
|
-
@pull_count = Hubstats::PullRequest.
|
51
|
-
@comment_count = Hubstats::Comment.
|
52
|
-
@net_additions = Hubstats::PullRequest.
|
53
|
-
Hubstats::PullRequest.
|
54
|
-
@additions = Hubstats::PullRequest.
|
55
|
-
@deletions = Hubstats::PullRequest.
|
48
|
+
@user_count = Hubstats::User.with_pulls_or_comments(@start_date, @end_date).only_active.length
|
49
|
+
@deploy_count = Hubstats::Deploy.deployed_in_date_range(@start_date, @end_date).count(:all)
|
50
|
+
@pull_count = Hubstats::PullRequest.merged_in_date_range(@start_date, @end_date).count(:all)
|
51
|
+
@comment_count = Hubstats::Comment.created_in_date_range(@start_date, @end_date).count(:all)
|
52
|
+
@net_additions = Hubstats::PullRequest.merged_in_date_range(@start_date, @end_date).sum(:additions).to_i -
|
53
|
+
Hubstats::PullRequest.merged_in_date_range(@start_date, @end_date).sum(:deletions).to_i
|
54
|
+
@additions = Hubstats::PullRequest.merged_in_date_range(@start_date, @end_date).average(:additions)
|
55
|
+
@deletions = Hubstats::PullRequest.merged_in_date_range(@start_date, @end_date).average(:deletions)
|
56
56
|
|
57
57
|
stats
|
58
58
|
|
@@ -9,7 +9,7 @@ module Hubstats
|
|
9
9
|
elsif params[:id]
|
10
10
|
@users = Hubstats::User.where(id: params[:id].split(",")).order("login ASC")
|
11
11
|
else
|
12
|
-
@users = Hubstats::User.only_active.with_all_metrics(@
|
12
|
+
@users = Hubstats::User.only_active.with_all_metrics(@start_date, @end_date)
|
13
13
|
.with_id(params[:users])
|
14
14
|
.custom_order(params[:order])
|
15
15
|
.paginate(:page => params[:page], :per_page => 15)
|
@@ -23,15 +23,15 @@ module Hubstats
|
|
23
23
|
|
24
24
|
def show
|
25
25
|
@user = Hubstats::User.where(login: params[:id]).first
|
26
|
-
@pull_requests = Hubstats::PullRequest.belonging_to_user(@user.id).
|
27
|
-
@pull_count = Hubstats::PullRequest.belonging_to_user(@user.id).
|
28
|
-
@deploys = Hubstats::Deploy.belonging_to_user(@user.id).
|
29
|
-
@deploy_count = Hubstats::Deploy.belonging_to_user(@user.id).
|
30
|
-
@comment_count = Hubstats::Comment.belonging_to_user(@user.id).
|
31
|
-
@net_additions = Hubstats::PullRequest.
|
32
|
-
Hubstats::PullRequest.
|
33
|
-
@additions = Hubstats::PullRequest.
|
34
|
-
@deletions = Hubstats::PullRequest.
|
26
|
+
@pull_requests = Hubstats::PullRequest.belonging_to_user(@user.id).merged_in_date_range(@start_date, @end_date).order("updated_at DESC").limit(20)
|
27
|
+
@pull_count = Hubstats::PullRequest.belonging_to_user(@user.id).merged_in_date_range(@start_date, @end_date).count(:all)
|
28
|
+
@deploys = Hubstats::Deploy.belonging_to_user(@user.id).deployed_in_date_range(@start_date, @end_date).order("deployed_at DESC").limit(20)
|
29
|
+
@deploy_count = Hubstats::Deploy.belonging_to_user(@user.id).deployed_in_date_range(@start_date, @end_date).count(:all)
|
30
|
+
@comment_count = Hubstats::Comment.belonging_to_user(@user.id).created_in_date_range(@start_date, @end_date).count(:all)
|
31
|
+
@net_additions = Hubstats::PullRequest.merged_in_date_range(@start_date, @end_date).belonging_to_user(@user.id).sum(:additions).to_i -
|
32
|
+
Hubstats::PullRequest.merged_in_date_range(@start_date, @end_date).belonging_to_user(@user.id).sum(:deletions).to_i
|
33
|
+
@additions = Hubstats::PullRequest.merged_in_date_range(@start_date, @end_date).belonging_to_user(@user.id).average(:additions)
|
34
|
+
@deletions = Hubstats::PullRequest.merged_in_date_range(@start_date, @end_date).belonging_to_user(@user.id).average(:deletions)
|
35
35
|
|
36
36
|
stats
|
37
37
|
end
|
@@ -8,7 +8,7 @@ module Hubstats
|
|
8
8
|
.group("hubstats_comments.user_id")
|
9
9
|
}
|
10
10
|
|
11
|
-
scope :
|
11
|
+
scope :created_in_date_range, lambda {|start_date, end_date| where("hubstats_comments.created_at BETWEEN ? AND ?", start_date, end_date)}
|
12
12
|
scope :belonging_to_pull_request, lambda {|pull_request_id| where(pull_request_id: pull_request_id)}
|
13
13
|
scope :belonging_to_user, lambda {|user_id| where(user_id: user_id)}
|
14
14
|
scope :belonging_to_repo, lambda {|repo_id| where(repo_id: repo_id)}
|
@@ -8,13 +8,12 @@ module Hubstats
|
|
8
8
|
self.deployed_at = Time.now.getutc if deployed_at.nil?
|
9
9
|
end
|
10
10
|
|
11
|
-
scope :
|
11
|
+
scope :deployed_in_date_range, lambda {|start_date, end_date| where("hubstats_deploys.deployed_at BETWEEN ? AND ?", start_date, end_date)}
|
12
12
|
scope :group, lambda {|group| group_by(:repo_id) if group }
|
13
13
|
scope :belonging_to_repo, lambda {|repo_id| where(repo_id: repo_id)}
|
14
14
|
scope :belonging_to_user, lambda {|user_id| where(user_id: user_id)}
|
15
15
|
scope :belonging_to_repos, lambda {|repo_id| where(repo_id: repo_id.split(',')) if repo_id}
|
16
16
|
scope :belonging_to_users, lambda {|user_id| where(user_id: user_id.split(',')) if user_id}
|
17
|
-
scope :order_with_timespan
|
18
17
|
scope :with_repo_name, select('DISTINCT hubstats_repos.name as repo_name, hubstats_deploys.*').joins("LEFT JOIN hubstats_repos ON hubstats_repos.id = hubstats_deploys.repo_id")
|
19
18
|
scope :with_user_name, select('DISTINCT hubstats_users.login as user_name, hubstats_deploys.*').joins("LEFT JOIN hubstats_users ON hubstats_users.id = hubstats_deploys.user_id")
|
20
19
|
|
@@ -24,10 +23,10 @@ module Hubstats
|
|
24
23
|
belongs_to :repo
|
25
24
|
has_many :pull_requests
|
26
25
|
|
27
|
-
# Order the data in a given
|
28
|
-
def self.
|
26
|
+
# Order the data in a given date range in a given order
|
27
|
+
def self.order_with_date_range(start_date, end_date, order)
|
29
28
|
order = ["ASC", "DESC"].detect{|order_type| order_type.to_s == order.to_s.upcase } || "DESC"
|
30
|
-
|
29
|
+
deployed_in_date_range(start_date, end_date).order("hubstats_deploys.deployed_at #{order}")
|
31
30
|
end
|
32
31
|
|
33
32
|
# Sorts based on whether data is being grouped by user or repo
|
@@ -10,7 +10,7 @@ module Hubstats
|
|
10
10
|
.order("pull_request_count DESC")
|
11
11
|
end
|
12
12
|
|
13
|
-
scope :with_ids, lambda {
|
13
|
+
scope :with_ids, lambda {|pull_ids| (where("hubstats_labels_pull_requests.pull_request_id" => pull_ids))}
|
14
14
|
|
15
15
|
scope :with_state, lambda {|state| (where(state: state) unless state == 'all') if state}
|
16
16
|
|
@@ -1,9 +1,9 @@
|
|
1
1
|
module Hubstats
|
2
2
|
class PullRequest < ActiveRecord::Base
|
3
|
-
scope :
|
4
|
-
scope :
|
5
|
-
scope :
|
6
|
-
scope :
|
3
|
+
scope :closed_in_date_range, lambda {|start_date, end_date| where("hubstats_pull_requests.closed_at BETWEEN ? AND ?", start_date, end_date)}
|
4
|
+
scope :updated_in_date_range, lambda {|start_date, end_date| where("hubstats_pull_requests.updated_at BETWEEN ? AND ?", start_date, end_date)}
|
5
|
+
scope :created_in_date_range, lambda {|start_date, end_date| where("hubstats_pull_requests.created_at BETWEEN ? AND ?", start_date, end_date)}
|
6
|
+
scope :merged_in_date_range, lambda {|start_date, end_date| where("hubstats_pull_requests.merged").where("hubstats_pull_requests.merged_at BETWEEN ? AND ?", start_date, end_date)}
|
7
7
|
scope :belonging_to_repo, lambda {|repo_id| where(repo_id: repo_id)}
|
8
8
|
scope :belonging_to_user, lambda {|user_id| where(user_id: user_id)}
|
9
9
|
scope :belonging_to_deploy, lambda {|deploy_id| where(deploy_id: deploy_id)}
|
@@ -11,12 +11,12 @@ module Hubstats
|
|
11
11
|
scope :belonging_to_users, lambda {|user_id| where(user_id: user_id.split(',')) if user_id}
|
12
12
|
scope :group, lambda {|group| group_by(:repo_id) if group }
|
13
13
|
scope :with_state, lambda {|state| (where(state: state) unless state == 'all') if state}
|
14
|
-
scope :with_label, lambda {
|
14
|
+
scope :with_label, lambda {|label_name| joins(:labels).where(hubstats_labels: {name: label_name.split(',')}) if label_name}
|
15
15
|
scope :distinct, select("DISTINCT hubstats_pull_requests.*")
|
16
16
|
scope :with_repo_name, select('DISTINCT hubstats_repos.name as repo_name, hubstats_pull_requests.*').joins("LEFT JOIN hubstats_repos ON hubstats_repos.id = hubstats_pull_requests.repo_id")
|
17
17
|
scope :with_user_name, select('DISTINCT hubstats_users.login as user_name, hubstats_pull_requests.*').joins("LEFT JOIN hubstats_users ON hubstats_users.id = hubstats_pull_requests.user_id")
|
18
18
|
|
19
|
-
|
19
|
+
attr_accessible :id, :url, :html_url, :diff_url, :patch_url, :issue_url, :commits_url,
|
20
20
|
:review_comments_url, :review_comment_url, :comments_url, :statuses_url, :number,
|
21
21
|
:state, :title, :body, :created_at, :updated_at, :closed_at, :merged_at,
|
22
22
|
:merge_commit_sha, :merged, :mergeable, :comments, :commits, :additions,
|
@@ -56,26 +56,26 @@ module Hubstats
|
|
56
56
|
end
|
57
57
|
|
58
58
|
def add_labels(labels)
|
59
|
-
labels.map!{
|
59
|
+
labels.map!{|label| Hubstats::Label.first_or_create(label) }
|
60
60
|
self.labels = labels
|
61
61
|
end
|
62
62
|
|
63
|
-
def self.all_filtered(params,
|
64
|
-
|
63
|
+
def self.all_filtered(params, start_date, end_date)
|
64
|
+
filter_based_on_date_range(start_date, end_date, params[:state])
|
65
65
|
.belonging_to_users(params[:users])
|
66
66
|
.belonging_to_repos(params[:repos])
|
67
67
|
end
|
68
68
|
|
69
|
-
def self.
|
70
|
-
with_state(state).
|
69
|
+
def self.filter_based_on_date_range(start_date, end_date, state)
|
70
|
+
with_state(state).updated_in_date_range(start_date, end_date)
|
71
71
|
end
|
72
72
|
|
73
|
-
def self.state_based_order(
|
73
|
+
def self.state_based_order(start_date, end_date, state, order)
|
74
74
|
order = ["ASC","DESC"].detect{|order_type| order_type.to_s == order.to_s.upcase } || "DESC"
|
75
75
|
if state == "closed"
|
76
|
-
with_state(state).
|
76
|
+
with_state(state).updated_in_date_range(start_date, end_date).order("hubstats_pull_requests.closed_at #{order}")
|
77
77
|
else #state == "open"
|
78
|
-
with_state(state).
|
78
|
+
with_state(state).updated_in_date_range(start_date, end_date).order("hubstats_pull_requests.created_at #{order}")
|
79
79
|
end
|
80
80
|
end
|
81
81
|
|
data/app/models/hubstats/repo.rb
CHANGED
@@ -1,32 +1,32 @@
|
|
1
1
|
module Hubstats
|
2
2
|
class Repo < ActiveRecord::Base
|
3
3
|
|
4
|
-
scope :with_recent_activity, lambda {|
|
5
|
-
scope :with_id, lambda {|
|
4
|
+
scope :with_recent_activity, lambda {|start_date, end_date| where("hubstats_repos.updated_at BETWEEN ? AND ?", start_date, end_date).order("updated_at DESC")}
|
5
|
+
scope :with_id, lambda {|repo_id| where(id: repo_id.split(',')) if repo_id}
|
6
6
|
|
7
|
-
scope :
|
7
|
+
scope :deploys_count, lambda {|start_date, end_date|
|
8
8
|
select("hubstats_repos.id as repo_id")
|
9
|
-
.select("IFNULL(COUNT(DISTINCT
|
10
|
-
.joins("LEFT JOIN
|
9
|
+
.select("IFNULL(COUNT(DISTINCT hubstats_deploys.id),0) AS deploy_count")
|
10
|
+
.joins(sanitize_sql_array(["LEFT JOIN hubstats_deploys ON hubstats_deploys.repo_id = hubstats_repos.id AND (hubstats_deploys.deployed_at BETWEEN ? AND ?)", start_date, end_date]))
|
11
11
|
.group("hubstats_repos.id")
|
12
12
|
}
|
13
13
|
|
14
|
-
scope :
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
deploys_or_comments_count(time, "hubstats_comments", "created_at", "comment")
|
14
|
+
scope :comments_count, lambda {|start_date, end_date|
|
15
|
+
select("hubstats_repos.id as repo_id")
|
16
|
+
.select("IFNULL(COUNT(DISTINCT hubstats_comments.id),0) AS comment_count")
|
17
|
+
.joins(sanitize_sql_array(["LEFT JOIN hubstats_comments ON hubstats_comments.repo_id = hubstats_repos.id AND (hubstats_comments.created_at BETWEEN ? AND ?)", start_date, end_date]))
|
18
|
+
.group("hubstats_repos.id")
|
20
19
|
}
|
21
20
|
|
22
|
-
scope :pull_requests_count, lambda {|
|
21
|
+
scope :pull_requests_count, lambda {|start_date, end_date|
|
23
22
|
select("hubstats_repos.id as repo_id")
|
24
23
|
.select("IFNULL(COUNT(DISTINCT hubstats_pull_requests.id),0) AS pull_request_count")
|
25
|
-
.joins("LEFT JOIN hubstats_pull_requests ON hubstats_pull_requests.repo_id = hubstats_repos.id AND hubstats_pull_requests.merged_at
|
24
|
+
.joins(sanitize_sql_array(["LEFT JOIN hubstats_pull_requests ON hubstats_pull_requests.repo_id = hubstats_repos.id AND (hubstats_pull_requests.merged_at BETWEEN ? AND ?)", start_date, end_date]))
|
25
|
+
.where("hubstats_pull_requests.merged = '1'")
|
26
26
|
.group("hubstats_repos.id")
|
27
27
|
}
|
28
28
|
|
29
|
-
scope :averages, lambda { |
|
29
|
+
scope :averages, lambda {|start_date, end_date|
|
30
30
|
select("hubstats_repos.id as repo_id")
|
31
31
|
.select("ROUND(IFNULL(AVG(hubstats_pull_requests.additions),0)) AS average_additions")
|
32
32
|
.select("ROUND(IFNULL(AVG(hubstats_pull_requests.deletions),0)) AS average_deletions")
|
@@ -34,12 +34,12 @@ module Hubstats
|
|
34
34
|
.group("hubstats_repos.id")
|
35
35
|
}
|
36
36
|
|
37
|
-
scope :with_all_metrics, lambda { |
|
37
|
+
scope :with_all_metrics, lambda {|start_date, end_date|
|
38
38
|
select("hubstats_repos.*, deploy_count, pull_request_count, comment_count, average_additions, average_deletions")
|
39
|
-
.joins("LEFT JOIN (#{averages(
|
40
|
-
.joins("LEFT JOIN (#{pull_requests_count(
|
41
|
-
.joins("LEFT JOIN (#{comments_count(
|
42
|
-
.joins("LEFT JOIN (#{deploys_count(
|
39
|
+
.joins("LEFT JOIN (#{averages(start_date, end_date).to_sql}) AS averages ON averages.repo_id = hubstats_repos.id")
|
40
|
+
.joins("LEFT JOIN (#{pull_requests_count(start_date, end_date).to_sql}) AS pull_requests ON pull_requests.repo_id = hubstats_repos.id")
|
41
|
+
.joins("LEFT JOIN (#{comments_count(start_date, end_date).to_sql}) AS comments ON comments.repo_id = hubstats_repos.id")
|
42
|
+
.joins("LEFT JOIN (#{deploys_count(start_date, end_date).to_sql}) AS deploys ON deploys.repo_id = hubstats_repos.id")
|
43
43
|
.group("hubstats_repos.id")
|
44
44
|
}
|
45
45
|
|
@@ -53,6 +53,7 @@ module Hubstats
|
|
53
53
|
|
54
54
|
has_many :pull_requests
|
55
55
|
has_many :deploys
|
56
|
+
has_many :comments
|
56
57
|
belongs_to :owner, :class_name => "User", :foreign_key => "id"
|
57
58
|
|
58
59
|
def self.create_or_update(github_repo)
|
data/app/models/hubstats/user.rb
CHANGED
@@ -3,78 +3,81 @@ module Hubstats
|
|
3
3
|
|
4
4
|
scope :with_id, lambda {|user_id| where(id: user_id.split(',')) if user_id}
|
5
5
|
|
6
|
-
scope :
|
6
|
+
scope :deploys_count, lambda {|start_date, end_date|
|
7
7
|
select("hubstats_users.id as user_id")
|
8
|
-
.select("IFNULL(COUNT(DISTINCT
|
9
|
-
.joins("LEFT JOIN
|
8
|
+
.select("IFNULL(COUNT(DISTINCT hubstats_deploys.id),0) AS deploy_count")
|
9
|
+
.joins(sanitize_sql_array(["LEFT JOIN hubstats_deploys ON hubstats_deploys.user_id = hubstats_users.id AND (hubstats_deploys.deployed_at BETWEEN ? AND ?)", start_date, end_date]))
|
10
10
|
.group("hubstats_users.id")
|
11
11
|
}
|
12
12
|
|
13
|
-
scope :
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
deploys_or_comments_count(time, "hubstats_comments", "created_at", "comment")
|
13
|
+
scope :comments_count, lambda {|start_date, end_date|
|
14
|
+
select("hubstats_users.id as user_id")
|
15
|
+
.select("IFNULL(COUNT(DISTINCT hubstats_comments.id),0) AS comment_count")
|
16
|
+
.joins(sanitize_sql_array(["LEFT JOIN hubstats_comments ON hubstats_comments.user_id = hubstats_users.id AND (hubstats_comments.created_at BETWEEN ? AND ?)", start_date, end_date]))
|
17
|
+
.group("hubstats_users.id")
|
19
18
|
}
|
20
19
|
|
21
|
-
scope :pull_requests_count, lambda {|
|
20
|
+
scope :pull_requests_count, lambda {|start_date, end_date|
|
22
21
|
select("hubstats_users.id as user_id")
|
23
22
|
.select("IFNULL(COUNT(DISTINCT hubstats_pull_requests.id),0) AS pull_request_count")
|
24
|
-
.joins("LEFT JOIN hubstats_pull_requests ON hubstats_pull_requests.user_id = hubstats_users.id AND hubstats_pull_requests.merged_at
|
23
|
+
.joins(sanitize_sql_array(["LEFT JOIN hubstats_pull_requests ON hubstats_pull_requests.user_id = hubstats_users.id AND (hubstats_pull_requests.merged_at BETWEEN ? AND ?)", start_date, end_date]))
|
24
|
+
.where("hubstats_pull_requests.merged = '1'")
|
25
25
|
.group("hubstats_users.id")
|
26
26
|
}
|
27
27
|
|
28
|
-
scope :pull_requests_count_by_repo, lambda {|
|
28
|
+
scope :pull_requests_count_by_repo, lambda {|start_date, end_date, repo_id|
|
29
29
|
select("hubstats_users.id as user_id")
|
30
30
|
.select("IFNULL(COUNT(DISTINCT hubstats_pull_requests.id),0) AS pull_request_count")
|
31
|
-
.joins("LEFT JOIN hubstats_pull_requests ON hubstats_pull_requests.user_id = hubstats_users.id AND hubstats_pull_requests.created_at
|
31
|
+
.joins(sanitize_sql_array(["LEFT JOIN hubstats_pull_requests ON hubstats_pull_requests.user_id = hubstats_users.id AND (hubstats_pull_requests.created_at BETWEEN ? AND ?)", start_date, end_date]))
|
32
|
+
.where("hubstats_pull_requests.repo_id = ? AND hubstats_pull_requests.merged = '1'", repo_id)
|
32
33
|
.group("hubstats_users.id")
|
33
34
|
}
|
34
35
|
|
35
|
-
scope :comments_count_by_repo, lambda {|
|
36
|
+
scope :comments_count_by_repo, lambda {|start_date, end_date, repo_id|
|
36
37
|
select("hubstats_users.id as user_id")
|
37
38
|
.select("COUNT(DISTINCT hubstats_comments.id) AS comment_count")
|
38
|
-
.joins("LEFT JOIN hubstats_comments ON hubstats_comments.user_id = hubstats_users.id AND hubstats_comments.created_at
|
39
|
+
.joins(sanitize_sql_array(["LEFT JOIN hubstats_comments ON hubstats_comments.user_id = hubstats_users.id AND (hubstats_comments.created_at BETWEEN ? AND ?)", start_date, end_date]))
|
40
|
+
.where("hubstats_comments.repo_id = ?", repo_id)
|
39
41
|
.group("hubstats_users.id")
|
40
42
|
}
|
41
43
|
|
42
|
-
scope :pulls_reviewed_count, lambda { |
|
44
|
+
scope :pulls_reviewed_count, lambda {|start_date, end_date|
|
43
45
|
select("hubstats_users.id as user_id")
|
44
46
|
.select("COUNT(DISTINCT hubstats_pull_requests.id) as reviews_count")
|
45
|
-
.joins("LEFT JOIN hubstats_comments ON hubstats_comments.user_id = hubstats_users.id AND hubstats_comments.created_at
|
46
|
-
.joins("LEFT JOIN hubstats_pull_requests ON hubstats_pull_requests.id = hubstats_comments.pull_request_id AND hubstats_pull_requests.closed_at
|
47
|
+
.joins(sanitize_sql_array(["LEFT JOIN hubstats_comments ON hubstats_comments.user_id = hubstats_users.id AND (hubstats_comments.created_at BETWEEN ? AND ?)", start_date, end_date]))
|
48
|
+
.joins(sanitize_sql_array(["LEFT JOIN hubstats_pull_requests ON hubstats_pull_requests.id = hubstats_comments.pull_request_id AND (hubstats_pull_requests.closed_at BETWEEN ? AND ?)", start_date, end_date]))
|
47
49
|
.where("hubstats_pull_requests.user_id != hubstats_users.id")
|
48
50
|
.group("hubstats_users.id")
|
49
51
|
}
|
50
52
|
|
51
|
-
scope :net_additions_count, lambda { |
|
53
|
+
scope :net_additions_count, lambda {|start_date, end_date|
|
52
54
|
select("hubstats_users.id as user_id")
|
53
55
|
.select("SUM(IFNULL(hubstats_pull_requests.additions, 0)) AS additions")
|
54
56
|
.select("SUM(IFNULL(hubstats_pull_requests.deletions, 0)) AS deletions")
|
55
|
-
.joins("LEFT JOIN hubstats_pull_requests ON hubstats_pull_requests.user_id = hubstats_users.id AND hubstats_pull_requests.created_at
|
57
|
+
.joins(sanitize_sql_array(["LEFT JOIN hubstats_pull_requests ON hubstats_pull_requests.user_id = hubstats_users.id AND (hubstats_pull_requests.created_at BETWEEN ? AND ?) AND hubstats_pull_requests.merged = '1'", start_date, end_date]))
|
56
58
|
.group("hubstats_users.id")
|
57
59
|
}
|
58
60
|
|
59
|
-
scope :pull_and_comment_count, lambda { |
|
61
|
+
scope :pull_and_comment_count, lambda {|start_date, end_date|
|
60
62
|
select("hubstats_users.*, pull_request_count, comment_count")
|
61
|
-
.joins("LEFT JOIN (#{pull_requests_count(
|
62
|
-
.joins("LEFT JOIN (#{comments_count(
|
63
|
+
.joins("LEFT JOIN (#{pull_requests_count(start_date, end_date).to_sql}) AS pull_requests ON pull_requests.user_id = hubstats_users.id")
|
64
|
+
.joins("LEFT JOIN (#{comments_count(start_date, end_date).to_sql}) AS comments ON comments.user_id = hubstats_users.id")
|
63
65
|
.group("hubstats_users.id")
|
64
66
|
}
|
65
67
|
|
66
|
-
scope :pull_and_comment_count_by_repo, lambda {
|
68
|
+
scope :pull_and_comment_count_by_repo, lambda {|start_date, end_date, repo_id|
|
67
69
|
select("hubstats_users.*, pull_request_count, comment_count")
|
68
|
-
.joins("LEFT JOIN (#{pull_requests_count_by_repo(
|
69
|
-
.joins("LEFT JOIN (#{comments_count_by_repo(
|
70
|
+
.joins("LEFT JOIN (#{pull_requests_count_by_repo(start_date, end_date, repo_id).to_sql}) AS pull_requests ON pull_requests.user_id = hubstats_users.id")
|
71
|
+
.joins("LEFT JOIN (#{comments_count_by_repo(start_date, end_date, repo_id).to_sql}) AS comments ON comments.user_id = hubstats_users.id")
|
70
72
|
.group("hubstats_users.id")
|
71
73
|
}
|
72
|
-
|
74
|
+
|
75
|
+
scope :with_all_metrics, lambda {|start_date, end_date|
|
73
76
|
select("hubstats_users.*, deploy_count, pull_request_count, comment_count, additions, deletions")
|
74
|
-
.joins("LEFT JOIN (#{net_additions_count(
|
75
|
-
.joins("LEFT JOIN (#{pull_requests_count(
|
76
|
-
.joins("LEFT JOIN (#{comments_count(
|
77
|
-
.joins("LEFT JOIN (#{deploys_count(
|
77
|
+
.joins("LEFT JOIN (#{net_additions_count(start_date, end_date).to_sql}) AS net_additions ON net_additions.user_id = hubstats_users.id")
|
78
|
+
.joins("LEFT JOIN (#{pull_requests_count(start_date, end_date).to_sql}) AS pull_requests ON pull_requests.user_id = hubstats_users.id")
|
79
|
+
.joins("LEFT JOIN (#{comments_count(start_date, end_date).to_sql}) AS comments ON comments.user_id = hubstats_users.id")
|
80
|
+
.joins("LEFT JOIN (#{deploys_count(start_date, end_date).to_sql}) AS deploys ON deploys.user_id = hubstats_users.id")
|
78
81
|
.group("hubstats_users.id")
|
79
82
|
}
|
80
83
|
|
@@ -103,11 +106,11 @@ module Hubstats
|
|
103
106
|
Rails.logger.warn user.errors.inspect
|
104
107
|
end
|
105
108
|
|
106
|
-
def self.with_pulls_or_comments(
|
109
|
+
def self.with_pulls_or_comments(start_date, end_date, repo_id = nil)
|
107
110
|
if repo_id
|
108
|
-
pull_and_comment_count_by_repo(
|
111
|
+
pull_and_comment_count_by_repo(start_date, end_date, repo_id).weighted_sort
|
109
112
|
else
|
110
|
-
pull_and_comment_count(
|
113
|
+
pull_and_comment_count(start_date, end_date).weighted_sort
|
111
114
|
end
|
112
115
|
end
|
113
116
|
|
@@ -24,12 +24,14 @@
|
|
24
24
|
<%= link_to "Users", users_path%></li>
|
25
25
|
<li>
|
26
26
|
<select class="form-control push-down" id="time-select">
|
27
|
-
<% Hubstats::
|
28
|
-
<option value=<%=
|
27
|
+
<% Hubstats::DATE_RANGE_ARRAY.each do |date| %>
|
28
|
+
<option value=<%= date[:date] %>><%=date[:display_value]%></option>
|
29
29
|
<% end %>
|
30
30
|
</select>
|
31
31
|
</li>
|
32
32
|
</ul>
|
33
|
+
<!-- Start time: <%=@start_date%>
|
34
|
+
End time: <%=@end_date%> -->
|
33
35
|
</div>
|
34
36
|
</div>
|
35
37
|
</nav>
|
data/date_range
ADDED
File without changes
|
data/hubstats.gemspec
CHANGED
@@ -19,6 +19,7 @@ Gem::Specification.new do |s|
|
|
19
19
|
s.add_dependency "rails", "~> 3.2.18"
|
20
20
|
s.add_dependency "octokit", "~> 3.2"
|
21
21
|
s.add_dependency "will_paginate-bootstrap"
|
22
|
+
s.add_dependency "bootstrap-datepicker"
|
22
23
|
s.add_dependency "select2-rails", "3.5.9"
|
23
24
|
|
24
25
|
s.add_development_dependency "rspec-rails",'~> 3.0.0.beta'
|
data/lib/hubstats.rb
CHANGED
data/lib/hubstats/version.rb
CHANGED
@@ -24,7 +24,7 @@ module Hubstats
|
|
24
24
|
:deployed_at => "2011-02-03 03:00:00 -0500",
|
25
25
|
:user_id => nil)
|
26
26
|
deploys_ordered = [deploy2, deploy3, deploy1]
|
27
|
-
expect(Hubstats::Deploy).to receive_message_chain("group_by.
|
27
|
+
expect(Hubstats::Deploy).to receive_message_chain("group_by.order_with_date_range.paginate").and_return(deploys_ordered)
|
28
28
|
get :index
|
29
29
|
expect(response).to have_http_status(200)
|
30
30
|
expect(response).to render_template(:index)
|
@@ -31,13 +31,14 @@ module Hubstats
|
|
31
31
|
pull = create(:pull_request, :user => user,
|
32
32
|
:repo => repo,
|
33
33
|
:deploy_id => 404040)
|
34
|
-
comment1 = create(:comment, :pull_request_id => pull.id)
|
35
|
-
comment2 = create(:comment, :pull_request_id => pull.id)
|
36
|
-
comment3 = create(:comment, :pull_request_id => pull.id)
|
34
|
+
comment1 = create(:comment, :pull_request_id => pull.id, :created_at => "2015-06-16")
|
35
|
+
comment2 = create(:comment, :pull_request_id => pull.id, :created_at => "2015-06-16")
|
36
|
+
comment3 = create(:comment, :pull_request_id => pull.id, :created_at => "2015-06-16")
|
37
37
|
get :show, repo: repo, id: pull.id
|
38
38
|
expect(assigns(:pull_request)).to eq(pull)
|
39
39
|
expect(assigns(:pull_request).repo_id).to eq(101010)
|
40
40
|
expect(assigns(:pull_request).deploy_id).to eq(404040)
|
41
|
+
# Below test could potentially fail if the date range changes
|
41
42
|
expect(assigns(:comments)).to contain_exactly(comment1, comment2, comment3)
|
42
43
|
expect(assigns(:pull_request).user_id).to eq(user.id)
|
43
44
|
end
|
@@ -8,17 +8,22 @@ module Hubstats
|
|
8
8
|
it "should list all of the repos" do
|
9
9
|
repo1 = create(:repo, :id => 101010,
|
10
10
|
:name => "silly",
|
11
|
-
:full_name => "sportngin/silly"
|
11
|
+
:full_name => "sportngin/silly",
|
12
|
+
:updated_at => "2015-06-16")
|
12
13
|
repo2 = create(:repo, :id => 202020,
|
13
14
|
:name => "funny",
|
14
|
-
:full_name => "sportngin/funny"
|
15
|
+
:full_name => "sportngin/funny",
|
16
|
+
:updated_at => "2015-06-16")
|
15
17
|
repo3 = create(:repo, :id => 303030,
|
16
18
|
:name => "loosey",
|
17
|
-
:full_name => "sportngin/loosey"
|
19
|
+
:full_name => "sportngin/loosey",
|
20
|
+
:updated_at => "2015-06-16")
|
18
21
|
repo4 = create(:repo, :id => 404040,
|
19
22
|
:name => "goosey",
|
20
|
-
:full_name => "sportngin/goosey"
|
23
|
+
:full_name => "sportngin/goosey",
|
24
|
+
:updated_at => "2015-06-16")
|
21
25
|
get :index
|
26
|
+
# Below test could potentially fail if the date range changes
|
22
27
|
expect(assigns(:repos)).to contain_exactly(repo2, repo1, repo3, repo4)
|
23
28
|
end
|
24
29
|
end
|
@@ -16,7 +16,7 @@ module Hubstats
|
|
16
16
|
expect(deploy.user_id).to eq(202020)
|
17
17
|
end
|
18
18
|
|
19
|
-
it 'should order deploys based on
|
19
|
+
it 'should order deploys based on date range ASC' do
|
20
20
|
repo = build(:repo)
|
21
21
|
deploy1 = Deploy.create(git_revision: "c1a2b37",
|
22
22
|
repo_id: repo.id,
|
@@ -28,19 +28,19 @@ module Hubstats
|
|
28
28
|
user_id: 202020)
|
29
29
|
deploy3 = Deploy.create(git_revision: "k10d8as",
|
30
30
|
repo_id: repo.id,
|
31
|
-
deployed_at: "2015-
|
31
|
+
deployed_at: "2015-03-21 12:00:00",
|
32
32
|
user_id: 202020)
|
33
33
|
deploy4 = Deploy.create(git_revision: "917d9ss",
|
34
34
|
repo_id: repo.id,
|
35
35
|
deployed_at: "2014-12-19 08:00:00",
|
36
36
|
user_id: 202020)
|
37
37
|
deploys_ordered = [deploy1, deploy2, deploy4, deploy3]
|
38
|
-
new_ordered_deploys = Deploy.
|
38
|
+
new_ordered_deploys = Deploy.order_with_date_range("2005-07-01", "2015-06-19", "ASC")
|
39
39
|
expect(Deploy.count).to eq(4)
|
40
40
|
expect(new_ordered_deploys).to eq(deploys_ordered)
|
41
41
|
end
|
42
42
|
|
43
|
-
it 'should order deploys based on
|
43
|
+
it 'should order deploys based on date range DESC' do
|
44
44
|
repo = build(:repo)
|
45
45
|
deploy1 = Deploy.create(git_revision: "c1a2b37",
|
46
46
|
repo_id: repo.id,
|
@@ -52,14 +52,14 @@ module Hubstats
|
|
52
52
|
user_id: 202020)
|
53
53
|
deploy3 = Deploy.create(git_revision: "k10d8as",
|
54
54
|
repo_id: repo.id,
|
55
|
-
deployed_at: "2015-
|
55
|
+
deployed_at: "2015-03-21 12:00:00",
|
56
56
|
user_id: 202020)
|
57
57
|
deploy4 = Deploy.create(git_revision: "917d9ss",
|
58
58
|
repo_id: repo.id,
|
59
59
|
deployed_at: "2014-12-19 08:00:00",
|
60
60
|
user_id: 202020)
|
61
61
|
deploys_ordered = [deploy3, deploy4, deploy2, deploy1]
|
62
|
-
new_ordered_deploys = Deploy.
|
62
|
+
new_ordered_deploys = Deploy.order_with_date_range("2005-07-01", "2015-06-19", "DESC")
|
63
63
|
expect(Deploy.count).to eq(4)
|
64
64
|
expect(new_ordered_deploys).to eq(deploys_ordered)
|
65
65
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -11,7 +11,7 @@ require 'faker'
|
|
11
11
|
# run twice. It is recommended that you do not name files matching this glob to
|
12
12
|
# end with _spec.rb. You can configure this pattern with with the --pattern
|
13
13
|
# option on the command line or in ~/.rspec, .rspec or `.rspec-local`.
|
14
|
-
Dir[Rails.root.join("spec/support/**/*.rb")].each {
|
14
|
+
Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f }
|
15
15
|
|
16
16
|
RSpec.configure do |config|
|
17
17
|
# ## Mock Framework
|
data/test/test_helper.rb
CHANGED
@@ -7,7 +7,7 @@ require "rails/test_help"
|
|
7
7
|
Rails.backtrace_cleaner.remove_silencers!
|
8
8
|
|
9
9
|
# Load support files
|
10
|
-
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {
|
10
|
+
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f }
|
11
11
|
|
12
12
|
# Load fixtures from the engine
|
13
13
|
if ActiveSupport::TestCase.method_defined?(:fixture_path=)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hubstats
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Elliot Hursh
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-06-
|
12
|
+
date: 2015-06-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -53,6 +53,20 @@ dependencies:
|
|
53
53
|
- - ! '>='
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: '0'
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: bootstrap-datepicker
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - ! '>='
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '0'
|
63
|
+
type: :runtime
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
56
70
|
- !ruby/object:Gem::Dependency
|
57
71
|
name: select2-rails
|
58
72
|
requirement: !ruby/object:Gem::Requirement
|
@@ -215,6 +229,7 @@ files:
|
|
215
229
|
- app/views/hubstats/users/show.html.erb
|
216
230
|
- app/views/layouts/hubstats/application.html.erb
|
217
231
|
- config/routes.rb
|
232
|
+
- date_range
|
218
233
|
- db/migrate/20140604130339_create_hubstats_pull_requests.rb
|
219
234
|
- db/migrate/20140604130457_create_hubstats_users.rb
|
220
235
|
- db/migrate/20140604130504_create_hubstats_comments.rb
|