continuous4r 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +4 -0
- data/License.txt +20 -0
- data/Manifest.txt +83 -0
- data/README.txt +1 -0
- data/Rakefile +4 -0
- data/config/hoe.rb +71 -0
- data/config/requirements.rb +17 -0
- data/lib/capistrano_formatter.rb +19 -0
- data/lib/continuous4r/version.rb +9 -0
- data/lib/continuous4r.rb +490 -0
- data/lib/flog_formatter.rb +48 -0
- data/lib/heckle_formatter.rb +27 -0
- data/lib/httperf_formatter.rb +160 -0
- data/lib/site/body-capistrano.rhtml +8 -0
- data/lib/site/body-changelog.rhtml +8 -0
- data/lib/site/body-continuous4r-reports.rhtml +83 -0
- data/lib/site/body-dcov.rhtml +27 -0
- data/lib/site/body-dependencies.rhtml +52 -0
- data/lib/site/body-flog.rhtml +15 -0
- data/lib/site/body-heckle.rhtml +16 -0
- data/lib/site/body-httperf.rhtml +8 -0
- data/lib/site/body-index.rhtml +71 -0
- data/lib/site/body-issue-tracking.rhtml +38 -0
- data/lib/site/body-kwala.rhtml +35 -0
- data/lib/site/body-railroad.rhtml +29 -0
- data/lib/site/body-rcov.rhtml +23 -0
- data/lib/site/body-rdoc.rhtml +12 -0
- data/lib/site/body-scm-usage.rhtml +37 -0
- data/lib/site/body-stats.rhtml +8 -0
- data/lib/site/body-team-list.rhtml +73 -0
- data/lib/site/body-tests.rhtml +8 -0
- data/lib/site/body-zentest.rhtml +8 -0
- data/lib/site/header.rhtml +41 -0
- data/lib/site/images/continuous4r-logo.png +0 -0
- data/lib/site/images/external.png +0 -0
- data/lib/site/images/icon_error_sml.gif +0 -0
- data/lib/site/images/icon_success_sml.gif +0 -0
- data/lib/site/images/newwindow.png +0 -0
- data/lib/site/menu-capistrano.rhtml +23 -0
- data/lib/site/menu-changelog.rhtml +23 -0
- data/lib/site/menu-continuous4r-reports.rhtml +31 -0
- data/lib/site/menu-dcov.rhtml +23 -0
- data/lib/site/menu-dependencies.rhtml +19 -0
- data/lib/site/menu-flog.rhtml +23 -0
- data/lib/site/menu-heckle.rhtml +23 -0
- data/lib/site/menu-httperf.rhtml +23 -0
- data/lib/site/menu-index.rhtml +19 -0
- data/lib/site/menu-issue-tracking.rhtml +19 -0
- data/lib/site/menu-kwala.rhtml +23 -0
- data/lib/site/menu-railroad.rhtml +23 -0
- data/lib/site/menu-rcov.rhtml +23 -0
- data/lib/site/menu-rdoc.rhtml +23 -0
- data/lib/site/menu-scm-usage.rhtml +19 -0
- data/lib/site/menu-stats.rhtml +23 -0
- data/lib/site/menu-team-list.rhtml +19 -0
- data/lib/site/menu-tests.rhtml +23 -0
- data/lib/site/menu-zentest.rhtml +23 -0
- data/lib/site/style/commons-maven.css +113 -0
- data/lib/site/style/maven-base.css +151 -0
- data/lib/site/style/maven-theme.css +100 -0
- data/lib/site/style/project.css +1 -0
- data/lib/stats_formatter.rb +51 -0
- data/lib/subversion_extractor.rb +64 -0
- data/lib/tests_formatter.rb +65 -0
- data/lib/zen_test_formatter.rb +48 -0
- data/log/debug.log +0 -0
- data/script/destroy +14 -0
- data/script/destroy.cmd +1 -0
- data/script/generate +14 -0
- data/script/generate.cmd +1 -0
- data/script/txt2html +74 -0
- data/script/txt2html.cmd +1 -0
- data/setup.rb +1585 -0
- data/tasks/deployment.rake +34 -0
- data/tasks/environment.rake +7 -0
- data/tasks/website.rake +17 -0
- data/test/test_continuous4r.rb +11 -0
- data/test/test_helper.rb +2 -0
- data/website/index.html +411 -0
- data/website/index.txt +298 -0
- data/website/javascripts/rounded_corners_lite.inc.js +285 -0
- data/website/stylesheets/screen.css +138 -0
- data/website/template.rhtml +48 -0
- metadata +141 -0
@@ -0,0 +1,160 @@
|
|
1
|
+
# ===================================================
|
2
|
+
# Classe de formatage de resultat renvoye par httperf
|
3
|
+
# Author: Vincent Dubois
|
4
|
+
# ===================================================
|
5
|
+
class HttperfFormatter
|
6
|
+
attr_accessor :results, :description
|
7
|
+
|
8
|
+
# Constructeur
|
9
|
+
def initialize results, description
|
10
|
+
self.results = results
|
11
|
+
self.description = description
|
12
|
+
end
|
13
|
+
|
14
|
+
# Methode qui permet de fabriquer le flux HTML a partir du flux console httperf
|
15
|
+
def to_html
|
16
|
+
html = "<h3>Statistics for task '#{self.description}' :</h3><table class='bodyTable'><tbody>"
|
17
|
+
begin
|
18
|
+
results_lines = self.results.split(/$/)
|
19
|
+
# On enleve la premiere ligne d'espace, sinon elle apparait en premier
|
20
|
+
if results_lines.length > 2 #and results_lines[2] == ""
|
21
|
+
results_lines.delete_at(2)
|
22
|
+
results_lines.delete_at(results_lines.length-1)
|
23
|
+
end
|
24
|
+
i = 0
|
25
|
+
results_lines.each do |line|
|
26
|
+
if line[0..0].to_i == 0
|
27
|
+
elements = line[1..line.length].split(/$|\:/)
|
28
|
+
else
|
29
|
+
elements = line.split(/$|\:/)
|
30
|
+
end
|
31
|
+
html = html + "<tr class='" + (i % 2 == 0 ? "a" : "b" ) + "'>" + format_line(elements) + "</tr>"
|
32
|
+
i = i + 1
|
33
|
+
end
|
34
|
+
rescue Exception => e
|
35
|
+
raise " Unable to format httperf results. Exception is : #{e.to_s}"
|
36
|
+
end
|
37
|
+
html = html + "</tbody></table>"
|
38
|
+
end
|
39
|
+
|
40
|
+
# Methode qui permet de formater une ligne de presentation des resultats
|
41
|
+
def format_line elements
|
42
|
+
line = ""
|
43
|
+
if elements.length == 0
|
44
|
+
line = line + "<td colspan='11'> </td>"
|
45
|
+
else
|
46
|
+
details = elements[1].split(' ') if elements.length > 1
|
47
|
+
if elements[0] != "Maximum connect burst length" and elements[0][0..6] != "ttperf "
|
48
|
+
line = line + "<td><b>#{elements[0]}</b></td>"
|
49
|
+
end
|
50
|
+
case elements[0]
|
51
|
+
when "Total"
|
52
|
+
line = line + "<td><b>#{details[0]}</b></td>"
|
53
|
+
line = line + "<td>#{details[1]}</td>"
|
54
|
+
line = line + "<td><b>#{details[2]}</b></td>"
|
55
|
+
line = line + "<td>#{details[3]}</td>"
|
56
|
+
line = line + "<td><b>#{details[4]}</b></td>"
|
57
|
+
line = line + "<td>#{details[5]}</td>"
|
58
|
+
line = line + "<td><b>#{details[6]}</b></td>"
|
59
|
+
line = line + "<td colspan='3'>#{details[7]} #{details[8]}</td>"
|
60
|
+
when "Connection rate"
|
61
|
+
line = line + "<td colspan='10'>#{elements[1]}</td>"
|
62
|
+
when "Connection time [ms]"
|
63
|
+
line = line + "<td><b>#{details[0]}</b></td>"
|
64
|
+
if details[0] == "min"
|
65
|
+
line = line + "<td>#{details[1]}</td>"
|
66
|
+
line = line + "<td><b>#{details[2]}</b></td>"
|
67
|
+
line = line + "<td>#{details[3]}</td>"
|
68
|
+
line = line + "<td><b>#{details[4]}</b></td>"
|
69
|
+
line = line + "<td>#{details[5]}</td>"
|
70
|
+
line = line + "<td><b>#{details[6]}</b></td>"
|
71
|
+
line = line + "<td>#{details[7]}</td>"
|
72
|
+
line = line + "<td><b>#{details[8]}</b></td>"
|
73
|
+
line = line + "<td>#{details[9]}</td>"
|
74
|
+
else
|
75
|
+
line = line + "<td colspan='9'>#{details[1]}</td>"
|
76
|
+
end
|
77
|
+
when "Connection length [replies/conn]"
|
78
|
+
line = line + "<td colspan='10'>#{elements[1]}</td>"
|
79
|
+
when "Request rate"
|
80
|
+
line = line + "<td colspan='10'>#{elements[1]}</td>"
|
81
|
+
when "Request size [B]"
|
82
|
+
line = line + "<td colspan='10'>#{elements[1]}</td>"
|
83
|
+
when "Reply rate [replies/s]"
|
84
|
+
line = line + "<td><b>#{details[0]}</b></td>"
|
85
|
+
line = line + "<td>#{details[1]}</td>"
|
86
|
+
line = line + "<td><b>#{details[2]}</b></td>"
|
87
|
+
line = line + "<td>#{details[3]}</td>"
|
88
|
+
line = line + "<td><b>#{details[4]}</b></td>"
|
89
|
+
line = line + "<td>#{details[5]}</td>"
|
90
|
+
line = line + "<td><b>#{details[6]}</b></td>"
|
91
|
+
line = line + "<td>#{details[7]}</td>"
|
92
|
+
line = line + "<td colspan='3'><i>#{details[8]} #{details[9]}</i></td>"
|
93
|
+
when "Reply time [ms]"
|
94
|
+
line = line + "<td><b>#{details[0]}</b></td>"
|
95
|
+
line = line + "<td>#{details[1]}</td>"
|
96
|
+
line = line + "<td><b>#{details[2]}</b></td>"
|
97
|
+
line = line + "<td colspan='8'>#{details[3]}</td>"
|
98
|
+
when "Reply size [B]"
|
99
|
+
line = line + "<td><b>#{details[0]}</b></td>"
|
100
|
+
line = line + "<td>#{details[1]}</td>"
|
101
|
+
line = line + "<td><b>#{details[2]}</b></td>"
|
102
|
+
line = line + "<td>#{details[3]}</td>"
|
103
|
+
line = line + "<td><b>#{details[4]}</b></td>"
|
104
|
+
line = line + "<td>#{details[5]}</td>"
|
105
|
+
line = line + "<td colspan='5'><i>#{details[6]} #{details[7]}</i></td>"
|
106
|
+
when "Reply status"
|
107
|
+
line = line + "<td>#{details[0]}</td>"
|
108
|
+
line = line + "<td>#{details[1]}</td>"
|
109
|
+
line = line + "<td>#{details[2]}</td>"
|
110
|
+
line = line + "<td>#{details[3]}</td>"
|
111
|
+
line = line + "<td colspan='7'>#{details[4]}</td>"
|
112
|
+
when "CPU time [s]"
|
113
|
+
line = line + "<td><b>#{details[0]}</b></td>"
|
114
|
+
line = line + "<td>#{details[1]}</td>"
|
115
|
+
line = line + "<td><b>#{details[2]}</b></td>"
|
116
|
+
line = line + "<td>#{details[3]}</td>"
|
117
|
+
line = line + "<td colspan='7'><i>#{details[4]} #{details[5]} #{details[6]} #{details[7]} #{details[8]} #{details[9]}</i></td>"
|
118
|
+
when "Net I/O"
|
119
|
+
line = line + "<td colspan='10'>#{elements[1]}</td>"
|
120
|
+
when "Errors"
|
121
|
+
line = line + "<td><b>#{details[0]}</b></td>"
|
122
|
+
line = line + "<td>#{details[1]}</td>"
|
123
|
+
line = line + "<td><b>#{details[2]}</b></td>"
|
124
|
+
line = line + "<td>#{details[3]}</td>"
|
125
|
+
line = line + "<td><b>#{details[4]}</b></td>"
|
126
|
+
line = line + "<td>#{details[5]}</td>"
|
127
|
+
line = line + "<td><b>#{details[6]}</b></td>"
|
128
|
+
if details[0] == "total"
|
129
|
+
line = line + "<td>#{details[7]}</td>"
|
130
|
+
line = line + "<td><b>#{details[8]}</b></td>"
|
131
|
+
line = line + "<td>#{details[9]}</td>"
|
132
|
+
else
|
133
|
+
line = line + "<td colspan='4'>#{details[7]}</td>"
|
134
|
+
end
|
135
|
+
when "Session rate [sess/s]"
|
136
|
+
line = line + "<td><b>#{details[0]}</b></td>"
|
137
|
+
line = line + "<td>#{details[1]}</td>"
|
138
|
+
line = line + "<td><b>#{details[2]}</b></td>"
|
139
|
+
line = line + "<td>#{details[3]}</td>"
|
140
|
+
line = line + "<td><b>#{details[4]}</b></td>"
|
141
|
+
line = line + "<td>#{details[5]}</td>"
|
142
|
+
line = line + "<td><b>#{details[6]}</b></td>"
|
143
|
+
line = line + "<td>#{details[7]}</td>"
|
144
|
+
line = line + "<td colspan='3'><i>#{details[8]}</i></td>"
|
145
|
+
when "Session"
|
146
|
+
line = line + "<td><b>#{details[0]}</b></td>"
|
147
|
+
line = line + "<td colspan='9'>#{details[1]} #{details[2]}</td>"
|
148
|
+
when "Session lifetime [s]"
|
149
|
+
line = line + "<td colspan='10'>#{elements[1]}</td>"
|
150
|
+
when "Session failtime [s]"
|
151
|
+
line = line + "<td colspan='10'>#{elements[1]}</td>"
|
152
|
+
when "Session length histogram"
|
153
|
+
line = line + "<td colspan='10'>#{elements[1]}</td>"
|
154
|
+
end
|
155
|
+
return line
|
156
|
+
end
|
157
|
+
end
|
158
|
+
|
159
|
+
private :format_line
|
160
|
+
end
|
@@ -0,0 +1,83 @@
|
|
1
|
+
<%
|
2
|
+
require 'rubygems'
|
3
|
+
require 'XmlElements'
|
4
|
+
project = XmlElements.fromString(File.read("continuous4r-project.xml"))
|
5
|
+
%>
|
6
|
+
<div id="bodyColumn">
|
7
|
+
<div class="contentBox">
|
8
|
+
<div class="section">
|
9
|
+
<a name="Continous4R_Generated_Reports"></a><h2>Continuous4r Generated Reports</h2>
|
10
|
+
<p>
|
11
|
+
This document provides an overview of the various reports that are automatically generated by
|
12
|
+
<a target="_blank" href="http://continuous4r.rubyforge.org/" class="externalLink" title="External Link">continuous4r</a>
|
13
|
+
. Each report is briefly described below.
|
14
|
+
</p>
|
15
|
+
|
16
|
+
<div class="subsection"><a name="Overview"></a><h3>Overview</h3>
|
17
|
+
<table class="bodyTable">
|
18
|
+
<tr class="b">
|
19
|
+
<th>
|
20
|
+
Document
|
21
|
+
</th>
|
22
|
+
<th>
|
23
|
+
Description
|
24
|
+
</th>
|
25
|
+
</tr>
|
26
|
+
<%
|
27
|
+
i = 0
|
28
|
+
begin
|
29
|
+
project.tasks.each('task') do |task|
|
30
|
+
%>
|
31
|
+
<tr class="<% if i % 2 == 0 %>a<% else %>b<% end %>">
|
32
|
+
<td>
|
33
|
+
<a href="<%= task['name'] %>.html">
|
34
|
+
<%= task['name'] %>
|
35
|
+
</a>
|
36
|
+
</td>
|
37
|
+
<td><%
|
38
|
+
begin
|
39
|
+
puts task.description.text
|
40
|
+
rescue
|
41
|
+
case task['name']
|
42
|
+
when "changelog"
|
43
|
+
puts "Displays changes in the SCM repository."
|
44
|
+
when "stats"
|
45
|
+
puts "Provides statistics for your Rails code."
|
46
|
+
when "dcov"
|
47
|
+
puts "Provides statistics on the coverage of your documentation (rdoc)."
|
48
|
+
when "rcov"
|
49
|
+
puts "Provides general and detailed statistics on the coverage of your unit tests."
|
50
|
+
when "rdoc"
|
51
|
+
puts "Report for the generation of the apidoc for #{project['name']}"
|
52
|
+
when "heckle"
|
53
|
+
puts "Provides results for the attempts of breaking your tests with heckle."
|
54
|
+
when "flog"
|
55
|
+
puts "Provides statistics on the complexity of your class methods with flog."
|
56
|
+
when "zentest"
|
57
|
+
puts "Provides generated code for units tests which are missing in your project."
|
58
|
+
when "capistrano"
|
59
|
+
puts "Report for deployments of your application with Capistrano."
|
60
|
+
when "httperf"
|
61
|
+
puts "Provides data on the stressing of your application with httperf."
|
62
|
+
when "kwala"
|
63
|
+
puts "Provides various reports on quality and metrics for your Ruby code."
|
64
|
+
when "railroad"
|
65
|
+
puts "Provides graphs for you controllers and/or models."
|
66
|
+
when "tests"
|
67
|
+
puts "Report on the execution of you unit tests."
|
68
|
+
end
|
69
|
+
end %></td>
|
70
|
+
</tr>
|
71
|
+
<% i = i + 1
|
72
|
+
end
|
73
|
+
rescue Exception => e
|
74
|
+
unless e.to_s == "no childs named 'task' found!"
|
75
|
+
raise e
|
76
|
+
end
|
77
|
+
puts "<tr class='a'><td colspan='2'>No reports</td></tr>"
|
78
|
+
end %>
|
79
|
+
</table>
|
80
|
+
</div>
|
81
|
+
</div>
|
82
|
+
</div>
|
83
|
+
</div>
|
@@ -0,0 +1,27 @@
|
|
1
|
+
<%
|
2
|
+
require 'rubygems'
|
3
|
+
require 'hpricot'
|
4
|
+
require 'XmlElements'
|
5
|
+
project = XmlElements.fromString(File.read("continuous4r-project.xml"))
|
6
|
+
%>
|
7
|
+
<div id="bodyColumn">
|
8
|
+
<div class="contentBox">
|
9
|
+
<div class="section"><a name="dcov"></a>
|
10
|
+
<%
|
11
|
+
# chargement/modification du rapport dcov
|
12
|
+
path = ""
|
13
|
+
project.tasks.each('task') do |task|
|
14
|
+
if task['name'] == "dcov"
|
15
|
+
path = task.params.report['path']
|
16
|
+
end
|
17
|
+
end
|
18
|
+
doc = Hpricot(File.read(path))
|
19
|
+
doc.at("h1").swap("<h2>Dcov Results</h2>")
|
20
|
+
doc.search('//font') do |font|
|
21
|
+
font.swap("<span style='color: red;'>" + font.inner_html + "</span>")
|
22
|
+
end
|
23
|
+
%>
|
24
|
+
<%= (doc/"body").inner_html %>
|
25
|
+
</div>
|
26
|
+
</div>
|
27
|
+
</div>
|
@@ -0,0 +1,52 @@
|
|
1
|
+
<%
|
2
|
+
require 'rubygems'
|
3
|
+
require 'XmlElements'
|
4
|
+
require 'date'
|
5
|
+
project = XmlElements.fromString(File.read("continuous4r-project.xml"))
|
6
|
+
%>
|
7
|
+
<div id="bodyColumn">
|
8
|
+
<div class="contentBox">
|
9
|
+
<div class="section">
|
10
|
+
<a name="Dependencies"></a>
|
11
|
+
<h2>Dependencies</h2>
|
12
|
+
<p>
|
13
|
+
The following is a list of dependencies for this project. These dependencies are required to compile and run the application:
|
14
|
+
</p>
|
15
|
+
<table class="bodyTable">
|
16
|
+
<thead>
|
17
|
+
<tr class="b">
|
18
|
+
<th>
|
19
|
+
Artifact ID
|
20
|
+
</th>
|
21
|
+
<th>
|
22
|
+
Type
|
23
|
+
</th>
|
24
|
+
<th>
|
25
|
+
Version
|
26
|
+
</th>
|
27
|
+
<th>
|
28
|
+
Comment
|
29
|
+
</th>
|
30
|
+
</tr>
|
31
|
+
</thead>
|
32
|
+
<tbody>
|
33
|
+
<% i = 0
|
34
|
+
project.gems.each('gem') do |gem|
|
35
|
+
i = i + 1
|
36
|
+
gem_raw_details = `gem query -d|grep #{gem['name']}`
|
37
|
+
gem_details = gem_raw_details.split(/$/)
|
38
|
+
gem_comment = gem_details[1] if gem_details.length > 1
|
39
|
+
gem_comment ||= ''
|
40
|
+
%>
|
41
|
+
<tr class="<% if i % 2 == 0 %>a<% else %>b<% end %>">
|
42
|
+
<td><%= gem['name'] %></td>
|
43
|
+
<td>gem</td>
|
44
|
+
<td><%= gem['version'] %></td>
|
45
|
+
<td><%= gem_comment %></td>
|
46
|
+
</tr>
|
47
|
+
<% end %>
|
48
|
+
</tbody>
|
49
|
+
</table>
|
50
|
+
</div>
|
51
|
+
</div>
|
52
|
+
</div>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<%
|
2
|
+
require 'rubygems'
|
3
|
+
require 'XmlElements'
|
4
|
+
require "#{File.dirname(__FILE__)}/../flog_formatter.rb"
|
5
|
+
%>
|
6
|
+
<div id="bodyColumn">
|
7
|
+
<div class="contentBox">
|
8
|
+
<div class="section"><a name="rcov"></a>
|
9
|
+
<h2>Flog Results</h2>
|
10
|
+
<p>Flog shows you the most torturous code you wrote. The more painful the code, the higher the score.</p>
|
11
|
+
<p>Flog essentially scores an ABC metric: Assignments, Branches, Calls, with particular attention placed on calls.</p>
|
12
|
+
<%= FlogFormatter.new(File.read("flog.log")).to_html %>
|
13
|
+
</div>
|
14
|
+
</div>
|
15
|
+
</div>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<div id="bodyColumn">
|
2
|
+
<div class="contentBox">
|
3
|
+
<div class="section"><a name="heckle"></a>
|
4
|
+
<h2>Heckle Results</h2>
|
5
|
+
<p>Think you write good tests? Not bloody likely... Put it to the test with heckle. It'll put your code into submission in seconds.</p>
|
6
|
+
<p>The premise is really really simple to understand:
|
7
|
+
<ul>
|
8
|
+
<li>Your tests should pass.</li>
|
9
|
+
<li>Break your code.</li>
|
10
|
+
<li>Now they should fail.</li>
|
11
|
+
</ul>
|
12
|
+
For each failure heckle points out, you've got a test to write.</p><br/><br/>
|
13
|
+
<%= File.read("heckle.html") %>
|
14
|
+
</div>
|
15
|
+
</div>
|
16
|
+
</div>
|
@@ -0,0 +1,71 @@
|
|
1
|
+
<div id="bodyColumn">
|
2
|
+
<div class="contentBox">
|
3
|
+
<div class="section">
|
4
|
+
<a name="General_Project_Information"></a>
|
5
|
+
<h2>General Project Information</h2>
|
6
|
+
<p>
|
7
|
+
This document provides an overview of the various documents and links
|
8
|
+
that are part of this project's general information. All of this
|
9
|
+
content is automatically generated by <a target="_blank" href="http://continuous4r.rubyforge.org/" class="externalLink" title="External Link">continuous4r</a> on behalf of the project.
|
10
|
+
</p>
|
11
|
+
<div class="subsection"><a name="Overview"></a><h3>Overview</h3>
|
12
|
+
<table class="bodyTable">
|
13
|
+
<tbody>
|
14
|
+
<tr class="b">
|
15
|
+
<th>
|
16
|
+
Document
|
17
|
+
</th>
|
18
|
+
<th>
|
19
|
+
Description
|
20
|
+
</th>
|
21
|
+
</tr>
|
22
|
+
<tr class="b">
|
23
|
+
<td>
|
24
|
+
<a href="team-list.html">
|
25
|
+
Project Team
|
26
|
+
</a>
|
27
|
+
</td>
|
28
|
+
<td>
|
29
|
+
This document provides information on the members of this project.
|
30
|
+
These are the individuals who have contributed to the project in one
|
31
|
+
form or another.
|
32
|
+
</td>
|
33
|
+
</tr>
|
34
|
+
<tr class="a">
|
35
|
+
<td>
|
36
|
+
<a href="dependencies.html">
|
37
|
+
Dependencies
|
38
|
+
</a>
|
39
|
+
</td>
|
40
|
+
<td>
|
41
|
+
This document lists the projects dependencies and provides information on each dependency.
|
42
|
+
</td>
|
43
|
+
</tr>
|
44
|
+
<tr class="b">
|
45
|
+
<td>
|
46
|
+
<a href="scm-usage.html">
|
47
|
+
Source Repository
|
48
|
+
</a>
|
49
|
+
</td>
|
50
|
+
<td>
|
51
|
+
This is a link to the online source repository that can be viewed via a web browser.
|
52
|
+
</td>
|
53
|
+
</tr>
|
54
|
+
<tr class="a">
|
55
|
+
<td>
|
56
|
+
<a href="issue-tracking.html">
|
57
|
+
Issue Tracking
|
58
|
+
</a>
|
59
|
+
</td>
|
60
|
+
<td>
|
61
|
+
This is a link to the issue tracking system for this project. Issues
|
62
|
+
(bugs, features, change requests) can be created and queried using this
|
63
|
+
link.
|
64
|
+
</td>
|
65
|
+
</tr>
|
66
|
+
</tbody>
|
67
|
+
</table>
|
68
|
+
</div>
|
69
|
+
</div>
|
70
|
+
</div>
|
71
|
+
</div>
|
@@ -0,0 +1,38 @@
|
|
1
|
+
<%
|
2
|
+
require 'rubygems'
|
3
|
+
require 'XmlElements'
|
4
|
+
require 'date'
|
5
|
+
project = XmlElements.fromString(File.read("continuous4r-project.xml"))
|
6
|
+
%>
|
7
|
+
<div id="bodyColumn">
|
8
|
+
<div class="contentBox">
|
9
|
+
<div class="section"><a name="Issue_tracking"></a>
|
10
|
+
<h2>Issue tracking</h2>
|
11
|
+
<p>
|
12
|
+
<%= project['name'] %> uses <a href="<%= project.bugtracker.tracker_url.text %>" target="_blank" class="externalLink" title="External Link"><%= project.bugtracker.tracker_type.text %></a> for tracking issues.
|
13
|
+
See the <a target="_blank" href="<%= project.bugtracker.url.text %>" class="externalLink" title="External Link"><%= project['name'] %> project page</a>.
|
14
|
+
</p>
|
15
|
+
<p>
|
16
|
+
To use <%= project.bugtracker.tracker_type.text %> you may need to <a target="_blank" href="<%= project.bugtracker.tracker_account_create.text %>" class="externalLink" title="External Link">create an account</a>.
|
17
|
+
</p>
|
18
|
+
<p>
|
19
|
+
If you would like to report a bug, or raise an enhancement request with
|
20
|
+
<%= project['name'] %> please do the following:
|
21
|
+
<ol>
|
22
|
+
<li><a target="_blank" href="<%= project.bugtracker.search.text %>" class="externalLink" title="External Link">Search existing open bugs</a>.
|
23
|
+
If you find your issue listed then please add a comment with your details.</li>
|
24
|
+
<li>Decide if your issue is a bug or an enhancement.</li>
|
25
|
+
<li>Submit either a <a target="_blank" href="<%= project.bugtracker.add.text %>" class="externalLink" title="External Link">bug report</a>
|
26
|
+
or <a target="_blank" href="<%= project.bugtracker.add.text %>" class="externalLink" title="External Link">enhancement request</a>.</li>
|
27
|
+
</ol>
|
28
|
+
</p>
|
29
|
+
<p>
|
30
|
+
Please also remember these points:
|
31
|
+
<ul>
|
32
|
+
<li>the more information you provide, the better we can help you</li>
|
33
|
+
<li>test cases are vital, particularly for any proposed enhancements</li>
|
34
|
+
</ul>
|
35
|
+
</p>
|
36
|
+
</div>
|
37
|
+
</div>
|
38
|
+
</div>
|
@@ -0,0 +1,35 @@
|
|
1
|
+
<%
|
2
|
+
require 'rubygems'
|
3
|
+
require 'hpricot'
|
4
|
+
require 'XmlElements'
|
5
|
+
%>
|
6
|
+
<div id="bodyColumn">
|
7
|
+
<div class="contentBox">
|
8
|
+
<div class="section"><a name="rcov"></a>
|
9
|
+
<%
|
10
|
+
# chargement/modification du rapport rcov
|
11
|
+
doc = Hpricot(File.read("continuous4r_build/kwala/index.html"))
|
12
|
+
doc.search('//h2') do |h2|
|
13
|
+
h2.swap("<h3>#{h2.inner_html}</h3>")
|
14
|
+
end
|
15
|
+
doc.at("h1").swap("<h2>Kwala Build Results</h2>")
|
16
|
+
doc.search('//a') do |link|
|
17
|
+
if link.inner_text.index('rcov').nil?
|
18
|
+
link.swap("<a target='_blank' href='kwala/#{link.attributes['href']}'>#{link.inner_text}</a>")
|
19
|
+
end
|
20
|
+
end
|
21
|
+
doc.search('//table') do |table|
|
22
|
+
table.swap("<table class='bodyTable'>#{table.inner_html}</table>")
|
23
|
+
end
|
24
|
+
doc.search("tr:even") do |tr|
|
25
|
+
tr.swap("<tr class='b'>#{tr.inner_html}</tr>")
|
26
|
+
end
|
27
|
+
doc.search("tr:odd") do |tr|
|
28
|
+
tr.swap("<tr class='a'>#{tr.inner_html}</tr>")
|
29
|
+
end
|
30
|
+
%>
|
31
|
+
<%= doc.search("link")[0].to_html %>
|
32
|
+
<%= (doc/"body").inner_html %>
|
33
|
+
</div>
|
34
|
+
</div>
|
35
|
+
</div>
|
@@ -0,0 +1,29 @@
|
|
1
|
+
<%
|
2
|
+
require 'rubygems'
|
3
|
+
require 'XmlElements'
|
4
|
+
project = XmlElements.fromString(File.read("continuous4r-project.xml"))
|
5
|
+
%>
|
6
|
+
<div id="bodyColumn">
|
7
|
+
<div class="contentBox">
|
8
|
+
<div class="section"><a name="httperf"></a>
|
9
|
+
<% project.tasks.each('task') do |task|
|
10
|
+
if task['name'] == "railroad"
|
11
|
+
if task.params.generate['value'] == 'all' or task.params.generate['value'] == 'controllers'
|
12
|
+
%>
|
13
|
+
<h2>Railroad controllers graph</h2>
|
14
|
+
<object type="image/svg+xml" data="railroad/controllers.svg" width="100%" height="470">
|
15
|
+
<img src="railroad/controllers.svg" alt="controllers">
|
16
|
+
</object>
|
17
|
+
<% end %>
|
18
|
+
<% if task.params.generate['value'] == 'all' or task.params.generate['value'] == 'models' %>
|
19
|
+
<h2>Railroad models graph</h2>
|
20
|
+
<object type="image/svg+xml" data="railroad/models.svg" width="100%" height="470">
|
21
|
+
<img src="railroad/models.svg" alt="controllers">
|
22
|
+
</object>
|
23
|
+
<% end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
%>
|
27
|
+
</div>
|
28
|
+
</div>
|
29
|
+
</div>
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<%
|
2
|
+
require 'rubygems'
|
3
|
+
require 'hpricot'
|
4
|
+
require 'XmlElements'
|
5
|
+
%>
|
6
|
+
<div id="bodyColumn">
|
7
|
+
<div class="contentBox">
|
8
|
+
<div class="section"><a name="rcov"></a>
|
9
|
+
<%
|
10
|
+
# chargement/modification du rapport rcov
|
11
|
+
doc = Hpricot(File.read("continuous4r_build/rcov/index.html"))
|
12
|
+
doc.search('//a') do |link|
|
13
|
+
if link.inner_text.index('rcov').nil?
|
14
|
+
link.swap("<a target='_blank' href='rcov/#{link.attributes['href']}'>#{link.inner_text}</a>")
|
15
|
+
end
|
16
|
+
end
|
17
|
+
%>
|
18
|
+
<h2>Rcov Results</h2>
|
19
|
+
<%= doc.search("style")[1].to_html %>
|
20
|
+
<%= (doc/"body").inner_html %>
|
21
|
+
</div>
|
22
|
+
</div>
|
23
|
+
</div>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<div id="bodyColumn">
|
2
|
+
<div class="contentBox">
|
3
|
+
<div class="section"><a name="Rdoc_Report"></a>
|
4
|
+
<h2>Rdoc Report</h2>
|
5
|
+
<p style="padding-left: 20px;"><a target="_blank" class="newWindow" href="rdoc/app/index.html">View generated apidoc</a></p>
|
6
|
+
<div>
|
7
|
+
<pre class="source"><%= File.read("rdoc.log") %>
|
8
|
+
</pre>
|
9
|
+
</div>
|
10
|
+
</div>
|
11
|
+
</div>
|
12
|
+
</div>
|
@@ -0,0 +1,37 @@
|
|
1
|
+
<%
|
2
|
+
require 'rubygems'
|
3
|
+
require 'XmlElements'
|
4
|
+
require 'date'
|
5
|
+
project = XmlElements.fromString(File.read("continuous4r-project.xml"))
|
6
|
+
%>
|
7
|
+
<div id="bodyColumn">
|
8
|
+
<div class="contentBox">
|
9
|
+
<div class="section"><a name="Source_repository"></a>
|
10
|
+
<h2>Source repository</h2>
|
11
|
+
<%
|
12
|
+
scms = {'cvs' => ['CVS', 'http://www.nongnu.org/cvs/'], 'svn' => ['subversion', 'http://subversion.tigris.org']}
|
13
|
+
if !scms.has_key? project.scm.repository_type.text
|
14
|
+
%>
|
15
|
+
<p>
|
16
|
+
<%= project['name'] %> is hosted on an unknown repository type.
|
17
|
+
</p>
|
18
|
+
<% else %>
|
19
|
+
<p>
|
20
|
+
<%= project['name'] %> is hosted on a <a href="<%= scms[project.scm.repository_type.text][1] %>" target="_blank" class="externalLink" title="External Link"><%= scms[project.scm.repository_type.text][0] %></a> repository.
|
21
|
+
</p>
|
22
|
+
<% end %>
|
23
|
+
<p>
|
24
|
+
The project URL is:<br></br>
|
25
|
+
<code><%= project.scm.url.text %></code>
|
26
|
+
</p>
|
27
|
+
<p>
|
28
|
+
The best way to view the repository is via the
|
29
|
+
<a href="<%= project.scm.view.text %>" class="externalLink" target="_blank" title="External Link"><%= scms[project.scm.repository_type.text][0] %> viewer</a>.
|
30
|
+
</p>
|
31
|
+
<p>
|
32
|
+
The alternative is to use the
|
33
|
+
<a href="<%= project.scm.url.text %>" class="externalLink" target="_blank" title="External Link">native <%= scms[project.scm.repository_type.text][0] %></a> display.
|
34
|
+
</p>
|
35
|
+
</div>
|
36
|
+
</div>
|
37
|
+
</div>
|