continuous4r 0.0.1 → 0.0.2

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.
Files changed (95) hide show
  1. data/History.txt +1 -1
  2. data/Manifest.txt +34 -34
  3. data/PostInstall.txt +3 -0
  4. data/README.rdoc +58 -0
  5. data/Rakefile +28 -3
  6. data/lib/changelog_builder.rb +51 -0
  7. data/lib/continuous4r.rb +63 -426
  8. data/lib/dcov_builder.rb +144 -0
  9. data/lib/flay_builder.rb +38 -0
  10. data/lib/flog_builder.rb +120 -0
  11. data/lib/git_extractor.rb +48 -0
  12. data/lib/rcov_builder.rb +23 -0
  13. data/lib/rdoc_builder.rb +33 -0
  14. data/lib/reek_builder.rb +38 -0
  15. data/lib/roodi_builder.rb +41 -0
  16. data/lib/saikuro_builder.rb +20 -0
  17. data/lib/site/body-changelog.rhtml +1 -1
  18. data/lib/site/body-continuous4r-reports.rhtml +40 -47
  19. data/lib/site/body-dcov.rhtml +1 -21
  20. data/lib/site/body-flay.rhtml +16 -0
  21. data/lib/site/body-flog.rhtml +2 -10
  22. data/lib/site/body-rcov.rhtml +2 -3
  23. data/lib/site/body-rdoc.rhtml +1 -1
  24. data/lib/site/body-reek.rhtml +16 -0
  25. data/lib/site/body-roodi.rhtml +16 -0
  26. data/lib/site/body-saikuro.rhtml +32 -0
  27. data/lib/site/body-scm-usage.rhtml +13 -12
  28. data/lib/site/body-stats.rhtml +1 -1
  29. data/lib/site/body-tests.rhtml +1 -1
  30. data/lib/site/body-xdoclet.rhtml +29 -0
  31. data/lib/site/body-zentest.rhtml +1 -1
  32. data/lib/site/flog.html.erb +33 -0
  33. data/lib/site/flog_page.html.erb +74 -0
  34. data/lib/site/header.rhtml +36 -20
  35. data/lib/site/images/added.png +0 -0
  36. data/lib/site/images/deleted.png +0 -0
  37. data/lib/site/images/modified.png +0 -0
  38. data/lib/site/menu-continuous4r-reports.rhtml +4 -14
  39. data/lib/site/{menu-dcov.rhtml → menu-task.rhtml} +3 -5
  40. data/lib/site/style/maven-base.css +3 -0
  41. data/lib/site/syntax_highlighting.css +30 -0
  42. data/lib/stats_builder.rb +18 -0
  43. data/lib/subversion_extractor.rb +29 -19
  44. data/lib/tasks/continuous4r-project.xml +26 -0
  45. data/lib/tasks/continuous4r.rake +23 -0
  46. data/lib/tasks/continuous4r.rb +6 -0
  47. data/lib/tests_builder.rb +21 -0
  48. data/lib/tests_formatter.rb +13 -46
  49. data/lib/utils.rb +47 -0
  50. data/lib/xdoclet_builder.rb +48 -0
  51. data/lib/zen_test_formatter.rb +58 -28
  52. data/lib/zentest_builder.rb +19 -0
  53. data/script/console +10 -0
  54. data/script/console.cmd +1 -0
  55. data/script/destroy +1 -1
  56. data/script/generate +1 -1
  57. data/test/test_continuous4r.rb +1 -1
  58. data/test/test_helper.rb +1 -0
  59. data/website/index.html +141 -363
  60. data/website/index.txt +169 -228
  61. data/website/template.rhtml +2 -2
  62. metadata +66 -46
  63. data/License.txt +0 -20
  64. data/README.txt +0 -1
  65. data/config/hoe.rb +0 -71
  66. data/config/requirements.rb +0 -17
  67. data/lib/capistrano_formatter.rb +0 -19
  68. data/lib/continuous4r/version.rb +0 -9
  69. data/lib/flog_formatter.rb +0 -48
  70. data/lib/heckle_formatter.rb +0 -27
  71. data/lib/httperf_formatter.rb +0 -160
  72. data/lib/site/body-capistrano.rhtml +0 -8
  73. data/lib/site/body-heckle.rhtml +0 -16
  74. data/lib/site/body-httperf.rhtml +0 -8
  75. data/lib/site/body-kwala.rhtml +0 -35
  76. data/lib/site/body-railroad.rhtml +0 -29
  77. data/lib/site/menu-capistrano.rhtml +0 -23
  78. data/lib/site/menu-changelog.rhtml +0 -23
  79. data/lib/site/menu-flog.rhtml +0 -23
  80. data/lib/site/menu-heckle.rhtml +0 -23
  81. data/lib/site/menu-httperf.rhtml +0 -23
  82. data/lib/site/menu-kwala.rhtml +0 -23
  83. data/lib/site/menu-railroad.rhtml +0 -23
  84. data/lib/site/menu-rcov.rhtml +0 -23
  85. data/lib/site/menu-rdoc.rhtml +0 -23
  86. data/lib/site/menu-stats.rhtml +0 -23
  87. data/lib/site/menu-tests.rhtml +0 -23
  88. data/lib/site/menu-zentest.rhtml +0 -23
  89. data/log/debug.log +0 -0
  90. data/script/txt2html +0 -74
  91. data/script/txt2html.cmd +0 -1
  92. data/setup.rb +0 -1585
  93. data/tasks/deployment.rake +0 -34
  94. data/tasks/environment.rake +0 -7
  95. data/tasks/website.rake +0 -17
@@ -0,0 +1,33 @@
1
+ <h2>Flog Results</h2>
2
+ <p><a href='http://ruby.sadi.st/Flog.html'>Flog</a> measures code complexity.</p>
3
+ <table class='bodyTable'>
4
+ <tr>
5
+ <th>File</th>
6
+ <th>Total score</th>
7
+ <th>Methods</th>
8
+ <th>Average score</th>
9
+ <th>Highest score</th>
10
+ </tr>
11
+ <%
12
+ def cycle(first_value, second_value, iteration)
13
+ return first_value if iteration % 2 == 0
14
+ return second_value
15
+ end
16
+ pages.sort {|x,y| y.highest_score <=> x.highest_score }.each_with_index do |page, count| %>
17
+ <tr class='<%= cycle("a", "b", count) %>'>
18
+ <td><a href='flog/<%= page.path %>' target="_blank"><%= page.filename.sub('.txt', '.rb').gsub(Regexp.new("#{Continuous4r::WORK_DIR}/flog/"),'') %></a>&#160;&#160;<i>(<a class="externalLink" href="xdoclet/<%= page.filename.sub('.txt', '.rb.html').gsub(Regexp.new("#{Continuous4r::WORK_DIR}/flog/"),'').gsub(/\//,'_') %>" target="_blank">view source</a>)</i></td>
19
+ <td class='score'><%= sprintf("%0.2f", page.score) %></td>
20
+ <td class='score'><%= page.scanned_methods.length %></td>
21
+ <td class='score'><%= sprintf("%0.2f", page.average_score) %></td>
22
+ <td class='score'><%= sprintf("%0.2f", page.highest_score) %></td>
23
+ </tr>
24
+ <% end %>
25
+ <tr>
26
+ <td><strong>Totals</strong></td>
27
+ <td class='score'><strong><%= sprintf("%0.2f", pages.inject(0){|sum, page| sum + page.score }) %></strong></td>
28
+ <td class='score'><strong><%= pages.inject(0){|sum, page| sum + page.scanned_methods.length } %></strong></td>
29
+ <td class='score'></td>
30
+ <td class='score'></td>
31
+ </tr>
32
+ </table>
33
+ <p>Generated on <%= Time.now.localtime %></p>
@@ -0,0 +1,74 @@
1
+ <html>
2
+ <head>
3
+ <style>
4
+ body {
5
+ background-color: #efefef;
6
+ margin: 20px;
7
+ padding: 0;
8
+ font: 12px verdana, arial, helvetica;
9
+ }
10
+
11
+ table {
12
+ border-collapse: collapse;
13
+ border: 1px solid #666;
14
+ background: #fff;
15
+ margin-bottom: 20px;
16
+ }
17
+
18
+ table tr.light {
19
+ background: #fff;
20
+ }
21
+
22
+ table tr.dark {
23
+ background: #f9f9f9;
24
+ }
25
+
26
+ table td, table th {
27
+ padding: 4px 10px;
28
+ font-size: 13px;
29
+ }
30
+ table th {
31
+ text-align: center;
32
+ color: #fc0;
33
+ background: #336;
34
+ font-weight: bold;
35
+ border: #d0d0d0 1px solid;
36
+ }
37
+
38
+ table td {
39
+ border: #d0d0d0 1px solid;
40
+ }
41
+
42
+ table td.score {
43
+ text-align: right;
44
+ }
45
+
46
+ .warning {
47
+ background: yellow;
48
+ }
49
+ </style>
50
+ </head>
51
+ <body>
52
+ <p>Score: <%= score %></p>
53
+ <% scanned_methods.each do |sm| %>
54
+ <p><strong><%= sm.name %> (<%= sm.score %>)</strong></p>
55
+ <table>
56
+ <tr>
57
+ <th>Score</th>
58
+ <th>Operator</th>
59
+ </tr>
60
+ <%
61
+ def cycle(first_value, second_value, iteration)
62
+ return first_value if iteration % 2 == 0
63
+ return second_value
64
+ end
65
+ sm.operators.each_with_index do |operator, count| %>
66
+ <tr class='<%= cycle("light", "dark", count) %>'>
67
+ <td class='score'><%= sprintf("%0.2f", operator.score) %></td>
68
+ <td class='score'><%= operator.operator %></td>
69
+ </tr>
70
+ <% end %>
71
+ </table>
72
+ <% end %>
73
+ </body>
74
+ </html>
@@ -7,35 +7,51 @@
7
7
  generation_date = DateTime.now
8
8
  %>
9
9
  <html>
10
- <head>
11
- <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
12
- <title>Project Information - <%= project['name'] %></title>
13
- <style type="text/css" media="all">
10
+ <head>
11
+ <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
12
+ <title>Project Information - <%= project['name'] %></title>
13
+ <style type="text/css" media="all">
14
14
  @import url("./style/maven-base.css");
15
15
  @import url("./style/maven-theme.css");
16
16
  </style>
17
17
  </head>
18
18
  <body class="composite">
19
19
  <div id="banner">
20
- <a href="<%= project.url.text %>" id="projectLogo"><img alt="<%= project['name'] %>" src="<%= project.logo.text %>"></a>
21
- <% begin
22
- if !project.company.nil? and !project.company.logo.nil? and
23
- !project.company.logo.text.empty? and !project.company.url.nil? and
24
- !project.company.url.text.empty? and !project.company.name.nil? and !project.company.name.text.empty? %>
25
- <a href="<%= project.company.url.text %>" id="organizationLogo"><img alt="<%= project.company.name.text %>" src="<%= project.company.logo.text %>"></a>
26
- <% end
27
- rescue Exception => e
28
- end %>
29
- <div class="clear"><hr></div>
20
+ <table style="width: 100%; border: 0px solid black;">
21
+ <tr>
22
+ <%
23
+ begin
24
+ if !project.company.nil? and !project.company.logo.nil? and !project.company.url.nil? and !project.company.name.nil? %>
25
+ <td><a target="_blank" href="<%= project.company.url.text %>" id="organizationLogo"><img alt="<%= project.company.denomination.text %>" title="<%= project.company.denomination.text %>" src="<%= project.company.logo.text %>"></a></td>
26
+ <% end
27
+ rescue
28
+ # XML error safe
29
+ end
30
+ %>
31
+ <td width="100%">&#160;</td>
32
+ <td style="white-space: nowrap;"><a href="<%= project.url.text %>" id="projectLogo"><%= project['name'] %></a>&#160;&#160;</td>
33
+ <% if !project.logo.nil? %>
34
+ <td><img src="<%= project.logo.text %>" align="absmiddle"/></td>
35
+ <% end %>
36
+ </tr>
37
+ </table>
38
+ <div class="clear"><hr></div>
30
39
  </div>
31
40
  <div id="breadcrumbs">
32
- <div class="xleft">Last published: <%= generation_date.strftime("%Y-%m-%d") %> <span class="separator">|</span>&nbsp;Doc for 1.8.0-SNAPSHOT</div>
41
+ <%
42
+ if File.exist?(".git")
43
+ display_version = ", commit #{Utils.run_command("git log").split(/$/).select{ |l| l =~ /^commit / }.collect { |l| l[8..(l.length-1)] }[0]}"
44
+ end
45
+ if File.exist?(".svn")
46
+ get_head_log = Utils.run_command("svn log -r HEAD")
47
+ get_head_log_lines = get_head_log.split(/$/)
48
+ revision = get_head_log_lines[1].split(/ \| /)[0]
49
+ revision = revision[2..(revision.length-1)]
50
+ display_version = ", revision #{revision}"
51
+ end
52
+ %>
53
+ <div class="xleft">Last published: <%= generation_date.strftime("%Y-%m-%d") %> <span class="separator">|</span>&nbsp;Doc for <%= project['name'] %><%= display_version %></div>
33
54
  <div class="xright">
34
- <!-- a href="http://www..org/" class="externalLink" title="External Link">Assembla</a>
35
- <span class="separator">|</span>
36
-
37
- <a href="http://commons.apache.org/" class="externalLink" title="External Link">Commons</a> -->
38
- Pas de liens
39
55
  </div>
40
56
  <div class="clear"><hr></div>
41
57
  </div>
Binary file
Binary file
Binary file
@@ -1,7 +1,5 @@
1
1
  <%
2
- require 'rubygems'
3
- require 'XmlElements'
4
- project = XmlElements.fromString(File.read("continuous4r-project.xml"))
2
+ tasks = Continuous4r::TASKS
5
3
  %>
6
4
  <div id="leftColumn">
7
5
  <div id="navcolumn">
@@ -11,17 +9,9 @@
11
9
  <li class="collapsed"><a href="index.html">Project Info</a></li>
12
10
  <li class="expanded"><strong><a href="continuous4r-reports.html">Project Reports</a></strong>
13
11
  <ul>
14
- <%
15
- begin
16
- project.tasks.each('task') do |task| %>
17
- <li class="none"><a href="<%= task['name'] %>.html"><%= task['name'] %></a></li>
18
- <%
19
- end
20
- rescue Exception => e
21
- unless e.to_s == "no childs named 'task' found!"
22
- raise e
23
- end
24
- end %>
12
+ <% tasks.each do |task| %>
13
+ <li class="none"><a href="<%= task %>.html"><%= task %></a></li>
14
+ <% end %>
25
15
  </ul>
26
16
  </li>
27
17
  </ul>
@@ -1,7 +1,5 @@
1
1
  <%
2
- require 'rubygems'
3
- require 'XmlElements'
4
- project = XmlElements.fromString(File.read("continuous4r-project.xml"))
2
+ tasks = Continuous4r::TASKS
5
3
  %>
6
4
  <div id="leftColumn">
7
5
  <div id="navcolumn">
@@ -11,8 +9,8 @@
11
9
  <li class="collapsed"><a href="index.html">Project Info</a></li>
12
10
  <li class="expanded"><a href="continuous4r-reports.html">Project Reports</a>
13
11
  <ul>
14
- <% project.tasks.each('task') do |task| %>
15
- <li class="none"><% if task['name'] == "dcov" %><strong><% end %><a href="<%= task['name'] %>.html"><%= task['name'] %></a><% if task['name'] == "dcov" %></strong><% end %></li>
12
+ <% tasks.each do |task| %>
13
+ <li class="none"><% if task == current_task %><strong><% end %><a href="<%= task %>.html"><%= task %></a><% if task == current_task %></strong><% end %></li>
16
14
  <% end %>
17
15
  </ul>
18
16
  </li>
@@ -146,6 +146,9 @@ div.clear hr{
146
146
  .error {
147
147
  background-color: #f00;
148
148
  }
149
+ .warning {
150
+ background-color: yellow;
151
+ }
149
152
  .ok {
150
153
  background-color: #00f000;
151
154
  }
@@ -0,0 +1,30 @@
1
+ pre {
2
+ background-color: #f1f1f3;
3
+ color: #112;
4
+ padding: 10px;
5
+ font-size: 1.1em;
6
+ overflow: auto;
7
+ margin: 4px 0px;
8
+ width: 95%;
9
+ }
10
+
11
+ /* Syntax highlighting */
12
+ pre .normal {}
13
+ pre .comment { color: #005; font-style: italic; }
14
+ pre .keyword { color: #A00; font-weight: bold; }
15
+ pre .method { color: #077; }
16
+ pre .class { color: #074; }
17
+ pre .module { color: #050; }
18
+ pre .punct { color: #447; font-weight: bold; }
19
+ pre .symbol { color: #099; }
20
+ pre .string { color: #944; background: #FFE; }
21
+ pre .char { color: #F07; }
22
+ pre .ident { color: #004; }
23
+ pre .constant { color: #07F; }
24
+ pre .regex { color: #B66; background: #FEF; }
25
+ pre .number { color: #F99; }
26
+ pre .attribute { color: #5bb; }
27
+ pre .global { color: #7FB; }
28
+ pre .expr { color: #227; }
29
+ pre .escape { color: #277; }
30
+ pre .numline { color: #000; font-weight: bold; }
@@ -0,0 +1,18 @@
1
+ # ==========================================================================
2
+ # Construction de la tache stats (statistiques du code Ruby)
3
+ # author: Vincent Dubois
4
+ # date: 06 fevrier 2009
5
+ # ==========================================================================
6
+ class StatsBuilder
7
+ include Utils
8
+
9
+ # Implementation de la construction de la tache
10
+ def build(project_name, auto_install, proxy_option)
11
+ # On lance la generation
12
+ puts " Building stats report..."
13
+ stats_result = Utils.run_command("rake stats")
14
+ stats_report = File.open("#{Continuous4r::WORK_DIR}/stats_body.html", "w")
15
+ stats_report.write(StatsFormatter.new(stats_result).to_html)
16
+ stats_report.close
17
+ end
18
+ end
@@ -1,41 +1,51 @@
1
1
  require 'iconv'
2
+
2
3
  # ====================================================
3
4
  # Classe d'extraction des informations de Subversion
4
5
  # Author: Vincent Dubois
6
+ # Date: 19 fevrier 2009
5
7
  # ====================================================
6
8
  module SubversionExtractor
7
9
 
8
10
  # Methode qui permet de fabriquer le flux HTML a partir des informations
9
11
  # presentes dans le referentiel
10
- def self.extract_changelog scm_current_version, scm, file_name
11
- post_command= ""
12
- begin
13
- post_command = post_command + " --username " + scm.user.text
14
- post_command = post_command + " --password " + scm.password.text
15
- rescue
16
- post_command = ""
17
- end
18
- get_head_log = `svn log -r 'HEAD'#{post_command}`
12
+ def self.extract_changelog scm_current_version, file_name
13
+ get_head_log = Utils.run_command("svn log -r HEAD")
19
14
  get_head_log_lines = get_head_log.split(/$/)
20
15
  revision = get_head_log_lines[1].split(/ \| /)[0]
21
16
  revision = revision[2..(revision.length-1)]
22
- puts " Computing changelog for #{scm.url.text}, from revision #{scm_current_version} to revision #{revision}..."
17
+ # scm.url.text à remplacer par 'svn info'
18
+ svn_info = Utils.run_command("svn info")
19
+ svn_url = svn_info.split(/$/)[1].split(/^URL/)[1].strip.split(/: /)[1]
20
+ puts " Computing changelog for #{svn_url}, from revision #{scm_current_version} to revision #{revision}..."
23
21
  i = 0
24
22
  html = "<table class='bodyTable'><thead><th>Revision</th><th>Date</th><th>Author</th><th>File(s)</th><th>Comment</th></thead><tbody>"
25
23
  (scm_current_version.to_i..revision.to_i).to_a.reverse_each do |rev|
26
24
  puts " Changelog for revision #{rev}..."
27
25
  rev_files = Array.new
28
- if rev == 1 or (!scm['min_revision'].nil? and rev == scm['min_revision'].to_i)
29
- rev_result = `svn diff -r #{rev}#{post_command}|grep ^Index:`
26
+ # TODO Dans la suite, gérer les icônes ajout/modif/suppression
27
+ if rev == 1 #or (!scm['min_revision'].nil? and rev == scm['min_revision'].to_i)
28
+ rev_result = Utils.run_command("svn diff -r #{rev}").split(/$/).select{ |l| l =~ /^Index:/ }
29
+ rev_result.each do |line|
30
+ rev_files.push "<img src='images/added.png' align='absmiddle'/>#{line[8..(line.length-1)]}"
31
+ end
30
32
  else
31
- rev_result = `svn diff -r #{rev-1}:#{rev} --summarize#{post_command}`
32
- end
33
- rev_result_lines = rev_result.split(/$/)
34
- rev_result_lines.each do |line|
35
- rev_files.push line[7..(line.length-1)]
33
+ rev_result = Utils.run_command("svn diff -r #{rev-1}:#{rev} --summarize")
34
+ rev_result_lines = rev_result.split(/$/).collect { |l| l.gsub(Regexp.new("\n"), "") }
35
+ rev_result_lines.each do |line|
36
+ text = ''
37
+ if line[0..0] == 'A'
38
+ text = "<img src='images/added.png' align='absmiddle'/>"
39
+ elsif line[0..0] == 'M'
40
+ text = "<img src='images/modified.png' align='absmiddle'/>"
41
+ elsif line[0..0] == 'D'
42
+ text = "<img src='images/deleted.png' align='absmiddle'/>"
43
+ end
44
+ rev_files.push "#{text}&#160;#{line[7..(line.length-1)]}"
45
+ end
46
+ rev_files.pop
36
47
  end
37
- rev_files.pop
38
- rev_log_result = `svn log -r #{rev}`
48
+ rev_log_result = Utils.run_command("svn log -r #{rev}")
39
49
  rev_log_result_lines = rev_log_result.split(/$/)
40
50
  rev_line = rev_log_result_lines[1].split(/ \| /)
41
51
  html = html + "<tr class='#{ i % 2 == 0 ? 'a' : 'b'}'><td><strong>#{rev_line[0][2..(rev_line[0].length-1)]}</strong></td>"
@@ -0,0 +1,26 @@
1
+ <project name="FIXME project name" auto-install-gems="true" auto-install-tools="true" ignore-tests-failures="true">
2
+ <description>FIXME project description</description>
3
+ <url>FIXME project URL</url>
4
+ <logo>FIXME Logo URL</logo>
5
+ <company>
6
+ <denomination>FIXME your company name here</denomination>
7
+ <url>FIXME your company website URL here</url>
8
+ <logo>FIXME your company logo URL here</logo>
9
+ </company>
10
+ <members>
11
+ <member id="FIXME user login" name="FIXME user name" email="FIXME user email"
12
+ roles="FIXME user roles, separated by commas" company="FIXME company/ organisation name"/>
13
+ </members>
14
+ <bugtracker>
15
+ <tracker_type>[Trac|Bugzilla|Mantis|etc...]</tracker_type>
16
+ <tracker_url>BUGTRACKER_URL</tracker_url>
17
+ <tracker_account_create>BUGTRACKER_URL_ACCOUNT_CREATION</tracker_account_create>
18
+ <search>BUGTRACKER_URL_SEARCH_TICKETS</search>
19
+ <url>BUGTRACKER_URL_TICKETS_LIST</url>
20
+ <add>BUGTRACKER_URL_TICKET_ADD</add>
21
+ </bugtracker>
22
+ <!-- Gems mandatory for your project -->
23
+ <gems repository="http://gems.rubyforge.org/gems/">
24
+ <gem name="GEM_NAME" version="GEM_VERSION"/>
25
+ </gems>
26
+ </project>
@@ -0,0 +1,23 @@
1
+ # Tache Rake pour la construction du site Continuous4R
2
+ namespace :continuous4r do
3
+ desc 'Clean any continuous4r builds'
4
+ task :clean do
5
+ if File.exist?(Continuous4r::WORK_DIR)
6
+ FileUtils.rm_rf(Continuous4r::WORK_DIR)
7
+ end
8
+ end
9
+
10
+ desc 'Initialize your project for continuous4r build'
11
+ task :init do
12
+ if !File.exist?("#{RAILS_ROOT}/continuous4r-project.xml")
13
+ FileUtils.copy_file(File.join(File.dirname(__FILE__), "continuous4r-project.xml"), "#{RAILS_ROOT}/continuous4r-project.xml")
14
+ else
15
+ puts "The continuous4r-project.xml file already exists. Either this project is already configured, or you should delete this file and re-run this command."
16
+ end
17
+ end
18
+
19
+ desc 'Build continuous4r Website for the current project'
20
+ task :build do
21
+ Continuous4r.generate_site
22
+ end
23
+ end
@@ -0,0 +1,6 @@
1
+ require 'fileutils'
2
+ require 'rubygems'
3
+ require 'rake'
4
+
5
+ # Load rake file
6
+ import "#{File.dirname(__FILE__)}/continuous4r.rake"
@@ -0,0 +1,21 @@
1
+ # ==========================================================================
2
+ # Construction de la tache test (test unitaires du code ruby)
3
+ # author: Vincent Dubois
4
+ # date: 11 fevrier 2009
5
+ # ==========================================================================
6
+ class TestsBuilder
7
+ include Utils
8
+
9
+ # Implementation de la construction de la tache
10
+ def build(project_name, auto_install, proxy_option)
11
+ # On lance la generation
12
+ puts " Building tests report..."
13
+ if File.exist?("#{Continuous4r::WORK_DIR}/tests-run.html")
14
+ File.delete("#{Continuous4r::WORK_DIR}/tests-run.html")
15
+ end
16
+ tests_report = File.open("#{Continuous4r::WORK_DIR}/tests-run.html", "w")
17
+ html = TestsFormatter.new.to_html
18
+ tests_report.write(html)
19
+ tests_report.close
20
+ end
21
+ end