reap 4.0 → 4.3.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.
Files changed (181) hide show
  1. data/ProjectInfo +18 -6
  2. data/lib/reap/bin/reap.rb +47 -16
  3. data/lib/reap/interface/interface.rb +0 -0
  4. data/lib/reap/interface/rubyforge.rb +247 -0
  5. data/lib/reap/lint.rb +1 -0
  6. data/lib/reap/projectinfo.rb +47 -18
  7. data/lib/reap/reap.rb +0 -0
  8. data/lib/reap/task/announce.rb +11 -13
  9. data/lib/reap/task/fileperm.rb +2 -5
  10. data/lib/reap/task/info.rb +2 -4
  11. data/lib/reap/task/install.rb +1 -3
  12. data/lib/reap/task/noop.rb +1 -3
  13. data/lib/reap/task/package.rb +163 -65
  14. data/lib/reap/task/publish.rb +2 -4
  15. data/lib/reap/task/rdoc.rb +1 -3
  16. data/lib/reap/task/release.rb +273 -0
  17. data/lib/reap/task/test.rb +19 -5
  18. data/lib/reap/task/testext.rb +5 -5
  19. data/lib/reap/task.rb +94 -69
  20. metadata +70 -256
  21. data/dev/Rakefile +0 -60
  22. data/dev/composite_task.rb +0 -27
  23. data/dev/compositepublisher.rb +0 -24
  24. data/dev/ftptools.rb +0 -139
  25. data/dev/license-each.rb +0 -85
  26. data/dev/publisher.rb +0 -75
  27. data/dev/rubyforgepublisher.rb +0 -18
  28. data/dev/sshpublisher.rb +0 -47
  29. data/dev/suby-cvs.rb +0 -46
  30. data/dev/template.rb +0 -72
  31. data/lib/reap/readymade.rb +0 -21
  32. data/lib/reap/task/webpublish.rb +0 -43
  33. data/lib/reap/tasks.rb +0 -13
  34. data/lib/reap/test.rb +0 -138
  35. data/web/ProjectInfo +0 -57
  36. data/web/images/appleboy.jpg +0 -0
  37. data/web/images/grape.jpg +0 -0
  38. data/web/index.html +0 -124
  39. data/web/rdoc/classes/Object.html +0 -121
  40. data/web/rdoc/classes/ProjectInfo.html +0 -207
  41. data/web/rdoc/classes/ProjectInfo.src/M000094.html +0 -18
  42. data/web/rdoc/classes/ProjectInfo.src/M000095.html +0 -24
  43. data/web/rdoc/classes/ProjectInfo.src/M000096.html +0 -22
  44. data/web/rdoc/classes/ProjectInfo.src/M000097.html +0 -21
  45. data/web/rdoc/classes/ProjectInfo.src/M000098.html +0 -18
  46. data/web/rdoc/classes/Reap/Announce.html +0 -262
  47. data/web/rdoc/classes/Reap/Announce.src/M000030.html +0 -18
  48. data/web/rdoc/classes/Reap/Announce.src/M000031.html +0 -114
  49. data/web/rdoc/classes/Reap/Announce.src/M000032.html +0 -46
  50. data/web/rdoc/classes/Reap/Info.html +0 -176
  51. data/web/rdoc/classes/Reap/Info.src/M000033.html +0 -18
  52. data/web/rdoc/classes/Reap/Info.src/M000034.html +0 -17
  53. data/web/rdoc/classes/Reap/Info.src/M000035.html +0 -18
  54. data/web/rdoc/classes/Reap/Install.html +0 -193
  55. data/web/rdoc/classes/Reap/Install.src/M000036.html +0 -18
  56. data/web/rdoc/classes/Reap/Install.src/M000037.html +0 -20
  57. data/web/rdoc/classes/Reap/Install.src/M000038.html +0 -26
  58. data/web/rdoc/classes/Reap/Noop.html +0 -192
  59. data/web/rdoc/classes/Reap/Noop.src/M000027.html +0 -18
  60. data/web/rdoc/classes/Reap/Noop.src/M000028.html +0 -17
  61. data/web/rdoc/classes/Reap/Noop.src/M000029.html +0 -18
  62. data/web/rdoc/classes/Reap/Package.html +0 -310
  63. data/web/rdoc/classes/Reap/Package.src/M000055.html +0 -18
  64. data/web/rdoc/classes/Reap/Package.src/M000056.html +0 -68
  65. data/web/rdoc/classes/Reap/Package.src/M000057.html +0 -84
  66. data/web/rdoc/classes/Reap/Package.src/M000058.html +0 -61
  67. data/web/rdoc/classes/Reap/Perm.html +0 -236
  68. data/web/rdoc/classes/Reap/Perm.src/M000078.html +0 -18
  69. data/web/rdoc/classes/Reap/Perm.src/M000079.html +0 -21
  70. data/web/rdoc/classes/Reap/Perm.src/M000080.html +0 -42
  71. data/web/rdoc/classes/Reap/Perm.src/M000081.html +0 -26
  72. data/web/rdoc/classes/Reap/Perm.src/M000082.html +0 -18
  73. data/web/rdoc/classes/Reap/Publish.html +0 -213
  74. data/web/rdoc/classes/Reap/Publish.src/M000070.html +0 -18
  75. data/web/rdoc/classes/Reap/Publish.src/M000071.html +0 -22
  76. data/web/rdoc/classes/Reap/Publish.src/M000072.html +0 -37
  77. data/web/rdoc/classes/Reap/RDoc.html +0 -218
  78. data/web/rdoc/classes/Reap/RDoc.src/M000059.html +0 -18
  79. data/web/rdoc/classes/Reap/RDoc.src/M000060.html +0 -24
  80. data/web/rdoc/classes/Reap/RDoc.src/M000061.html +0 -70
  81. data/web/rdoc/classes/Reap/Task.html +0 -396
  82. data/web/rdoc/classes/Reap/Task.src/M000039.html +0 -18
  83. data/web/rdoc/classes/Reap/Task.src/M000040.html +0 -16
  84. data/web/rdoc/classes/Reap/Task.src/M000041.html +0 -16
  85. data/web/rdoc/classes/Reap/Task.src/M000042.html +0 -16
  86. data/web/rdoc/classes/Reap/Task.src/M000043.html +0 -16
  87. data/web/rdoc/classes/Reap/Task.src/M000044.html +0 -22
  88. data/web/rdoc/classes/Reap/Task.src/M000045.html +0 -16
  89. data/web/rdoc/classes/Reap/Task.src/M000046.html +0 -16
  90. data/web/rdoc/classes/Reap/Task.src/M000047.html +0 -16
  91. data/web/rdoc/classes/Reap/Task.src/M000048.html +0 -16
  92. data/web/rdoc/classes/Reap/Task.src/M000049.html +0 -16
  93. data/web/rdoc/classes/Reap/Task.src/M000050.html +0 -27
  94. data/web/rdoc/classes/Reap/Task.src/M000051.html +0 -19
  95. data/web/rdoc/classes/Reap/Task.src/M000052.html +0 -18
  96. data/web/rdoc/classes/Reap/Task.src/M000053.html +0 -18
  97. data/web/rdoc/classes/Reap/Task.src/M000054.html +0 -19
  98. data/web/rdoc/classes/Reap/Test/TestResults.html +0 -205
  99. data/web/rdoc/classes/Reap/Test/TestResults.src/M000067.html +0 -21
  100. data/web/rdoc/classes/Reap/Test/TestResults.src/M000068.html +0 -21
  101. data/web/rdoc/classes/Reap/Test/TestResults.src/M000069.html +0 -23
  102. data/web/rdoc/classes/Reap/Test.html +0 -253
  103. data/web/rdoc/classes/Reap/Test.src/M000062.html +0 -18
  104. data/web/rdoc/classes/Reap/Test.src/M000063.html +0 -26
  105. data/web/rdoc/classes/Reap/Test.src/M000064.html +0 -77
  106. data/web/rdoc/classes/Reap/Test.src/M000065.html +0 -27
  107. data/web/rdoc/classes/Reap/Test.src/M000066.html +0 -50
  108. data/web/rdoc/classes/Reap/TestExt.html +0 -234
  109. data/web/rdoc/classes/Reap/TestExt.src/M000073.html +0 -18
  110. data/web/rdoc/classes/Reap/TestExt.src/M000074.html +0 -20
  111. data/web/rdoc/classes/Reap/TestExt.src/M000075.html +0 -49
  112. data/web/rdoc/classes/Reap/TestExt.src/M000076.html +0 -34
  113. data/web/rdoc/classes/Reap/TestExt.src/M000077.html +0 -27
  114. data/web/rdoc/classes/Reap/WebPublish.html +0 -213
  115. data/web/rdoc/classes/Reap/WebPublish.src/M000083.html +0 -18
  116. data/web/rdoc/classes/Reap/WebPublish.src/M000084.html +0 -21
  117. data/web/rdoc/classes/Reap/WebPublish.src/M000085.html +0 -32
  118. data/web/rdoc/classes/Reap.html +0 -248
  119. data/web/rdoc/classes/Reap.src/M000023.html +0 -16
  120. data/web/rdoc/classes/Reap.src/M000024.html +0 -21
  121. data/web/rdoc/classes/Reap.src/M000025.html +0 -16
  122. data/web/rdoc/classes/Reap.src/M000026.html +0 -21
  123. data/web/rdoc/classes/ReapCommand.html +0 -425
  124. data/web/rdoc/classes/ReapCommand.src/M000001.html +0 -16
  125. data/web/rdoc/classes/ReapCommand.src/M000003.html +0 -16
  126. data/web/rdoc/classes/ReapCommand.src/M000005.html +0 -16
  127. data/web/rdoc/classes/ReapCommand.src/M000007.html +0 -16
  128. data/web/rdoc/classes/ReapCommand.src/M000009.html +0 -16
  129. data/web/rdoc/classes/ReapCommand.src/M000011.html +0 -16
  130. data/web/rdoc/classes/ReapCommand.src/M000013.html +0 -18
  131. data/web/rdoc/classes/ReapCommand.src/M000014.html +0 -19
  132. data/web/rdoc/classes/ReapCommand.src/M000015.html +0 -19
  133. data/web/rdoc/classes/ReapCommand.src/M000016.html +0 -24
  134. data/web/rdoc/classes/ReapCommand.src/M000018.html +0 -29
  135. data/web/rdoc/classes/Scaffold.html +0 -211
  136. data/web/rdoc/classes/Scaffold.src/M000086.html +0 -16
  137. data/web/rdoc/classes/Scaffold.src/M000087.html +0 -28
  138. data/web/rdoc/classes/Scaffold.src/M000088.html +0 -32
  139. data/web/rdoc/classes/Scaffold.src/M000089.html +0 -18
  140. data/web/rdoc/classes/UnitTestKernel.html +0 -176
  141. data/web/rdoc/classes/UnitTestKernel.src/M000019.html +0 -18
  142. data/web/rdoc/classes/UnitTestKernel.src/M000020.html +0 -18
  143. data/web/rdoc/classes/UnitTestKernel.src/M000021.html +0 -22
  144. data/web/rdoc/classes/UnitTestKernel.src/M000022.html +0 -22
  145. data/web/rdoc/classes/UnitTesting/Failure.html +0 -156
  146. data/web/rdoc/classes/UnitTesting/Failure.src/M000092.html +0 -18
  147. data/web/rdoc/classes/UnitTesting/Failure.src/M000093.html +0 -21
  148. data/web/rdoc/classes/UnitTesting.html +0 -165
  149. data/web/rdoc/classes/UnitTesting.src/M000090.html +0 -34
  150. data/web/rdoc/classes/UnitTesting.src/M000091.html +0 -18
  151. data/web/rdoc/created.rid +0 -1
  152. data/web/rdoc/files/ANN.html +0 -107
  153. data/web/rdoc/files/COPYING.html +0 -119
  154. data/web/rdoc/files/ChangeLog.html +0 -144
  155. data/web/rdoc/files/ProjectInfo.html +0 -190
  156. data/web/rdoc/files/README.html +0 -274
  157. data/web/rdoc/files/Rakefile.html +0 -101
  158. data/web/rdoc/files/lib/reap/bin/reap_rb.html +0 -129
  159. data/web/rdoc/files/lib/reap/lint_rb.html +0 -101
  160. data/web/rdoc/files/lib/reap/projectinfo_rb.html +0 -110
  161. data/web/rdoc/files/lib/reap/readymade_rb.html +0 -123
  162. data/web/rdoc/files/lib/reap/task/announce_rb.html +0 -114
  163. data/web/rdoc/files/lib/reap/task/fileperm_rb.html +0 -108
  164. data/web/rdoc/files/lib/reap/task/info_rb.html +0 -108
  165. data/web/rdoc/files/lib/reap/task/install_rb.html +0 -108
  166. data/web/rdoc/files/lib/reap/task/noop_rb.html +0 -108
  167. data/web/rdoc/files/lib/reap/task/package_rb.html +0 -109
  168. data/web/rdoc/files/lib/reap/task/publish_rb.html +0 -108
  169. data/web/rdoc/files/lib/reap/task/rdoc_rb.html +0 -108
  170. data/web/rdoc/files/lib/reap/task/scaffold_rb.html +0 -107
  171. data/web/rdoc/files/lib/reap/task/test_rb.html +0 -110
  172. data/web/rdoc/files/lib/reap/task/testext_rb.html +0 -109
  173. data/web/rdoc/files/lib/reap/task/webpublish_rb.html +0 -108
  174. data/web/rdoc/files/lib/reap/task_rb.html +0 -120
  175. data/web/rdoc/files/lib/reap/tasks_rb.html +0 -116
  176. data/web/rdoc/files/lib/reap/test_rb.html +0 -109
  177. data/web/rdoc/fr_class_index.html +0 -47
  178. data/web/rdoc/fr_file_index.html +0 -51
  179. data/web/rdoc/fr_method_index.html +0 -124
  180. data/web/rdoc/index.html +0 -24
  181. data/web/rdoc/rdoc-style.css +0 -208
@@ -1,77 +0,0 @@
1
- <?xml version="1.0" encoding="iso-8859-1"?>
2
- <!DOCTYPE html
3
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
-
6
- <html>
7
- <head>
8
- <title>run (Reap::Test)</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
- </head>
12
- <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/reap/task/test.rb, line 44</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">run</span>
15
- <span class="ruby-comment cmt"># get test files</span>
16
- <span class="ruby-identifier">test_libs</span> = <span class="ruby-ivar">@libs</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">':'</span>)
17
- <span class="ruby-identifier">test_files</span> = <span class="ruby-constant">FileList</span>.<span class="ruby-identifier">new</span>
18
- <span class="ruby-identifier">test_files</span>.<span class="ruby-identifier">include</span>(<span class="ruby-operator">*</span><span class="ruby-ivar">@files</span>)
19
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">test_files</span>.<span class="ruby-identifier">empty?</span>
20
- <span class="ruby-identifier">puts</span> <span class="ruby-value str">&quot;No test files found.&quot;</span>
21
- <span class="ruby-keyword kw">return</span>
22
- <span class="ruby-keyword kw">end</span>
23
- <span class="ruby-identifier">print</span> <span class="ruby-value str">&quot;Reap is shelling out work to Ruby's Test Suite...&quot;</span>
24
-
25
- <span class="ruby-identifier">test_files</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
26
- <span class="ruby-identifier">$stdout</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">'.'</span>; <span class="ruby-identifier">$stdout</span>.<span class="ruby-identifier">flush</span>
27
- <span class="ruby-identifier">dotest</span>( <span class="ruby-identifier">f</span> )
28
- <span class="ruby-comment cmt">#ruby %{-r&quot;test/unit&quot; &quot;#{f}&quot;}</span>
29
- }
30
- <span class="ruby-identifier">puts</span> <span class="ruby-value str">&quot;done.&quot;</span>
31
-
32
- <span class="ruby-comment cmt"># Don't know why empty arrays get in them yet, but...</span>
33
- <span class="ruby-ivar">@failures</span>.<span class="ruby-identifier">reject!</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">e</span><span class="ruby-operator">|</span> <span class="ruby-identifier">e</span> <span class="ruby-operator">==</span> [] }
34
- <span class="ruby-ivar">@errors</span>.<span class="ruby-identifier">reject!</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">e</span><span class="ruby-operator">|</span> <span class="ruby-identifier">e</span> <span class="ruby-operator">==</span> [] }
35
-
36
- <span class="ruby-comment cmt"># Display Failures</span>
37
- <span class="ruby-identifier">puts</span>
38
- <span class="ruby-identifier">puts</span> <span class="ruby-node">%{FAILURES:#{@failures.empty? ? ' []' : ''}}</span>
39
- <span class="ruby-ivar">@failures</span>.<span class="ruby-identifier">reverse</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">fails</span><span class="ruby-operator">|</span>
40
- <span class="ruby-identifier">fails</span>.<span class="ruby-identifier">reverse</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">failure</span><span class="ruby-operator">|</span>
41
- <span class="ruby-identifier">puts</span>
42
- <span class="ruby-identifier">puts</span> <span class="ruby-node">%{ - test : #{failure.test_name}}</span>
43
- <span class="ruby-identifier">puts</span> <span class="ruby-node">%{ location : #{failure.location}}</span>
44
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">failure</span>.<span class="ruby-identifier">message</span>.<span class="ruby-identifier">index</span>(<span class="ruby-value str">&quot;\n&quot;</span>)
45
- <span class="ruby-identifier">puts</span> <span class="ruby-value str">%{ message : &gt;}</span>
46
- <span class="ruby-identifier">puts</span> <span class="ruby-identifier">failure</span>.<span class="ruby-identifier">message</span>.<span class="ruby-identifier">tabto</span>(<span class="ruby-value">6</span>)
47
- <span class="ruby-keyword kw">else</span>
48
- <span class="ruby-identifier">puts</span> <span class="ruby-node">%{ message : #{failure.message}}</span>
49
- <span class="ruby-keyword kw">end</span>
50
- }
51
- }
52
-
53
- <span class="ruby-comment cmt"># Display Errors</span>
54
- <span class="ruby-identifier">puts</span>
55
- <span class="ruby-identifier">puts</span> <span class="ruby-node">%{ERRORS:#{@errors.empty? ? ' []' : ''}}</span>
56
- <span class="ruby-ivar">@errors</span>.<span class="ruby-identifier">reverse</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">errs</span><span class="ruby-operator">|</span>
57
- <span class="ruby-identifier">errs</span>.<span class="ruby-identifier">reverse</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">err</span><span class="ruby-operator">|</span>
58
- <span class="ruby-identifier">puts</span>
59
- <span class="ruby-identifier">puts</span> <span class="ruby-node">%{ - test : #{err.test_name}}</span>
60
- <span class="ruby-identifier">puts</span> <span class="ruby-node">%{ message : #{err.exception.message}}</span>
61
- <span class="ruby-identifier">puts</span> <span class="ruby-value str">%{ backtrace :}</span>
62
- <span class="ruby-identifier">err</span>.<span class="ruby-identifier">exception</span>.<span class="ruby-identifier">backtrace</span>[<span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-value">-1</span>].<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">bt</span><span class="ruby-operator">|</span> <span class="ruby-identifier">puts</span> <span class="ruby-node">%Q{ - #{bt}}</span> }
63
- }
64
- }
65
-
66
- <span class="ruby-comment cmt"># Display Final Results</span>
67
- <span class="ruby-identifier">puts</span>
68
- <span class="ruby-identifier">puts</span> <span class="ruby-ivar">@results</span>
69
- <span class="ruby-identifier">puts</span>
70
-
71
- <span class="ruby-comment cmt"># old way (don't work right)</span>
72
- <span class="ruby-comment cmt">#puts %Q{ ruby %{-I#{test_libs} -e0 -r&quot;test/unit&quot; \\\n#{test_reqs}#{test_opts}} } if $DEBUG</span>
73
- <span class="ruby-comment cmt">#ruby %{-I#{test_libs} -e0 -r&quot;test/unit&quot; \\\n#{test_reqs}#{test_opts}}</span>
74
- <span class="ruby-comment cmt">#ruby %{-e0 -r&quot;test/unit&quot; \\\n#{test_reqs}#{test_opts}}</span>
75
- <span class="ruby-keyword kw">end</span></pre>
76
- </body>
77
- </html>
@@ -1,27 +0,0 @@
1
- <?xml version="1.0" encoding="iso-8859-1"?>
2
- <!DOCTYPE html
3
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
-
6
- <html>
7
- <head>
8
- <title>dotest (Reap::Test)</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
- </head>
12
- <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/reap/task/test.rb, line 107</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">dotest</span>( <span class="ruby-identifier">test_file</span> )
15
- <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">file?</span>( <span class="ruby-identifier">test_file</span> )
16
- <span class="ruby-identifier">r</span> = <span class="ruby-keyword kw">nil</span>
17
- <span class="ruby-keyword kw">else</span>
18
- <span class="ruby-identifier">r</span> = <span class="ruby-identifier">fork_test</span>( <span class="ruby-identifier">test_file</span> )
19
- <span class="ruby-keyword kw">end</span>
20
- <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">r</span>.<span class="ruby-identifier">passed?</span>
21
- <span class="ruby-ivar">@errors</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">r</span>.<span class="ruby-identifier">instance_variable_get</span>(<span class="ruby-value str">'@errors'</span>)
22
- <span class="ruby-ivar">@failures</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">r</span>.<span class="ruby-identifier">instance_variable_get</span>(<span class="ruby-value str">'@failures'</span>)
23
- <span class="ruby-keyword kw">end</span>
24
- <span class="ruby-ivar">@results</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">r</span>
25
- <span class="ruby-keyword kw">end</span></pre>
26
- </body>
27
- </html>
@@ -1,50 +0,0 @@
1
- <?xml version="1.0" encoding="iso-8859-1"?>
2
- <!DOCTYPE html
3
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
-
6
- <html>
7
- <head>
8
- <title>fork_test (Reap::Test)</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
- </head>
12
- <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/reap/task/test.rb, line 122</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fork_test</span>( <span class="ruby-identifier">testfile</span> )
15
- <span class="ruby-identifier">src</span> = <span class="ruby-value str">''</span>
16
- <span class="ruby-identifier">src</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">%{$:.unshift('lib')}</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">against_installed</span>
17
- <span class="ruby-identifier">src</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">%{
18
- #require 'test/unit'
19
- require 'test/unit/collector'
20
- require 'test/unit/collector/objectspace'
21
- require 'test/unit/ui/testrunnermediator'
22
- }</span>
23
- <span class="ruby-identifier">fixture</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">fix</span><span class="ruby-operator">|</span>
24
- <span class="ruby-identifier">src</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">%Q{
25
- require '#{fix}'
26
- }</span>
27
- <span class="ruby-keyword kw">end</span>
28
- <span class="ruby-identifier">src</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">%{
29
- output = STDOUT.dup
30
- STDOUT.reopen( PLATFORM =~ /mswin/ ? &quot;NUL&quot; : &quot;/dev/null&quot; )
31
-
32
- load('#{testfile}')
33
- tests = Test::Unit::Collector::ObjectSpace.new.collect
34
- runner = Test::Unit::UI::TestRunnerMediator.new( tests )
35
- result = runner.run_suite
36
- output &lt;&lt; Marshal.dump(result)
37
-
38
- STDOUT.reopen(output)
39
- output.close
40
- }</span>
41
- <span class="ruby-identifier">result</span> = <span class="ruby-constant">IO</span>.<span class="ruby-identifier">popen</span>(<span class="ruby-value str">&quot;ruby&quot;</span>,<span class="ruby-value str">&quot;w+&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">ruby</span><span class="ruby-operator">|</span>
42
- <span class="ruby-identifier">ruby</span>.<span class="ruby-identifier">puts</span> <span class="ruby-identifier">src</span>
43
- <span class="ruby-identifier">ruby</span>.<span class="ruby-identifier">close_write</span>
44
- <span class="ruby-identifier">ruby</span>.<span class="ruby-identifier">read</span>
45
- <span class="ruby-keyword kw">end</span>
46
- <span class="ruby-identifier">p</span> <span class="ruby-identifier">testfile</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$VERBOSE</span>
47
- <span class="ruby-keyword kw">return</span> <span class="ruby-constant">Marshal</span>.<span class="ruby-identifier">load</span>(<span class="ruby-identifier">result</span>)
48
- <span class="ruby-keyword kw">end</span></pre>
49
- </body>
50
- </html>
@@ -1,234 +0,0 @@
1
- <?xml version="1.0" encoding="iso-8859-1"?>
2
- <!DOCTYPE html
3
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
-
6
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
- <head>
8
- <title>Class: Reap::TestExt</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
- <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
12
- <script type="text/javascript">
13
- // <![CDATA[
14
-
15
- function popupCode( url ) {
16
- window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
- }
18
-
19
- function toggleCode( id ) {
20
- if ( document.getElementById )
21
- elem = document.getElementById( id );
22
- else if ( document.all )
23
- elem = eval( "document.all." + id );
24
- else
25
- return false;
26
-
27
- elemStyle = elem.style;
28
-
29
- if ( elemStyle.display != "block" ) {
30
- elemStyle.display = "block"
31
- } else {
32
- elemStyle.display = "none"
33
- }
34
-
35
- return true;
36
- }
37
-
38
- // Make codeblocks hidden by default
39
- document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
-
41
- // ]]>
42
- </script>
43
-
44
- </head>
45
- <body>
46
-
47
-
48
-
49
- <div id="classHeader">
50
- <table class="header-table">
51
- <tr class="top-aligned-row">
52
- <td><strong>Class</strong></td>
53
- <td class="class-name-in-header">Reap::TestExt</td>
54
- </tr>
55
- <tr class="top-aligned-row">
56
- <td><strong>In:</strong></td>
57
- <td>
58
- <a href="../../files/lib/reap/task/testext_rb.html">
59
- lib/reap/task/testext.rb
60
- </a>
61
- <br />
62
- </td>
63
- </tr>
64
-
65
- <tr class="top-aligned-row">
66
- <td><strong>Parent:</strong></td>
67
- <td>
68
- <a href="Task.html">
69
- Reap::Task
70
- </a>
71
- </td>
72
- </tr>
73
- </table>
74
- </div>
75
- <!-- banner header -->
76
-
77
- <div id="bodyContent">
78
-
79
-
80
-
81
- <div id="contextContent">
82
-
83
- <div id="description">
84
- <p>
85
- Extract <a href="Test.html">Test</a> <a href="Task.html">Task</a>
86
- </p>
87
- <p>
88
- The <a href="../Reap.html">Reap</a> extract test task scans every package
89
- script looking for =begin testing &#8230; =end sections. With appropriat
90
- headers, it copies these sections to files in the test dir, which then can
91
- be run using the <a href="../Reap.html">Reap</a> test taks.
92
- </p>
93
-
94
- </div>
95
-
96
-
97
- </div>
98
-
99
- <div id="method-list">
100
- <h3 class="section-bar">Methods</h3>
101
-
102
- <div class="name-list">
103
- <a href="#M000077">create</a>&nbsp;&nbsp;
104
- <a href="#M000076">extract</a>&nbsp;&nbsp;
105
- <a href="#M000074">init</a>&nbsp;&nbsp;
106
- <a href="#M000075">run</a>&nbsp;&nbsp;
107
- <a href="#M000073">task_desc</a>&nbsp;&nbsp;
108
- </div>
109
- </div>
110
-
111
- </div>
112
-
113
-
114
- <!-- if includes -->
115
-
116
- <div id="section">
117
-
118
-
119
-
120
-
121
-
122
- <div id="attribute-list">
123
- <h3 class="section-bar">Attributes</h3>
124
-
125
- <div class="name-list">
126
- <table>
127
- <tr class="top-aligned-row context-row">
128
- <td class="context-item-name">dir</td>
129
- <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
130
- <td class="context-item-desc"></td>
131
- </tr>
132
- <tr class="top-aligned-row context-row">
133
- <td class="context-item-name">files</td>
134
- <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
135
- <td class="context-item-desc"></td>
136
- </tr>
137
- <tr class="top-aligned-row context-row">
138
- <td class="context-item-name">options</td>
139
- <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
140
- <td class="context-item-desc"></td>
141
- </tr>
142
- </table>
143
- </div>
144
- </div>
145
-
146
-
147
-
148
- <!-- if method_list -->
149
- <div id="methods">
150
- <h3 class="section-bar">Public Instance methods</h3>
151
-
152
- <div id="method-M000077" class="method-detail">
153
- <a name="M000077"></a>
154
-
155
- <div class="method-heading">
156
- <a href="TestExt.src/M000077.html" target="Code" class="method-signature"
157
- onclick="popupCode('TestExt.src/M000077.html');return false;">
158
- <span class="method-name">create</span><span class="method-args">( testing, file )</span>
159
- </a>
160
- </div>
161
-
162
- <div class="method-description">
163
- </div>
164
- </div>
165
-
166
- <div id="method-M000076" class="method-detail">
167
- <a name="M000076"></a>
168
-
169
- <div class="method-heading">
170
- <a href="TestExt.src/M000076.html" target="Code" class="method-signature"
171
- onclick="popupCode('TestExt.src/M000076.html');return false;">
172
- <span class="method-name">extract</span><span class="method-args">( file )</span>
173
- </a>
174
- </div>
175
-
176
- <div class="method-description">
177
- </div>
178
- </div>
179
-
180
- <div id="method-M000074" class="method-detail">
181
- <a name="M000074"></a>
182
-
183
- <div class="method-heading">
184
- <a href="TestExt.src/M000074.html" target="Code" class="method-signature"
185
- onclick="popupCode('TestExt.src/M000074.html');return false;">
186
- <span class="method-name">init</span><span class="method-args">()</span>
187
- </a>
188
- </div>
189
-
190
- <div class="method-description">
191
- </div>
192
- </div>
193
-
194
- <div id="method-M000075" class="method-detail">
195
- <a name="M000075"></a>
196
-
197
- <div class="method-heading">
198
- <a href="TestExt.src/M000075.html" target="Code" class="method-signature"
199
- onclick="popupCode('TestExt.src/M000075.html');return false;">
200
- <span class="method-name">run</span><span class="method-args">()</span>
201
- </a>
202
- </div>
203
-
204
- <div class="method-description">
205
- </div>
206
- </div>
207
-
208
- <div id="method-M000073" class="method-detail">
209
- <a name="M000073"></a>
210
-
211
- <div class="method-heading">
212
- <a href="TestExt.src/M000073.html" target="Code" class="method-signature"
213
- onclick="popupCode('TestExt.src/M000073.html');return false;">
214
- <span class="method-name">task_desc</span><span class="method-args">()</span>
215
- </a>
216
- </div>
217
-
218
- <div class="method-description">
219
- </div>
220
- </div>
221
-
222
-
223
- </div>
224
-
225
-
226
- </div>
227
-
228
-
229
- <div id="validator-badges">
230
- <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
231
- </div>
232
-
233
- </body>
234
- </html>
@@ -1,18 +0,0 @@
1
- <?xml version="1.0" encoding="iso-8859-1"?>
2
- <!DOCTYPE html
3
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
-
6
- <html>
7
- <head>
8
- <title>task_desc (Reap::TestExt)</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
- </head>
12
- <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/reap/task/testext.rb, line 14</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">task_desc</span>
15
- <span class="ruby-value str">&quot;Extract unit-tests from lib scripts.&quot;</span>
16
- <span class="ruby-keyword kw">end</span></pre>
17
- </body>
18
- </html>
@@ -1,20 +0,0 @@
1
- <?xml version="1.0" encoding="iso-8859-1"?>
2
- <!DOCTYPE html
3
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
-
6
- <html>
7
- <head>
8
- <title>init (Reap::TestExt)</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
- </head>
12
- <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/reap/task/testext.rb, line 20</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">init</span>
15
- <span class="ruby-ivar">@dir</span> <span class="ruby-operator">||=</span> <span class="ruby-value str">'test'</span>
16
- <span class="ruby-ivar">@files</span> <span class="ruby-operator">||=</span> [ <span class="ruby-value str">'lib/**/*.rb'</span> ]
17
- <span class="ruby-comment cmt">#@options</span>
18
- <span class="ruby-keyword kw">end</span></pre>
19
- </body>
20
- </html>
@@ -1,49 +0,0 @@
1
- <?xml version="1.0" encoding="iso-8859-1"?>
2
- <!DOCTYPE html
3
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
-
6
- <html>
7
- <head>
8
- <title>run (Reap::TestExt)</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
- </head>
12
- <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/reap/task/testext.rb, line 26</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">run</span>
15
- <span class="ruby-comment cmt">#test_libs = @libs.join(':')</span>
16
- <span class="ruby-identifier">files</span> = <span class="ruby-constant">FileList</span>.<span class="ruby-identifier">new</span>
17
- <span class="ruby-identifier">files</span>.<span class="ruby-identifier">include</span>(<span class="ruby-operator">*</span><span class="ruby-ivar">@files</span>)
18
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">files</span>.<span class="ruby-identifier">empty?</span>
19
- <span class="ruby-identifier">puts</span> <span class="ruby-value str">&quot;No script files found.&quot;</span>
20
- <span class="ruby-keyword kw">return</span>
21
- <span class="ruby-keyword kw">end</span>
22
- <span class="ruby-identifier">print</span> <span class="ruby-value str">&quot;Reap is scanning and copying embedded tests...&quot;</span>
23
-
24
- <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@dir</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">empty?</span>
25
- <span class="ruby-identifier">puts</span> <span class="ruby-value str">&quot;Test directory must be specified.&quot;</span>
26
- <span class="ruby-keyword kw">return</span>
27
- <span class="ruby-keyword kw">end</span>
28
-
29
- <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span>(<span class="ruby-ivar">@dir</span>)
30
- <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;Test directory doesn't exist: #{File.expand_path( @dir )}&quot;</span>
31
- <span class="ruby-keyword kw">return</span>
32
- <span class="ruby-keyword kw">end</span>
33
-
34
- <span class="ruby-identifier">files</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">file</span><span class="ruby-operator">|</span>
35
- <span class="ruby-identifier">$stdout</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">'.'</span>; <span class="ruby-identifier">$stdout</span>.<span class="ruby-identifier">flush</span>
36
- <span class="ruby-identifier">testing</span> = <span class="ruby-identifier">extract</span>( <span class="ruby-identifier">file</span> )
37
- <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">testing</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">empty?</span>
38
- <span class="ruby-identifier">complete_test</span> = <span class="ruby-identifier">create</span>( <span class="ruby-identifier">testing</span>, <span class="ruby-identifier">file</span> )
39
- <span class="ruby-identifier">fp</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-ivar">@dir</span>,<span class="ruby-identifier">file</span>)
40
- <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span>( <span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>( <span class="ruby-identifier">fp</span> ) )
41
- <span class="ruby-constant">FileUtils</span>.<span class="ruby-identifier">mkdir_p</span>( <span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>(<span class="ruby-identifier">fp</span>) )
42
- <span class="ruby-keyword kw">end</span>
43
- <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>( <span class="ruby-identifier">fp</span>, <span class="ruby-value str">&quot;w&quot;</span> ) { <span class="ruby-operator">|</span><span class="ruby-identifier">fw</span><span class="ruby-operator">|</span> <span class="ruby-identifier">fw</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">complete_test</span> }
44
- <span class="ruby-keyword kw">end</span>
45
- }
46
- <span class="ruby-identifier">puts</span> <span class="ruby-value str">&quot;done.&quot;</span>
47
- <span class="ruby-keyword kw">end</span></pre>
48
- </body>
49
- </html>
@@ -1,34 +0,0 @@
1
- <?xml version="1.0" encoding="iso-8859-1"?>
2
- <!DOCTYPE html
3
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
-
6
- <html>
7
- <head>
8
- <title>extract (Reap::TestExt)</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
- </head>
12
- <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/reap/task/testext.rb, line 61</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">extract</span>( <span class="ruby-identifier">file</span> )
15
- <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">file?</span>( <span class="ruby-identifier">file</span> )
16
- <span class="ruby-identifier">tests</span> = <span class="ruby-value str">&quot;&quot;</span>; <span class="ruby-identifier">inside</span> = <span class="ruby-keyword kw">false</span>
17
- <span class="ruby-identifier">fstr</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">read</span>( <span class="ruby-identifier">file</span> )
18
- <span class="ruby-identifier">fstr</span>.<span class="ruby-identifier">split</span>(<span class="ruby-regexp re">/\n/</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">l</span><span class="ruby-operator">|</span>
19
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">l</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^=[ ]*begin[ ]*testing/</span>
20
- <span class="ruby-identifier">tests</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;\n&quot;</span>
21
- <span class="ruby-identifier">inside</span> = <span class="ruby-keyword kw">true</span>
22
- <span class="ruby-keyword kw">next</span>
23
- <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">inside</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">l</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^=[ ]*end/</span>
24
- <span class="ruby-identifier">inside</span> = <span class="ruby-keyword kw">false</span>
25
- <span class="ruby-keyword kw">next</span>
26
- <span class="ruby-keyword kw">end</span>
27
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">inside</span>
28
- <span class="ruby-identifier">tests</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">l</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;\n&quot;</span>
29
- <span class="ruby-keyword kw">end</span>
30
- <span class="ruby-keyword kw">end</span>
31
- <span class="ruby-identifier">tests</span>
32
- <span class="ruby-keyword kw">end</span></pre>
33
- </body>
34
- </html>
@@ -1,27 +0,0 @@
1
- <?xml version="1.0" encoding="iso-8859-1"?>
2
- <!DOCTYPE html
3
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
-
6
- <html>
7
- <head>
8
- <title>create (Reap::TestExt)</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
- </head>
12
- <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/reap/task/testext.rb, line 81</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">create</span>( <span class="ruby-identifier">testing</span>, <span class="ruby-identifier">file</span> )
15
- <span class="ruby-identifier">fp</span> = <span class="ruby-identifier">file</span>.<span class="ruby-identifier">split</span>(<span class="ruby-regexp re">/[\/]/</span>)
16
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">fp</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'lib'</span>
17
- <span class="ruby-identifier">reqf</span> = <span class="ruby-node">&quot;require '#{fp[1..-1].join('/')}'&quot;</span>
18
- <span class="ruby-keyword kw">else</span>
19
- <span class="ruby-identifier">reqf</span> = <span class="ruby-value str">''</span>
20
- <span class="ruby-keyword kw">end</span>
21
-
22
- <span class="ruby-identifier">teststr</span> = <span class="ruby-value str">&quot;`# _____ _\n`# |_ _|__ ___| |_\n`# | |/ _ \\\\/ __| __|\n`# | | __/\\\\__ \\\\ |_\n`# |_|\\\\___||___/\\\\__|\n`#\n`# for \#{file}\n`#\n`# Extracted \#{Time.now}\n`# Unit Tools Reap Test Extractor\n`#\n`\n`\#{reqf}\n`\n&quot;</span>.<span class="ruby-identifier">margin</span>
23
- <span class="ruby-identifier">teststr</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">testing</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;\n&quot;</span>
24
- <span class="ruby-identifier">teststr</span>
25
- <span class="ruby-keyword kw">end</span></pre>
26
- </body>
27
- </html>