continuous4r 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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>
|