houston-core 0.5.5 → 0.5.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +36 -36
- data/app/assets/stylesheets/application/test.scss +26 -0
- data/app/controllers/project_tests_controller.rb +30 -1
- data/app/models/code_climate/coverage_report.rb +7 -0
- data/app/models/run_tests_on_post_receive.rb +2 -0
- data/app/presenters/tasks_excel_presenter.rb +2 -2
- data/app/views/project_tests/index.html.erb +33 -32
- data/app/views/project_tests/show.html.erb +39 -0
- data/config/application.rb +1 -1
- data/config/routes.rb +3 -1
- data/houston.gemspec +2 -2
- data/lib/houston/version.rb +1 -1
- metadata +7 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3406892d3fcfe0ad9866e9dd8a498ddcd9f289d0
|
4
|
+
data.tar.gz: a211ccfa508c1ed3ce16de510e7f5339d8be2500
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 07845570a0d72d5477f0238c20b8d766b6543322ddcd504f94d066efa9b28751ea966943b80c0b461c4140a4e2a9ff079fced0bbf3374a80cad9bd86c4722390
|
7
|
+
data.tar.gz: ba178a7479bb6657c39fd1ecacbb447644929c95bdb35ff66a7ccbf6cb9b76cd8bd39077ac906def21e5bd2e65b5756038722b7ca33e0d97391d919c77841ecd
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
houston-core (0.5.
|
4
|
+
houston-core (0.5.6)
|
5
5
|
activerecord-import
|
6
6
|
activerecord-pluck_in_batches
|
7
7
|
addressable
|
@@ -9,7 +9,7 @@ PATH
|
|
9
9
|
browser
|
10
10
|
bundler
|
11
11
|
cancan (~> 1.6.10)
|
12
|
-
codeclimate-test-reporter (= 0.4.
|
12
|
+
codeclimate-test-reporter (= 0.4.8)
|
13
13
|
coffee-rails (~> 4.0.0)
|
14
14
|
default_value_for (= 3.0.0.1)
|
15
15
|
devise (~> 3.0.0)
|
@@ -30,7 +30,7 @@ PATH
|
|
30
30
|
nokogiri (~> 1.6.6.2)
|
31
31
|
octokit (~> 4.1.0)
|
32
32
|
oj (~> 2.13)
|
33
|
-
openxml-xlsx
|
33
|
+
openxml-xlsx (>= 0.2.0)
|
34
34
|
pg (~> 0.18.3)
|
35
35
|
pg_search (~> 1.0.5)
|
36
36
|
premailer (~> 1.8.6)
|
@@ -52,31 +52,31 @@ PATH
|
|
52
52
|
GEM
|
53
53
|
remote: https://rubygems.org/
|
54
54
|
specs:
|
55
|
-
actionmailer (4.1.
|
56
|
-
actionpack (= 4.1.
|
57
|
-
actionview (= 4.1.
|
55
|
+
actionmailer (4.1.14)
|
56
|
+
actionpack (= 4.1.14)
|
57
|
+
actionview (= 4.1.14)
|
58
58
|
mail (~> 2.5, >= 2.5.4)
|
59
|
-
actionpack (4.1.
|
60
|
-
actionview (= 4.1.
|
61
|
-
activesupport (= 4.1.
|
59
|
+
actionpack (4.1.14)
|
60
|
+
actionview (= 4.1.14)
|
61
|
+
activesupport (= 4.1.14)
|
62
62
|
rack (~> 1.5.2)
|
63
63
|
rack-test (~> 0.6.2)
|
64
|
-
actionview (4.1.
|
65
|
-
activesupport (= 4.1.
|
64
|
+
actionview (4.1.14)
|
65
|
+
activesupport (= 4.1.14)
|
66
66
|
builder (~> 3.1)
|
67
67
|
erubis (~> 2.7.0)
|
68
|
-
activemodel (4.1.
|
69
|
-
activesupport (= 4.1.
|
68
|
+
activemodel (4.1.14)
|
69
|
+
activesupport (= 4.1.14)
|
70
70
|
builder (~> 3.1)
|
71
|
-
activerecord (4.1.
|
72
|
-
activemodel (= 4.1.
|
73
|
-
activesupport (= 4.1.
|
71
|
+
activerecord (4.1.14)
|
72
|
+
activemodel (= 4.1.14)
|
73
|
+
activesupport (= 4.1.14)
|
74
74
|
arel (~> 5.0.0)
|
75
75
|
activerecord-import (0.10.0)
|
76
76
|
activerecord (>= 3.0)
|
77
77
|
activerecord-pluck_in_batches (0.1.0)
|
78
78
|
activerecord
|
79
|
-
activesupport (4.1.
|
79
|
+
activesupport (4.1.14)
|
80
80
|
i18n (~> 0.6, >= 0.6.9)
|
81
81
|
json (~> 1.7, >= 1.7.7)
|
82
82
|
minitest (~> 5.1)
|
@@ -102,7 +102,7 @@ GEM
|
|
102
102
|
rack-test (>= 0.5.4)
|
103
103
|
xpath (~> 2.0)
|
104
104
|
chronic (0.10.2)
|
105
|
-
codeclimate-test-reporter (0.4.
|
105
|
+
codeclimate-test-reporter (0.4.8)
|
106
106
|
simplecov (>= 0.7.1, < 1.0.0)
|
107
107
|
coderay (1.1.0)
|
108
108
|
coffee-rails (4.0.1)
|
@@ -208,7 +208,7 @@ GEM
|
|
208
208
|
net-ldap (0.12.0)
|
209
209
|
net-ssh (2.9.2)
|
210
210
|
netrc (0.11.0)
|
211
|
-
nokogiri (1.6.6.
|
211
|
+
nokogiri (1.6.6.4)
|
212
212
|
mini_portile (~> 0.6.0)
|
213
213
|
oauth (0.4.7)
|
214
214
|
oauth2 (1.0.0)
|
@@ -219,17 +219,17 @@ GEM
|
|
219
219
|
rack (~> 1.2)
|
220
220
|
octokit (4.1.1)
|
221
221
|
sawyer (~> 0.6.0, >= 0.5.3)
|
222
|
-
oj (2.13.
|
223
|
-
|
222
|
+
oj (2.13.1)
|
223
|
+
openxml-package (0.2.0)
|
224
224
|
nokogiri
|
225
225
|
ox
|
226
226
|
rubyzip (~> 1.1.0)
|
227
|
-
openxml-xlsx (0.
|
227
|
+
openxml-xlsx (0.2.0)
|
228
228
|
nokogiri
|
229
|
-
|
229
|
+
openxml-package (>= 0.2.0)
|
230
230
|
orm_adapter (0.5.0)
|
231
231
|
ox (2.2.2)
|
232
|
-
pg (0.18.
|
232
|
+
pg (0.18.4)
|
233
233
|
pg_search (1.0.5)
|
234
234
|
activerecord (>= 3.1)
|
235
235
|
activesupport (>= 3.1)
|
@@ -247,19 +247,19 @@ GEM
|
|
247
247
|
rack (>= 1.0)
|
248
248
|
rack-utf8_sanitizer (1.3.1)
|
249
249
|
rack (~> 1.0)
|
250
|
-
rails (4.1.
|
251
|
-
actionmailer (= 4.1.
|
252
|
-
actionpack (= 4.1.
|
253
|
-
actionview (= 4.1.
|
254
|
-
activemodel (= 4.1.
|
255
|
-
activerecord (= 4.1.
|
256
|
-
activesupport (= 4.1.
|
250
|
+
rails (4.1.14)
|
251
|
+
actionmailer (= 4.1.14)
|
252
|
+
actionpack (= 4.1.14)
|
253
|
+
actionview (= 4.1.14)
|
254
|
+
activemodel (= 4.1.14)
|
255
|
+
activerecord (= 4.1.14)
|
256
|
+
activesupport (= 4.1.14)
|
257
257
|
bundler (>= 1.3.0, < 2.0)
|
258
|
-
railties (= 4.1.
|
258
|
+
railties (= 4.1.14)
|
259
259
|
sprockets-rails (~> 2.0)
|
260
|
-
railties (4.1.
|
261
|
-
actionpack (= 4.1.
|
262
|
-
activesupport (= 4.1.
|
260
|
+
railties (4.1.14)
|
261
|
+
actionpack (= 4.1.14)
|
262
|
+
activesupport (= 4.1.14)
|
263
263
|
rake (>= 0.8.7)
|
264
264
|
thor (>= 0.18.1, < 2.0)
|
265
265
|
rake (10.4.2)
|
@@ -272,7 +272,7 @@ GEM
|
|
272
272
|
rr (1.1.2)
|
273
273
|
ruby-progressbar (1.7.5)
|
274
274
|
rubyzip (1.1.7)
|
275
|
-
rufus-scheduler (3.1.
|
275
|
+
rufus-scheduler (3.1.10)
|
276
276
|
rugged (0.23.3)
|
277
277
|
safe_yaml (1.0.4)
|
278
278
|
sass (3.2.19)
|
@@ -56,3 +56,29 @@
|
|
56
56
|
&.project-test-status-fail { color: #e24e32; }
|
57
57
|
}
|
58
58
|
}
|
59
|
+
|
60
|
+
.project-tests tbody {
|
61
|
+
.test-suite-name {
|
62
|
+
color: #777;
|
63
|
+
font-weight: 800;
|
64
|
+
}
|
65
|
+
|
66
|
+
.test-name {
|
67
|
+
color: #333;
|
68
|
+
font-weight: 200;
|
69
|
+
}
|
70
|
+
|
71
|
+
.test-passes {
|
72
|
+
font-weight: 600;
|
73
|
+
color: #5db64c;
|
74
|
+
|
75
|
+
&.zero { color: #ddd; }
|
76
|
+
}
|
77
|
+
|
78
|
+
.test-fails {
|
79
|
+
font-weight: 600;
|
80
|
+
color: #e24e32;
|
81
|
+
|
82
|
+
&.zero { color: #ddd; }
|
83
|
+
}
|
84
|
+
}
|
@@ -2,13 +2,42 @@ class ProjectTestsController < ApplicationController
|
|
2
2
|
|
3
3
|
def index
|
4
4
|
@project = Project.find_by_slug! params[:slug]
|
5
|
+
|
6
|
+
head = params.fetch :at, @project.repo.branch("master")
|
7
|
+
commits = params.fetch(:limit, 500).to_i
|
8
|
+
|
9
|
+
@commits = Houston.benchmark("[project_tests#index] fetch commits") {
|
10
|
+
@project.repo.ancestors(head, including_self: true, limit: commits) }
|
11
|
+
@runs = @project.test_runs.where(sha: @commits.map(&:sha))
|
12
|
+
|
13
|
+
@tests = @project.tests.order(:suite, :name)
|
14
|
+
.joins(<<-SQL)
|
15
|
+
LEFT JOIN LATERAL (
|
16
|
+
SELECT COUNT(*) FROM test_results
|
17
|
+
WHERE test_results.test_run_id IN (#{@runs.pluck(:id).join(",")})
|
18
|
+
AND test_results.status='pass'
|
19
|
+
AND test_results.test_id=tests.id
|
20
|
+
) "passes" ON TRUE
|
21
|
+
LEFT JOIN LATERAL (
|
22
|
+
SELECT COUNT(*) FROM test_results
|
23
|
+
WHERE test_results.test_run_id IN (#{@runs.pluck(:id).join(",")})
|
24
|
+
AND test_results.status='fail'
|
25
|
+
AND test_results.test_id=tests.id
|
26
|
+
) "fails" ON TRUE
|
27
|
+
SQL
|
28
|
+
.where("passes.count + fails.count > 0")
|
29
|
+
.pluck("tests.id", "tests.suite", "tests.name", "passes.count", "fails.count")
|
30
|
+
end
|
31
|
+
|
32
|
+
def show
|
33
|
+
@project = Project.find_by_slug! params[:slug]
|
5
34
|
@test = @project.tests.find params[:id]
|
6
35
|
@totals = Hash[@test.test_results.group(:status).pluck(:status, "COUNT(*)")]
|
7
36
|
|
8
37
|
begin
|
9
38
|
head = params.fetch :at, @project.repo.branch("master")
|
10
39
|
stop_shas = @test.introduced_in_shas
|
11
|
-
@commits = Houston.benchmark("[project_tests#
|
40
|
+
@commits = Houston.benchmark("[project_tests#show] fetch commits") {
|
12
41
|
@project.repo.ancestors(head, including_self: true, limit: 100, hide: stop_shas) }
|
13
42
|
|
14
43
|
if @commits.any?
|
@@ -20,6 +20,8 @@
|
|
20
20
|
# * environment/simplecov_root is absent
|
21
21
|
#
|
22
22
|
module CodeClimate
|
23
|
+
module ServerError; end
|
24
|
+
|
23
25
|
class CoverageReport
|
24
26
|
|
25
27
|
def self.publish!(test_run)
|
@@ -36,6 +38,10 @@ module CodeClimate
|
|
36
38
|
def publish!
|
37
39
|
code_climate = CodeClimate::TestReporter::Client.new
|
38
40
|
code_climate.post_results code_climate_payload
|
41
|
+
rescue RuntimeError
|
42
|
+
# https://github.com/codeclimate/ruby-test-reporter/blob/v0.4.8/lib/code_climate/test_reporter/client.rb#L72
|
43
|
+
$!.extend CodeClimate::ServerError if $!.message =~ /HTTP Error: 5\d\d/
|
44
|
+
raise
|
39
45
|
end
|
40
46
|
|
41
47
|
|
@@ -158,6 +164,7 @@ module CodeClimate
|
|
158
164
|
end
|
159
165
|
|
160
166
|
# https://github.com/codeclimate/ruby-test-reporter/blob/v0.2.0/lib/code_climate/test_reporter/formatter.rb#L78-L83
|
167
|
+
# Compare to https://github.com/codeclimate/ruby-test-reporter/blob/v0.4.8/lib/code_climate/test_reporter/calculate_blob.rb
|
161
168
|
def blob_id_of(filename)
|
162
169
|
blob = project.repo.find_file(filename, commit: test_run.sha)
|
163
170
|
blob && blob.oid
|
@@ -150,6 +150,8 @@ class RunTestsOnPostReceive
|
|
150
150
|
test_run.project.feature_working! :publish_coverage_to_code_climate
|
151
151
|
rescue Houston::Adapters::VersionControl::CommitNotFound
|
152
152
|
# Got a bad Test Run, nothing we can do about it.
|
153
|
+
rescue CodeClimate::ServerError
|
154
|
+
# Error on Code Climate's end
|
153
155
|
rescue Net::OpenTimeout, Net::ReadTimeout
|
154
156
|
test_run.project.feature_broken! :publish_coverage_to_code_climate
|
155
157
|
Rails.logger.warn "\e[31m[push:publish:codeclimate] #{$!.class}: #{$!.message}\e[0m"
|
@@ -1,5 +1,5 @@
|
|
1
1
|
class TasksExcelPresenter
|
2
|
-
include Xlsx::Elements
|
2
|
+
include OpenXml::Xlsx::Elements
|
3
3
|
|
4
4
|
attr_reader :tasks
|
5
5
|
|
@@ -8,7 +8,7 @@ class TasksExcelPresenter
|
|
8
8
|
end
|
9
9
|
|
10
10
|
def to_s
|
11
|
-
package = Xlsx::Package.new
|
11
|
+
package = OpenXml::Xlsx::Package.new
|
12
12
|
worksheet = package.workbook.worksheets[0]
|
13
13
|
|
14
14
|
tasks = Houston.benchmark "[#{self.class.name.underscore}] Load objects" do
|
@@ -1,39 +1,40 @@
|
|
1
1
|
<h1 class="project-banner <%= @project.color %>" style="margin-bottom: 12px;">
|
2
|
-
<small>
|
2
|
+
<small>Tests for</small> <%= @project.name %>
|
3
3
|
</h1>
|
4
4
|
|
5
|
-
<div class="
|
6
|
-
<
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
<
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
5
|
+
<div class="nomargin">
|
6
|
+
<table id="project_tests" class="table table-sortable table-striped project-tests">
|
7
|
+
<thead>
|
8
|
+
<tr>
|
9
|
+
<td class="table-margin"></td>
|
10
|
+
<th class="test-name sort-asc">Name</th>
|
11
|
+
<th class="test-passes">Passes</th>
|
12
|
+
<th class="test-fails">Fails</th>
|
13
|
+
<td class="table-margin"></td>
|
14
|
+
</tr>
|
15
|
+
</thead>
|
16
|
+
<tbody>
|
17
|
+
<% @tests.each do |(id, suite, name, passes, fails)| %>
|
18
|
+
<tr class="test">
|
19
|
+
<td class="table-margin"></td>
|
20
|
+
<td class="test-name">
|
21
|
+
<%= link_to project_test_url(slug: @project.slug, id: id) do %>
|
22
|
+
<span class="test-suite-name"><%= suite.gsub("__", "::") %></span>
|
23
|
+
<span class="test-name"><%= name.to_s.gsub(/^(test :|: )/, "") %></span>
|
24
|
+
<% end %>
|
25
|
+
</td>
|
26
|
+
<td class="test-passes <%= "zero" if passes.zero? %>"><%= passes %></td>
|
27
|
+
<td class="test-fails <%= "zero" if fails.zero? %>"><%= fails %></td>
|
28
|
+
</tr>
|
29
|
+
<% end %>
|
30
|
+
</tbody>
|
31
|
+
</table>
|
26
32
|
</div>
|
27
33
|
|
28
34
|
<% content_for :javascripts do %>
|
29
|
-
<script type="text/javascript">
|
30
|
-
$(function() {
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
return $.get(window.location.pathname, {at: sha});
|
35
|
-
}
|
36
|
-
});
|
37
|
-
});
|
38
|
-
</script>
|
35
|
+
<script type="text/javascript">
|
36
|
+
$(function() {
|
37
|
+
$('#project_tests').tablesorter();
|
38
|
+
});
|
39
|
+
</script>
|
39
40
|
<% end %>
|
@@ -0,0 +1,39 @@
|
|
1
|
+
<h1 class="project-banner <%= @project.color %>" style="margin-bottom: 12px;">
|
2
|
+
<small>Test for</small> <%= @project.name %>
|
3
|
+
</h1>
|
4
|
+
|
5
|
+
<div class="project-test-history">
|
6
|
+
<h3><b><%= @test.suite %></b> <%= @test.name.to_s.gsub(/^(test :|: )/, "") %></h3>
|
7
|
+
|
8
|
+
<dl class="project-test-totals">
|
9
|
+
<dd><%= @totals.values.sum %></dd><dt>test runs</dt>
|
10
|
+
<% @totals.each do |key, count| %>
|
11
|
+
<dd><%= count %></dd><dt><%= key.pluralize %></dt>
|
12
|
+
<% end %>
|
13
|
+
</dl>
|
14
|
+
|
15
|
+
<% if @exception %>
|
16
|
+
<div class="alert alert-block alert-error">
|
17
|
+
<h4>Invalid Commit</h4>
|
18
|
+
<p><%= @exception.message %></p>
|
19
|
+
</div>
|
20
|
+
<% end %>
|
21
|
+
|
22
|
+
<div class="timeline infinite-scroll">
|
23
|
+
<p class="spinner"><i class="fa fa-spinner fa-spin fa-large"></i> Loading...</p>
|
24
|
+
<%= render "commits" %>
|
25
|
+
</div>
|
26
|
+
</div>
|
27
|
+
|
28
|
+
<% content_for :javascripts do %>
|
29
|
+
<script type="text/javascript">
|
30
|
+
$(function() {
|
31
|
+
new InfiniteScroll({
|
32
|
+
load: function($ol) {
|
33
|
+
var sha = $ol.find('.project-test-commit:last').attr('data-sha');
|
34
|
+
return $.get(window.location.pathname, {at: sha});
|
35
|
+
}
|
36
|
+
});
|
37
|
+
});
|
38
|
+
</script>
|
39
|
+
<% end %>
|
data/config/application.rb
CHANGED
@@ -30,6 +30,7 @@ require "nokogiri"
|
|
30
30
|
require "oauth-plugin"
|
31
31
|
require "octokit"
|
32
32
|
require "oj"
|
33
|
+
require "openxml/xlsx"
|
33
34
|
require "premailer"
|
34
35
|
require "progressbar"
|
35
36
|
require "rack/utf8_sanitizer"
|
@@ -40,7 +41,6 @@ require "strongbox"
|
|
40
41
|
require "thread_safe"
|
41
42
|
require "vestal_versions"
|
42
43
|
require "whenever"
|
43
|
-
require "xlsx"
|
44
44
|
|
45
45
|
# Require the gems listed in Gemfile, including any gems
|
46
46
|
# you've limited to :test, :development, or :production.
|
data/config/routes.rb
CHANGED
@@ -37,7 +37,9 @@ Rails.application.routes.draw do
|
|
37
37
|
get "projects/:slug/test_runs/:commit", to: "test_runs#show", :as => :test_run
|
38
38
|
get "projects/:slug/test_runs/:commit/retry", to: "test_runs#confirm_retry", :as => :retry_test_run
|
39
39
|
post "projects/:slug/test_runs/:commit/retry", to: "test_runs#retry"
|
40
|
-
|
40
|
+
|
41
|
+
get "projects/:slug/tests", to: "project_tests#index", as: :project_tests
|
42
|
+
get "projects/:slug/tests/:id", to: "project_tests#show", as: :project_test
|
41
43
|
|
42
44
|
|
43
45
|
|
data/houston.gemspec
CHANGED
@@ -43,7 +43,7 @@ Gem::Specification.new do |spec|
|
|
43
43
|
spec.add_dependency "nokogiri", "~> 1.6.6.2"
|
44
44
|
spec.add_dependency "houston-oauth-plugin"
|
45
45
|
spec.add_dependency "oj", "~> 2.13"
|
46
|
-
spec.add_dependency "openxml-xlsx"
|
46
|
+
spec.add_dependency "openxml-xlsx", ">= 0.2.0"
|
47
47
|
spec.add_dependency "pg_search", "~> 1.0.5"
|
48
48
|
spec.add_dependency "premailer", "~> 1.8.6"
|
49
49
|
spec.add_dependency "progressbar" # for long migrations
|
@@ -76,7 +76,7 @@ Gem::Specification.new do |spec|
|
|
76
76
|
# This is a runtime dependency because Houston uses it to publish
|
77
77
|
# code coverage to Code Climate. The version is locked because
|
78
78
|
# Houston implements its API.
|
79
|
-
spec.add_dependency "codeclimate-test-reporter", "0.4.
|
79
|
+
spec.add_dependency "codeclimate-test-reporter", "0.4.8"
|
80
80
|
|
81
81
|
# This is a runtime dependency because Houston uses it to parse
|
82
82
|
# code coverage data generated by simplecov
|
data/lib/houston/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: houston-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bob Lail
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-11-
|
11
|
+
date: 2015-11-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -324,14 +324,14 @@ dependencies:
|
|
324
324
|
requirements:
|
325
325
|
- - ">="
|
326
326
|
- !ruby/object:Gem::Version
|
327
|
-
version:
|
327
|
+
version: 0.2.0
|
328
328
|
type: :runtime
|
329
329
|
prerelease: false
|
330
330
|
version_requirements: !ruby/object:Gem::Requirement
|
331
331
|
requirements:
|
332
332
|
- - ">="
|
333
333
|
- !ruby/object:Gem::Version
|
334
|
-
version:
|
334
|
+
version: 0.2.0
|
335
335
|
- !ruby/object:Gem::Dependency
|
336
336
|
name: pg_search
|
337
337
|
requirement: !ruby/object:Gem::Requirement
|
@@ -576,14 +576,14 @@ dependencies:
|
|
576
576
|
requirements:
|
577
577
|
- - '='
|
578
578
|
- !ruby/object:Gem::Version
|
579
|
-
version: 0.4.
|
579
|
+
version: 0.4.8
|
580
580
|
type: :runtime
|
581
581
|
prerelease: false
|
582
582
|
version_requirements: !ruby/object:Gem::Requirement
|
583
583
|
requirements:
|
584
584
|
- - '='
|
585
585
|
- !ruby/object:Gem::Version
|
586
|
-
version: 0.4.
|
586
|
+
version: 0.4.8
|
587
587
|
- !ruby/object:Gem::Dependency
|
588
588
|
name: simplecov
|
589
589
|
requirement: !ruby/object:Gem::Requirement
|
@@ -1101,6 +1101,7 @@ files:
|
|
1101
1101
|
- app/views/project_pretickets/show.html.erb
|
1102
1102
|
- app/views/project_tests/_commits.html.erb
|
1103
1103
|
- app/views/project_tests/index.html.erb
|
1104
|
+
- app/views/project_tests/show.html.erb
|
1104
1105
|
- app/views/project_tickets/_tickets.html.erb
|
1105
1106
|
- app/views/project_tickets/bugs.html.erb
|
1106
1107
|
- app/views/project_tickets/ideas.html.erb
|