continuous4r 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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