docgenerator 1.2.1 → 2.0.0

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 (209) hide show
  1. data/build_test_and_doc.rb +505 -0
  2. data/examples/creole_example.rb +82 -0
  3. data/examples/creole_example_footnote.rb +67 -0
  4. data/examples/creole_example_placeholder.rb +77 -0
  5. data/examples/creole_example_rail.rb +154 -0
  6. data/examples/creole_example_rubycode.rb +144 -0
  7. data/examples/creole_example_struktex.rb +169 -0
  8. data/examples/docgenerator_example.rb +1 -1
  9. data/examples/docgenerator_example_footnote.rb +1 -0
  10. data/examples/docgenerator_example_list.rb +3 -0
  11. data/examples/docgenerator_example_restrictions.rb +1 -1
  12. data/examples/docgenerator_example_tabular.rb +1 -1
  13. data/examples/docgenerator_example_tripfalls.rb +2 -2
  14. data/examples/results/readme +2 -1
  15. data/examples/wiki2docgenerator_example.rb +61 -32
  16. data/lib/creole/creole2doc.rb +57 -58
  17. data/lib/creole/creole_characters.rb +56 -0
  18. data/lib/creole/creole_inclusion_and_plugins.rb +59 -284
  19. data/lib/creole/creole_inclusions.rb +142 -0
  20. data/lib/creole/creole_placeholder.rb +57 -23
  21. data/lib/creole/creole_plugins.rb +198 -0
  22. data/lib/creole/creole_tabular.rb +16 -8
  23. data/lib/creole/plugins/rail.rb +182 -0
  24. data/lib/creole/plugins/rubycode4creole.rb +136 -0
  25. data/lib/creole/plugins/struktex.rb +59 -0
  26. data/lib/creole/plugins/todonotes.rb +70 -0
  27. data/lib/docgenerator.rb +161 -71
  28. data/lib/docgenerator/attribute.rb +189 -156
  29. data/lib/docgenerator/characters.rb +824 -267
  30. data/lib/docgenerator/compatibility_v1.rb +249 -0
  31. data/lib/docgenerator/css.rb +53 -32
  32. data/lib/docgenerator/document.rb +119 -56
  33. data/lib/docgenerator/element.rb +304 -351
  34. data/lib/docgenerator/element_meta.rb +303 -0
  35. data/lib/docgenerator/elements.rb +1112 -481
  36. data/lib/docgenerator/environments.rb +153 -62
  37. data/lib/docgenerator/footnote.rb +30 -9
  38. data/lib/docgenerator/lists.rb +71 -47
  39. data/lib/docgenerator/packages/attachfile.rb +136 -0
  40. data/lib/{packages/docgenerator_caption.rb → docgenerator/packages/caption.rb} +28 -19
  41. data/lib/docgenerator/packages/hyperref.rb +194 -0
  42. data/lib/docgenerator/packages/listings.rb +179 -0
  43. data/lib/docgenerator/packages/pdfpages.rb +43 -0
  44. data/lib/docgenerator/packages/rubycode4doc.rb +227 -0
  45. data/lib/{packages/docgenerator_scrlettr2.rb → docgenerator/packages/scrlettr2.rb} +25 -16
  46. data/lib/docgenerator/packages/scrpage2.rb +410 -0
  47. data/lib/docgenerator/packages/struktex.rb +447 -0
  48. data/lib/docgenerator/packages/todonotes.rb +85 -0
  49. data/lib/{packages/docgenerator_url.rb → docgenerator/packages/url.rb} +7 -6
  50. data/lib/docgenerator/sections.rb +257 -83
  51. data/lib/docgenerator/standard.rb +19 -11
  52. data/lib/docgenerator/tabular.rb +234 -118
  53. data/lib/{templates → docgenerator/templates}/docgenerator_template.rb +52 -44
  54. data/lib/{templates → docgenerator/templates}/docgenerator_template.yaml +0 -0
  55. data/lib/{templates → docgenerator/templates}/docgenerator_template_css.rb +22 -16
  56. data/lib/wiki2doc/plugins/rubycode4wiki.rb +53 -0
  57. data/lib/wiki2doc/plugins/struktex.rb +12 -0
  58. data/lib/wiki2doc/wiki2docgenerator.rb +39 -38
  59. data/lib/wiki2doc/wikimedia_document.rb +24 -0
  60. data/manpage_elements.rb +10411 -0
  61. data/readme.rd +34 -24
  62. data/unittest/creole_testtext.creole +11 -0
  63. data/unittest/expected/test_document_usepackage_undefined.log +2 -2
  64. data/unittest/expected/test_runtex.stdout +0 -1
  65. data/unittest/expected/test_runtex_2.stdout +0 -1
  66. data/unittest/expected/toc_css.css +3 -2
  67. data/unittest/expected_creole/test_creole_characters_all.creole +28 -0
  68. data/unittest/expected_creole/test_creole_characters_all.html +15 -15
  69. data/unittest/expected_creole/test_creole_characters_all.latex +15 -15
  70. data/unittest/expected_creole/test_creole_footnotes_groupid.html +15 -0
  71. data/unittest/expected_creole/test_creole_links_file.html +2 -2
  72. data/unittest/expected_creole/test_creole_links_file.latex +2 -2
  73. data/unittest/expected_creole/test_creole_links_file.text +2 -2
  74. data/unittest/expected_creole/test_creole_picture_link.html +1 -1
  75. data/unittest/expected_creole_rail/test_rail_creole_object.tex +33 -0
  76. data/unittest/expected_creole_rail/test_rail_creole_placeholder.tex +40 -0
  77. data/unittest/expected_rubycode4doc/creole_complete.html +26 -0
  78. data/unittest/expected_rubycode4doc/creole_complete.tex +40 -0
  79. data/unittest/expected_rubycode4doc/creole_in_tab.html +4 -0
  80. data/unittest/expected_rubycode4doc/creole_in_tab.tex +6 -0
  81. data/unittest/expected_rubycode4doc/creole_inline_ruby.html +7 -0
  82. data/unittest/expected_rubycode4doc/creole_output.html +2 -0
  83. data/unittest/expected_rubycode4doc/creole_output.tex +4 -0
  84. data/unittest/expected_rubycode4doc/creole_rubycode.html +1 -0
  85. data/unittest/expected_rubycode4doc/creole_rubycode.tex +3 -0
  86. data/unittest/expected_rubycode4doc/creole_rubycode_evaluated.html +1 -0
  87. data/unittest/expected_rubycode4doc/creole_rubycode_evaluated.tex +3 -0
  88. data/unittest/expected_rubycode4doc/creole_rubycode_evaluated_listings.html +3 -0
  89. data/unittest/expected_rubycode4doc/creole_rubycode_evaluated_listings.tex +5 -0
  90. data/unittest/expected_rubycode4doc/wiki_1.html +8 -0
  91. data/unittest/expected_rubycode4doc/wiki_2.html +8 -0
  92. data/unittest/expected_rubycode4doc/wiki_3.html +9 -0
  93. data/unittest/expected_rubycode4doc/wiki_immediate_1.html +5 -0
  94. data/unittest/expected_rubycode4doc/wiki_immediate_2.html +5 -0
  95. data/unittest/expected_rubycode4doc/wiki_immediate_3.html +8 -0
  96. data/unittest/expected_rubycode4doc/wiki_immediate_full.html +21 -0
  97. data/unittest/expected_struktex/test_struktex_krug.creole +15 -0
  98. data/unittest/expected_struktex/test_struktex_krug.tex +19 -0
  99. data/unittest/expected_struktex/test_struktex_krug.wiki +15 -0
  100. data/unittest/expected_struktex/test_struktex_statement.creole +7 -0
  101. data/unittest/expected_struktex/test_struktex_statement.tex +9 -0
  102. data/unittest/expected_struktex/test_struktex_statement.wiki +7 -0
  103. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki.html +0 -0
  104. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki.latex +0 -0
  105. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki.text +0 -0
  106. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki.wiki +0 -0
  107. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_description.html +1 -1
  108. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_description.latex +1 -1
  109. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_description.text +1 -1
  110. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_description.wiki +1 -1
  111. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_footnote.html +0 -0
  112. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_footnote.latex +0 -0
  113. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_footnote.text +0 -0
  114. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_footnote.wiki +0 -0
  115. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_footnote_2.html +0 -0
  116. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_footnote_groupid.html +0 -0
  117. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_html_code.html +0 -0
  118. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_html_code.latex +0 -0
  119. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_html_code.text +0 -0
  120. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_html_code.wiki +0 -0
  121. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_inline.html +0 -0
  122. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_inline.latex +0 -0
  123. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_inline.text +0 -0
  124. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_inline.wiki +0 -0
  125. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_label.html +0 -0
  126. data/unittest/expected_wikimedia/test_wiki_link.html +8 -0
  127. data/unittest/expected_wikimedia/test_wiki_link.latex +17 -0
  128. data/unittest/expected_wikimedia/test_wiki_link.wiki +11 -0
  129. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_list_ol.html +0 -0
  130. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_list_ol.latex +0 -0
  131. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_list_ol.text +0 -0
  132. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_list_ol.wiki +0 -0
  133. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_list_ol_after_ul.html +0 -0
  134. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_list_ol_after_ul.latex +0 -0
  135. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_list_ol_after_ul.text +0 -0
  136. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_list_ol_after_ul.wiki +0 -0
  137. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_list_ol_ul.html +0 -0
  138. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_list_ol_ul.latex +0 -0
  139. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_list_ol_ul.text +0 -0
  140. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_list_ol_ul.wiki +0 -0
  141. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_list_ul.html +0 -0
  142. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_list_ul.latex +0 -0
  143. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_list_ul.text +0 -0
  144. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_list_ul.wiki +0 -0
  145. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_list_ul_too_much.html +0 -0
  146. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_list_ul_too_much.latex +0 -0
  147. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_list_ul_too_much.text +0 -0
  148. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_list_ul_too_much.wiki +0 -0
  149. data/unittest/expected_wikimedia/test_wiki_picture.html +55 -0
  150. data/unittest/expected_wikimedia/test_wiki_picture.latex +76 -0
  151. data/unittest/expected_wikimedia/test_wiki_picture_thumb.html +5 -0
  152. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_tab1.html +0 -0
  153. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_tab1.latex +0 -0
  154. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_tab1.wiki +0 -0
  155. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_textformatting.html +0 -0
  156. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_textformatting.latex +0 -0
  157. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_textformatting.text +0 -0
  158. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_textformatting.wiki +0 -0
  159. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_toc.html +0 -0
  160. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_toc.latex +0 -0
  161. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_toc.text +0 -0
  162. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_toc.wiki +0 -0
  163. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_ul_multiple_line.html +0 -0
  164. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_ul_multiple_line.latex +0 -0
  165. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_ul_multiple_line.text +0 -0
  166. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_ul_multiple_line.wiki +0 -0
  167. data/unittest/{unittest_creole2doc.rb → unittest_creole.rb} +385 -476
  168. data/unittest/unittest_creole_placeholders.rb +272 -0
  169. data/unittest/unittest_creole_plugin_rail.rb +147 -0
  170. data/unittest/unittest_docgenerator.rb +206 -332
  171. data/unittest/unittest_docgenerator_characters.rb +650 -0
  172. data/unittest/unittest_docgenerator_runtex.rb +48 -20
  173. data/unittest/unittest_packages_struktex.rb +187 -0
  174. data/unittest/unittest_rubycode4doc.rb +275 -0
  175. data/unittest/unittest_wikimedia.rb +479 -0
  176. metadata +245 -172
  177. data/examples/results_expected/docgenerator_example.html +0 -39
  178. data/examples/results_expected/docgenerator_example.pdf +0 -0
  179. data/examples/results_expected/docgenerator_example.tex +0 -56
  180. data/examples/results_expected/docgenerator_example_footnote.html +0 -40
  181. data/examples/results_expected/docgenerator_example_footnote.pdf +0 -0
  182. data/examples/results_expected/docgenerator_example_footnote.tex +0 -50
  183. data/examples/results_expected/docgenerator_example_list.html +0 -18
  184. data/examples/results_expected/docgenerator_example_list.pdf +0 -0
  185. data/examples/results_expected/docgenerator_example_list.tex +0 -46
  186. data/examples/results_expected/docgenerator_example_restrictions.html +0 -22
  187. data/examples/results_expected/docgenerator_example_restrictions.pdf +0 -0
  188. data/examples/results_expected/docgenerator_example_restrictions.tex +0 -31
  189. data/examples/results_expected/docgenerator_example_tabular.html +0 -37
  190. data/examples/results_expected/docgenerator_example_tabular.pdf +0 -0
  191. data/examples/results_expected/docgenerator_example_tabular.tex +0 -41
  192. data/examples/results_expected/docgenerator_example_tripfalls.html +0 -27
  193. data/examples/results_expected/docgenerator_example_tripfalls.pdf +0 -0
  194. data/examples/results_expected/docgenerator_example_tripfalls.tex +0 -31
  195. data/lib/packages/docgenerator_attachfile.rb +0 -71
  196. data/lib/packages/docgenerator_hyperref.rb +0 -109
  197. data/lib/packages/docgenerator_listings.rb +0 -103
  198. data/lib/packages/docgenerator_pdfpages.rb +0 -24
  199. data/lib/packages/docgenerator_scrpage2.rb +0 -172
  200. data/self_docgenerator.rb +0 -163
  201. data/unittest/expected_wiki/test_wiki_link.html +0 -8
  202. data/unittest/expected_wiki/test_wiki_link.latex +0 -17
  203. data/unittest/expected_wiki/test_wiki_link.wiki +0 -11
  204. data/unittest/expected_wiki/test_wiki_picture.html +0 -55
  205. data/unittest/expected_wiki/test_wiki_picture.latex +0 -76
  206. data/unittest/expected_wiki/test_wiki_picture_thumb.html +0 -5
  207. data/unittest/test_rakefile_docgenerator.rb +0 -43
  208. data/unittest/unittest_versions.rb +0 -44
  209. data/unittest/unittest_wiki2doc.rb +0 -464
@@ -6,27 +6,64 @@ if $0 == __FILE__
6
6
  $:.unshift("../lib")
7
7
  end
8
8
  require 'docgenerator'
9
+ include Docgenerator
10
+
9
11
  require 'rake4latex'
10
12
 
11
- $log = Log4r::Logger.new('Unittest docgenerator', Log4r::ERROR )
13
+ =begin rdoc
14
+ Define a new outputter to catch data into an array
15
+ =end
16
+ class ArrayOutputter < Log4r::StdoutOutputter
17
+ =begin rdoc
18
+ Collect messages in array.
19
+ =end
20
+ def write(message)
21
+ @messages ||= [] #create with first call
22
+ @messages << message
23
+ end
24
+ =begin rdoc
25
+ Clear message array and return messages
26
+ =end
27
+ def flush
28
+ @messages ||= [] #create with first call
29
+ messages = @messages.dup
30
+ @messages.clear
31
+ messages
32
+ end
33
+ end #ArrayOutputter
12
34
 
13
35
 
14
36
  class Test_document_runtex < Test::Unit::TestCase
15
- def test_document()
37
+ def clean_examples()
38
+ %w{test_runtex test_runtex_2}.each{|filename|
39
+ %w{tex pdf aux log out}.each{|ext|
40
+ File.delete(filename.ext(ext)) if File.exist?(filename.ext(ext))
41
+ }
42
+ }
43
+ end #clean_examples()
44
+ def setup()
45
+ clean_examples
46
+
47
+ @log = Log4r::Logger.new('Doc', Log4r::WARN )
48
+ @log.outputters = ArrayOutputter.new('log_xxx')
49
+
50
+ end
51
+ def teardown; clean_examples; end
52
+ def test_runtex()
16
53
  doc = Document.new(
17
54
  :title => 'Testdokument',
18
55
  :keywords => 'Test',
19
56
  :description => 'This is a test for a Document, generated by docgenerator.rb',
20
57
  :author => 'docgenerator.rb',
21
- :maketitle => true
58
+ :maketitle => true,
59
+ :log => @log
22
60
  )
23
61
  doc.body << element(:p,{}, 'This is some content' )
24
62
  #~ doc.save('test_document.html')
25
63
  assert_instance_of( Log4r::Logger, doc.log)
26
64
  assert_not_same( DOCGENERATOR_LOGGER, doc.log)
27
65
 
28
- filename = "test_runtex.tex"
29
- #~ doc.runtex = true
66
+ filename = "#{__method__}.tex"
30
67
 
31
68
  assert_equal(false, File.exist?(filename))
32
69
  assert_equal(false, File.exist?(filename.ext('pdf')))
@@ -34,33 +71,29 @@ class Test_document_runtex < Test::Unit::TestCase
34
71
  assert_equal_filecontent( "expected/test_runtex.stdout",
35
72
  catch_stdout(Proc.new{ doc.save(filename, :runtex => [:statistic]) } )
36
73
  )
74
+ assert_equal([" INFO Doc: Save changed #{__method__}.tex\n"], @log.outputters.first.flush)
37
75
 
38
76
  assert_equal(true, File.exist?(filename))
39
77
  assert_equal(true, File.exist?(filename.ext('pdf')))
40
78
 
41
- File.delete(filename)
42
- File.delete(filename.ext('pdf'))
43
- File.delete(filename.ext('aux'))
44
- File.delete(filename.ext('log'))
45
- File.delete(filename.ext('out'))
46
-
47
79
  end
48
80
 
49
81
  #test with doc.runtex = ...
50
- def test_document_2()
82
+ def test_runtex_2()
51
83
  doc = Document.new(
52
84
  :title => 'Testdokument',
53
85
  :keywords => 'Test',
54
86
  :description => 'This is a test for a Document, generated by docgenerator.rb',
55
87
  :author => 'docgenerator.rb',
56
- :maketitle => true
88
+ :maketitle => true,
89
+ :log => @log
57
90
  )
58
91
  doc.body << element(:p,{}, 'This is some content' )
59
92
  #~ doc.save('test_document.html')
60
93
  assert_instance_of( Log4r::Logger, doc.log)
61
94
  assert_not_same( DOCGENERATOR_LOGGER, doc.log)
62
95
 
63
- filename = "test_runtex_2.tex"
96
+ filename = "#{__method__}.tex"
64
97
  doc.runtex = [:statistic]
65
98
 
66
99
  assert_equal(false, File.exist?(filename))
@@ -69,15 +102,10 @@ class Test_document_runtex < Test::Unit::TestCase
69
102
  assert_equal_filecontent( "expected/test_runtex_2.stdout",
70
103
  catch_stdout(Proc.new{ doc.save(filename) } )
71
104
  )
105
+ assert_equal([" INFO Doc: Save changed #{__method__}.tex\n"], @log.outputters.first.flush)
72
106
 
73
107
  assert_equal(true, File.exist?(filename))
74
108
  assert_equal(true, File.exist?(filename.ext('pdf')))
75
109
 
76
- File.delete(filename)
77
- File.delete(filename.ext('pdf'))
78
- File.delete(filename.ext('aux'))
79
- File.delete(filename.ext('log'))
80
- File.delete(filename.ext('out'))
81
-
82
110
  end
83
111
  end
@@ -0,0 +1,187 @@
1
+ #
2
+ #Tests for creole/plugins//struktex.rb
3
+ #
4
+ #Check after __END__ for missing tests.
5
+ #
6
+
7
+ if $0 == __FILE__
8
+ $:.unshift("../lib")
9
+ end
10
+
11
+ gem 'test-unit'
12
+ require 'test/unit'
13
+ require 'more_unit_test/assert_equal_filecontent.rb'
14
+
15
+ require 'creole/creole2doc'
16
+ require 'creole/plugins/struktex.rb'
17
+ require 'wiki2doc/wiki2docgenerator'
18
+ require 'wiki2doc/plugins/struktex.rb'
19
+
20
+
21
+ #~ DOCGENERATOR_LOGGER.level = Log4r::DEBUG
22
+ #Avoid warnings about missing logger in to_doc
23
+ OPT = { :log => Docgenerator::DOCGENERATOR_DEFAULT_LOGGER } unless defined? OPT
24
+
25
+ #~ $log = Log4r::Logger.new( 'test struktex', Log4r::WARN )
26
+ #~ $log.outputters = Log4r::StdoutOutputter.new('test struktex')
27
+ #~ $log.level = Log4r::INFO
28
+ #~ $log.info("Remark: Known errors/problems and missing checks are logged.")
29
+ #~ DOCGENERATOR_LOGGER.level = Log4r::DEBUG
30
+ #~ DOCGENERATOR_LOGGER.level = Log4r::INFO
31
+ #~ DOCGENERATOR_LOGGER.level = Log4r::WARN
32
+ #~ DOCGENERATOR_LOGGER.level = Log4r::ERROR
33
+
34
+ #~ include Log4r
35
+
36
+ class Test_struktex < Test::Unit::TestCase
37
+
38
+ def test_struktex_krug()
39
+ struct = Docgenerator::Packages::Struktex::Structogramm.new('Krug', 120, 45, <<-cmd
40
+ WHILE Krug nicht zerbrochen
41
+ Krug geht zum Brunnen
42
+ ENDWHILE
43
+ Qualitaetspruefung
44
+ -> Krug Testgut
45
+ <- res_1 Pruefergebnis
46
+ IF Krug zerbrochen
47
+ THEN
48
+ Schade
49
+ ELSE
50
+ Stabiler Krug
51
+ ENDIF
52
+ cmd
53
+ )
54
+ assert_equal_filecontent( "expected_struktex/#{__method__}.tex", struct.to_doc(:latex, OPT))
55
+ #~ $log.warn("No test krug.construct") if $log.warn?
56
+ assert_equal_filecontent( "expected_struktex/#{__method__}.wiki", struct.to_doc(:wiki, OPT))
57
+ #~ $log.warn("No test krug.construct") if $log.warn?
58
+ assert_equal_filecontent( "expected_struktex/#{__method__}.creole", struct.to_doc(:creole, OPT))
59
+ end
60
+
61
+ def test_struktex_statement()
62
+ struct = Docgenerator::Packages::Struktex::Structogramm.new('Simple Statements', 120, 30, <<-cmd
63
+ Statement
64
+ => Call procedure
65
+ <> Return value
66
+ <= Exit with return value
67
+ cmd
68
+ )
69
+ assert_equal_filecontent( "expected_struktex/#{__method__}.tex", struct.to_doc(:latex, OPT))
70
+
71
+ #~ puts struct.to_latex[-10..-1].inspect
72
+ #~ puts struct.to_doc(:latex)[-10..-1].inspect
73
+ #~ assert_equal( struct.to_latex, struct.to_doc(:latex))
74
+ assert_equal_filecontent( "expected_struktex/#{__method__}.wiki", struct.to_doc(:wiki, OPT))
75
+ assert_equal_filecontent( "expected_struktex/#{__method__}.creole", struct.to_doc(:creole, OPT))
76
+ end
77
+ end #Test_struktex
78
+
79
+
80
+ class Test_struktex_creole < Test::Unit::TestCase
81
+ def test_struktex_collector()
82
+ assert_equal( Docgenerator::Creole::Creole_structogramm, Docgenerator::Creole::Placeholders['structogramm'])
83
+ assert_equal( Docgenerator::Creole::Creole_structogramm, Docgenerator::Creole::Placeholders::Collection['structogramm'])
84
+ #~ assert_kind_of( Placeholder, Creole::Placeholders['structogramm'])
85
+ end
86
+ end #Test_struktex
87
+
88
+
89
+
90
+ def newtest(name, withclass = false)
91
+ code = []
92
+ code << "class Test_struktex < Test::Unit::TestCase" if withclass
93
+ code << <<-code
94
+ def test_struktex_#{name}()
95
+ struct = ''
96
+ assert_equal_filecontent( "expected_struktex/struktex_#{name}.tex", struct.to_doc(:latex))
97
+ #~ $log.warn("No test #{name}.construct") if $log.warn?
98
+ assert_equal_filecontent( "expected_struktex/struktex_#{name}.wiki", struct.to_doc(:wiki))
99
+ #~ $log.warn("No test #{name}.construct") if $log.warn?
100
+ assert_equal_filecontent( "expected_struktex/struktex_#{name}.creole", struct.to_doc(:creole))
101
+ end
102
+ code
103
+ code << "end #Test_struktex" if withclass
104
+ puts code.join("\n")
105
+ end
106
+
107
+ #~ newtest( 'krug')
108
+
109
+ __END__
110
+
111
+ ===Declarations===
112
+ With declarations you can define interfaces of sub-routines.
113
+ This declarations are part of the command
114
+ >>>structogramm{Declarations/Interfaces;120;25}
115
+ Statement
116
+ -> field1 description
117
+ <- field2 description
118
+ <-> field3 description
119
+ <<<
120
+
121
+ ===IF-Statement===
122
+ IF Condition
123
+ THEN size text
124
+ ELSE size text
125
+ ENDIF
126
+ >>>structogramm{Test f�r IF;120;40}
127
+ IF Bedingung?
128
+ THEN 6 Ja
129
+ IF Andere Frage?
130
+ THEN
131
+ <= Ergebnis
132
+ ELSE
133
+ <= Anderes Ergebnis
134
+ ENDIF
135
+ ELSE 6 Nein
136
+ IF Andere Frage?
137
+ THEN 4
138
+ <= Ergebnis
139
+ ELSE 5
140
+ <= Anderes Ergebnis
141
+ ENDIF
142
+ ENDIF
143
+ <<<
144
+
145
+ ===CASE-statements===
146
+ The first number after CASE defines the degree of the case-line.
147
+
148
+ The WHEN clause has an optional parameter:
149
+ *c centered
150
+ *r right-aligned
151
+ >>>structogramm{CASE Statements;120;40}
152
+ CASE 5 variable
153
+ WHEN value1
154
+ Statement 1-1
155
+ Statement 1-2
156
+ WHEN[r] value2
157
+ Statement 2-1
158
+ Statement 2-2
159
+ WHEN[c] value3
160
+ Statement 3-1
161
+ Statement 3-2
162
+ WHEN value4
163
+ Statement 4-1
164
+ Statement 4-2
165
+ ENDCASE
166
+ <<<
167
+ ===While-statements===
168
+ >>>structogramm{While Statements;120;15}
169
+ WHILE Condition
170
+ Statement
171
+ ENDWHILE
172
+ <<<
173
+
174
+ ===Repeat-Until-statements===
175
+ >>>structogramm{Repeat-Until Statements;120;15}
176
+ REPEAT
177
+ Statement
178
+ UNTIL Condition
179
+ <<<
180
+
181
+ ===FOREVER-Loop-statements===
182
+ >>>structogramm{FOREVER-Loop Statements;120;30}
183
+ FOREVER
184
+ Statement
185
+ <= Exit
186
+ ENDFOREVER
187
+ <<<
@@ -0,0 +1,275 @@
1
+ #~ require '../test_docgenerator.rb'
2
+ require 'test/unit'
3
+ require 'more_unit_test/assert_equal_filecontent.rb'
4
+
5
+ if $0 == __FILE__
6
+ $:.unshift("../lib")
7
+ end
8
+
9
+ require 'docgenerator/packages/rubycode4doc'
10
+ require 'creole/plugins/rubycode4creole'
11
+ require 'wiki2doc/plugins/rubycode4wiki'
12
+
13
+ #~ DOCGENERATOR_LOGGER.level = Log4r::DEBUG
14
+ #Avoid warnings about missing logger in to_doc
15
+ OPT = { :log => Docgenerator::DOCGENERATOR_DEFAULT_LOGGER } unless defined? OPT
16
+
17
+ #
18
+ #
19
+ #
20
+ class Test_rubycode4doc < Test::Unit::TestCase
21
+ def test_codetest()
22
+ testcode_sourcecode = <<-CODE
23
+ a = 5
24
+ b = a * 5
25
+ puts b
26
+ puts b + 3
27
+ CODE
28
+
29
+ testcode_evaluated = <<-CODE
30
+ a = 5 # -> 5
31
+ b = a * 5 # -> 25
32
+ puts b # => "25\\n"
33
+ puts b + 3 # => "28\\n"
34
+ CODE
35
+ testcode_output = <<-CODE
36
+
37
+
38
+ 25
39
+ 28
40
+ CODE
41
+
42
+ codetest = Docgenerator::Rubycode::CodeTest.new('codetest', testcode_sourcecode )
43
+
44
+ assert_equal(testcode_sourcecode.chomp, codetest.sourcecode)
45
+ assert_equal(testcode_evaluated.chomp, codetest.code_evaluation)
46
+ assert_equal(testcode_output.chomp, codetest.output)
47
+
48
+ #Extend the code
49
+ codetest << <<-TEST
50
+ 3.times{|i|
51
+ puts i
52
+ }
53
+ TEST
54
+ testcode_sourcecode << <<-CODE
55
+ 3.times{|i|
56
+ puts i
57
+ }
58
+ CODE
59
+ testcode_evaluated << <<-CODE
60
+ 3.times{|i|
61
+ puts i
62
+ } # -> 3 => "0\\n1\\n2\\n"
63
+ CODE
64
+ testcode_output << <<-CODE
65
+ 0
66
+ 1
67
+ 2
68
+ CODE
69
+
70
+ assert_equal(testcode_sourcecode.chomp, codetest.sourcecode)
71
+ #15 was defined in original settings
72
+ assert_equal(testcode_evaluated.chomp, codetest.code_evaluation(15))
73
+ assert_equal(testcode_output.chomp, codetest.output)
74
+
75
+ assert_instance_of(Docgenerator::Tables::Tabular, codetest.code_in_tab)
76
+ assert_instance_of(Docgenerator::Listings::Lstlisting, codetest.code_evaluation_lstlisting)
77
+
78
+ end #test_codetest()
79
+ end
80
+
81
+
82
+ class Test_rubycode4doc_wiki < Test::Unit::TestCase
83
+ def test_wikitest()
84
+
85
+ Docgenerator::Rubycode::CodeTest.new('codetest_wiki', <<-CODE
86
+ a = 5
87
+ b = a * 5
88
+ puts b
89
+ puts b + 3
90
+ CODE
91
+ )
92
+
93
+ wiki_1 = Docgenerator::Wikimedia::Rubywiki.new( :content => <<wiki
94
+ ===Originalcoding===
95
+ {{rubycode|codetest_wiki}}
96
+ wiki
97
+ )
98
+ wiki_2 = Docgenerator::Wikimedia::Rubywiki.new( :content => <<wiki
99
+ ===Executed Coding===
100
+ {{rubycode_with_evaluation|codetest_wiki}}
101
+ wiki
102
+ )
103
+ wiki_3 = Docgenerator::Wikimedia::Rubywiki.new( :content => <<wiki
104
+ ===Executed Coding in einer Tabelle===
105
+ {{rubycode_in_tab|codetest_wiki}}
106
+ wiki
107
+ )
108
+
109
+ assert_equal_filecontent( "expected_rubycode4doc/wiki_1.html", wiki_1.to_html(OPT) )
110
+ assert_equal_filecontent( "expected_rubycode4doc/wiki_2.html", wiki_2.to_html(OPT) )
111
+ assert_equal_filecontent( "expected_rubycode4doc/wiki_3.html", wiki_3.to_html(OPT) )
112
+ end #test_wikitest()
113
+
114
+
115
+ def test_wikitest_immediate()
116
+ #Code definieren (Kein output)
117
+ #Code wird unter dem Namen code_in_wiki abgelegt.
118
+ wiki = Docgenerator::Wikimedia::Rubywiki.new( :content => <<wiki
119
+ >>>rubycode{code_in_wiki}
120
+ 1.upto(3){|i| puts i }
121
+ <<<
122
+ wiki
123
+ )
124
+ #Verwenden von code_in_wiki
125
+ wiki_1 = Docgenerator::Wikimedia::Rubywiki.new( :content => <<wiki
126
+ ===Originalcoding===
127
+ {{rubycode|code_in_wiki}}
128
+ wiki
129
+ )
130
+ wiki_2 = Docgenerator::Wikimedia::Rubywiki.new( :content => <<wiki
131
+ ===Executed Coding===
132
+ {{rubycode_with_evaluation|code_in_wiki}}
133
+ wiki
134
+ )
135
+ wiki_3 = Docgenerator::Wikimedia::Rubywiki.new( :content => <<wiki
136
+ ===Executed Coding in a tabular===
137
+ {{rubycode_in_tab|code_in_wiki}}
138
+ wiki
139
+ )
140
+
141
+ assert_equal('', wiki.to_html(OPT))
142
+ assert_equal_filecontent( "expected_rubycode4doc/wiki_immediate_1.html", wiki_1.to_html(OPT))
143
+ assert_equal_filecontent( "expected_rubycode4doc/wiki_immediate_2.html", wiki_2.to_html(OPT))
144
+ assert_equal_filecontent( "expected_rubycode4doc/wiki_immediate_3.html", wiki_3.to_html(OPT))
145
+
146
+ wiki_full = Docgenerator::Wikimedia::Rubywiki.new( :content => <<wiki
147
+ ==Code definition==
148
+ (Nothing to see)
149
+ >>>rubycode{code_in_wiki_full}
150
+ 1.upto(3){|i| puts i * 2 }
151
+ <<<
152
+
153
+ ==Code with evaluation==
154
+ {{rubycode|code_in_wiki_full}}
155
+
156
+ ==Code with evaluation==
157
+ {{rubycode_with_evaluation|code_in_wiki_full}}
158
+
159
+ ==Code with evaluation==
160
+ {{rubycode_in_tab|code_in_wiki_full}}
161
+ wiki
162
+ )
163
+ assert_equal_filecontent( "expected_rubycode4doc/wiki_immediate_full.html", wiki_full.to_html(OPT))
164
+
165
+ end #test_wikitest_immediate()
166
+
167
+ end #class Test_rubycode4doc_wiki
168
+
169
+
170
+ class Test_rubycode4doc_creole < Test::Unit::TestCase
171
+ #This is integrated in Creole
172
+ def test_creole_inline_ruby()
173
+ wiki = Docgenerator::Creole::Creole.new()
174
+ wiki << <<wiki
175
+ *1 + 1 = <<ruby|1+1>>
176
+ *1 + 1 = <<ruby_raw|1+1>>
177
+ wiki
178
+ assert_equal_filecontent( "expected_rubycode4doc/creole_inline_ruby.html", wiki.to_html(OPT))
179
+ end
180
+ #
181
+ #
182
+ def test_creole_rubycode()
183
+ wiki = Docgenerator::Creole::Creole.new()
184
+ wiki << <<wiki
185
+ <<<rubycode
186
+ 1 + 1
187
+ >>>
188
+ wiki
189
+ assert_equal_filecontent( "expected_rubycode4doc/creole_rubycode.html", wiki.to_html(OPT))
190
+ assert_equal_filecontent( "expected_rubycode4doc/creole_rubycode.tex", wiki.to_latex(OPT))
191
+ end
192
+
193
+ def test_creole_rubycode_output()
194
+ wiki = Docgenerator::Creole::Creole.new()
195
+ wiki << <<wiki
196
+ <<<rubycode_output
197
+ 1 + 1
198
+ puts 1 + 2
199
+ >>>
200
+ wiki
201
+ assert_equal_filecontent( "expected_rubycode4doc/creole_output.html", wiki.to_html(OPT))
202
+ assert_equal_filecontent( "expected_rubycode4doc/creole_output.tex", wiki.to_latex(OPT))
203
+ end
204
+
205
+ def test_creole_rubycode_evaluated()
206
+ wiki = Docgenerator::Creole::Creole.new()
207
+ wiki << <<wiki
208
+ <<<rubycode_evaluated
209
+ 1 + 1
210
+ >>>
211
+ wiki
212
+ assert_equal_filecontent( "expected_rubycode4doc/creole_rubycode_evaluated.html", wiki.to_html(OPT))
213
+ assert_equal_filecontent( "expected_rubycode4doc/creole_rubycode_evaluated.tex", wiki.to_latex(OPT))
214
+ end
215
+
216
+ def test_creole_rubycode_evaluated_listings()
217
+ wiki = Docgenerator::Creole::Creole.new()
218
+ wiki << <<wiki
219
+ <<<rubycode_evaluated_listings
220
+ 1 + 1
221
+ >>>
222
+ wiki
223
+ assert_equal_filecontent( "expected_rubycode4doc/creole_rubycode_evaluated_listings.html", wiki.to_html(OPT))
224
+ assert_equal_filecontent( "expected_rubycode4doc/creole_rubycode_evaluated_listings.tex", wiki.to_latex(OPT))
225
+ end
226
+
227
+
228
+
229
+ def test_creole_rubycode_in_tab()
230
+ wiki = Docgenerator::Creole::Creole.new()
231
+ wiki << <<wiki
232
+ <<<rubycode_in_tab
233
+ 1 + 1
234
+ >>>
235
+ wiki
236
+ assert_equal_filecontent( "expected_rubycode4doc/creole_in_tab.html", wiki.to_html(OPT))
237
+ assert_equal_filecontent( "expected_rubycode4doc/creole_in_tab.tex", wiki.to_latex(OPT))
238
+ end
239
+
240
+
241
+ #
242
+ def test_creole_rubycode_complete()
243
+ wiki = Docgenerator::Creole::Creole.new()
244
+ wiki << <<wiki
245
+ rubycode
246
+ <<<rubycode
247
+ 1 + 1
248
+ >>>
249
+ ----
250
+ rubycode_output
251
+ <<<rubycode_output
252
+ puts 1 + 1
253
+ >>>
254
+ ----
255
+ rubycode_evaluated
256
+ <<<rubycode_evaluated
257
+ 1 + 1
258
+ >>>
259
+ ----
260
+ rubycode_in_tab
261
+ <<<rubycode_in_tab
262
+ 1 + 1
263
+ >>>
264
+ ----
265
+ <<<rubycode_evaluated_listings
266
+ 1 + 1
267
+ >>>
268
+ wiki
269
+ assert_equal_filecontent( "expected_rubycode4doc/creole_complete.html", wiki.to_html(OPT))
270
+ assert_equal_filecontent( "expected_rubycode4doc/creole_complete.tex", wiki.to_latex(OPT))
271
+ end
272
+
273
+ end #class Test_rubycode4doc_creole
274
+
275
+ __END__