rabbit 3.0.5 → 4.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 (241) hide show
  1. checksums.yaml +4 -4
  2. data/data/locale/ja/LC_MESSAGES/rabbit.mo +0 -0
  3. data/doc/_config.yml +2 -2
  4. data/doc/en/news.rd +54 -0
  5. data/doc/ja/news.rd +54 -0
  6. data/lib/rabbit/actions.rb +446 -0
  7. data/lib/rabbit/author-configuration.rb +7 -10
  8. data/lib/rabbit/canvas.rb +74 -42
  9. data/lib/rabbit/command/rabbit-slide.rb +11 -13
  10. data/lib/rabbit/command/rabbit-theme.rb +10 -12
  11. data/lib/rabbit/command/rabbit.rb +31 -43
  12. data/lib/rabbit/console.rb +20 -22
  13. data/lib/rabbit/dependency-canvas.rb +2 -2
  14. data/lib/rabbit/element/base.rb +93 -6
  15. data/lib/rabbit/element/block-element.rb +17 -1
  16. data/lib/rabbit/element/block.rb +17 -1
  17. data/lib/rabbit/element/container-element.rb +59 -3
  18. data/lib/rabbit/element/description-list.rb +18 -2
  19. data/lib/rabbit/element/enum-list.rb +18 -2
  20. data/lib/rabbit/element/footnote.rb +18 -2
  21. data/lib/rabbit/element/image-title-slide.rb +17 -1
  22. data/lib/rabbit/element/image.rb +32 -2
  23. data/lib/rabbit/element/index-slide.rb +29 -13
  24. data/lib/rabbit/element/item-list.rb +18 -2
  25. data/lib/rabbit/element/method-list.rb +18 -2
  26. data/lib/rabbit/element/poppler-page.rb +17 -1
  27. data/lib/rabbit/element/poppler-slide.rb +18 -2
  28. data/lib/rabbit/element/poppler-title-slide.rb +18 -2
  29. data/lib/rabbit/element/preformatted.rb +18 -2
  30. data/lib/rabbit/element/slide-element.rb +29 -2
  31. data/lib/rabbit/element/slide.rb +18 -2
  32. data/lib/rabbit/element/syntax-highlighting.rb +17 -1
  33. data/lib/rabbit/element/table.rb +19 -3
  34. data/lib/rabbit/element/tag.rb +18 -2
  35. data/lib/rabbit/element/text-block-element.rb +18 -2
  36. data/lib/rabbit/element/text-container-element.rb +41 -2
  37. data/lib/rabbit/element/text-element.rb +17 -1
  38. data/lib/rabbit/element/text-renderer.rb +17 -1
  39. data/lib/rabbit/element/text.rb +4 -4
  40. data/lib/rabbit/element/title-slide.rb +19 -3
  41. data/lib/rabbit/element/video.rb +157 -56
  42. data/lib/rabbit/element.rb +20 -20
  43. data/lib/rabbit/formatter.rb +18 -1
  44. data/lib/rabbit/frame.rb +102 -90
  45. data/lib/rabbit/front.rb +11 -4
  46. data/lib/rabbit/gem-finder.rb +4 -8
  47. data/lib/rabbit/gem-pusher.rb +4 -4
  48. data/lib/rabbit/gesture/handler.rb +26 -21
  49. data/lib/rabbit/graffiti/config-dialog.rb +18 -2
  50. data/lib/rabbit/graffiti/processor.rb +20 -4
  51. data/lib/rabbit/gtk.rb +48 -14
  52. data/lib/rabbit/html/generator.rb +18 -18
  53. data/{test/helper/fixture.rb → lib/rabbit/icon.rb} +16 -6
  54. data/lib/rabbit/image/base.rb +7 -6
  55. data/lib/rabbit/image/default.rb +17 -1
  56. data/lib/rabbit/image/dia.rb +2 -2
  57. data/lib/rabbit/image/eps.rb +16 -2
  58. data/lib/rabbit/image/gimp.rb +28 -11
  59. data/lib/rabbit/image/mermaid.rb +3 -3
  60. data/lib/rabbit/image/pdf.rb +3 -3
  61. data/lib/rabbit/image/svg.rb +2 -2
  62. data/lib/rabbit/image.rb +8 -8
  63. data/lib/rabbit/info-window.rb +55 -18
  64. data/lib/rabbit/key-handler.rb +381 -0
  65. data/lib/rabbit/keys.rb +31 -2
  66. data/lib/rabbit/logger/base.rb +17 -1
  67. data/lib/rabbit/logger/gui.rb +20 -4
  68. data/lib/rabbit/logger/stderr.rb +16 -2
  69. data/lib/rabbit/logger.rb +4 -4
  70. data/lib/rabbit/menu.rb +200 -220
  71. data/lib/rabbit/parser/base.rb +17 -1
  72. data/lib/rabbit/parser/ext/aafigure.rb +17 -1
  73. data/lib/rabbit/parser/ext/blockdiag.rb +17 -1
  74. data/lib/rabbit/parser/ext/charty.rb +2 -2
  75. data/lib/rabbit/parser/ext/coderay.rb +20 -4
  76. data/lib/rabbit/parser/ext/enscript.rb +31 -15
  77. data/lib/rabbit/parser/ext/entity.rb +17 -1
  78. data/lib/rabbit/parser/ext/image.rb +6 -6
  79. data/lib/rabbit/parser/ext/inline.rb +17 -1
  80. data/lib/rabbit/parser/ext/rouge.rb +7 -4
  81. data/lib/rabbit/parser/ext/tex.rb +18 -2
  82. data/lib/rabbit/parser/ext/video.rb +4 -4
  83. data/lib/rabbit/parser/image.rb +20 -4
  84. data/lib/rabbit/parser/markdown/converter.rb +12 -13
  85. data/lib/rabbit/parser/markdown.rb +18 -2
  86. data/lib/rabbit/parser/pause-support.rb +1 -0
  87. data/lib/rabbit/parser/pdf.rb +3 -3
  88. data/lib/rabbit/parser/rd/ext/base.rb +20 -4
  89. data/lib/rabbit/parser/rd/ext/block-verbatim.rb +24 -28
  90. data/lib/rabbit/parser/rd/ext/character-reference.rb +18 -2
  91. data/lib/rabbit/parser/rd/ext/image.rb +3 -3
  92. data/lib/rabbit/parser/rd/ext/inline-verbatim.rb +6 -6
  93. data/lib/rabbit/parser/rd/ext/refer.rb +18 -2
  94. data/lib/rabbit/parser/rd/ext/video.rb +19 -2
  95. data/lib/rabbit/parser/rd/rd2rabbit-lib.rb +24 -8
  96. data/lib/rabbit/parser/rd/rt/rt2rabbit-lib.rb +18 -2
  97. data/lib/rabbit/parser/rd/visitor.rb +18 -2
  98. data/lib/rabbit/parser/rd.rb +18 -2
  99. data/lib/rabbit/parser/wiki/output.rb +25 -28
  100. data/lib/rabbit/parser/wiki.rb +18 -2
  101. data/lib/rabbit/parser.rb +6 -6
  102. data/lib/rabbit/path-manipulatable.rb +4 -4
  103. data/lib/rabbit/progress.rb +17 -1
  104. data/lib/rabbit/properties.rb +3 -3
  105. data/lib/rabbit/rabbit.rb +15 -7
  106. data/lib/rabbit/readme-parser.rb +4 -6
  107. data/lib/rabbit/renderer/base.rb +44 -36
  108. data/lib/rabbit/renderer/color.rb +18 -2
  109. data/lib/rabbit/renderer/display/base.rb +10 -12
  110. data/lib/rabbit/renderer/display/button-handler.rb +141 -60
  111. data/lib/rabbit/renderer/display/cursor.rb +4 -5
  112. data/lib/rabbit/renderer/display/drawing-area-base.rb +32 -48
  113. data/lib/rabbit/renderer/display/drawing-area-primitive.rb +10 -61
  114. data/lib/rabbit/renderer/display/drawing-area-view-only.rb +19 -8
  115. data/lib/rabbit/renderer/display/drawing-area.rb +19 -15
  116. data/lib/rabbit/renderer/display/gesture.rb +9 -9
  117. data/lib/rabbit/renderer/display/graffiti.rb +22 -13
  118. data/lib/rabbit/renderer/display/info.rb +22 -2
  119. data/lib/rabbit/renderer/display/magnifier.rb +30 -17
  120. data/lib/rabbit/renderer/display/mask.rb +17 -1
  121. data/lib/rabbit/renderer/display/menu.rb +27 -3
  122. data/lib/rabbit/renderer/display/motion-handler.rb +45 -0
  123. data/lib/rabbit/renderer/display/progress.rb +17 -2
  124. data/lib/rabbit/renderer/display/scroll-handler.rb +60 -13
  125. data/lib/rabbit/renderer/display/search.rb +19 -2
  126. data/lib/rabbit/renderer/display/spotlight.rb +39 -25
  127. data/lib/rabbit/renderer/display.rb +16 -36
  128. data/lib/rabbit/renderer/engine/cairo.rb +4 -11
  129. data/lib/rabbit/renderer/engine.rb +17 -1
  130. data/lib/rabbit/renderer/kernel.rb +2 -20
  131. data/lib/rabbit/renderer/offscreen.rb +8 -14
  132. data/lib/rabbit/renderer/print-layout.rb +2 -2
  133. data/lib/rabbit/renderer/printer.rb +9 -16
  134. data/lib/rabbit/renderer/scene-background-widget.rb +95 -0
  135. data/lib/rabbit/renderer/scene-node-widget.rb +63 -0
  136. data/lib/rabbit/renderer/scene.rb +508 -0
  137. data/lib/rabbit/renderer.rb +6 -6
  138. data/lib/rabbit/search-window.rb +18 -2
  139. data/lib/rabbit/searcher.rb +15 -1
  140. data/lib/rabbit/size.rb +9 -1
  141. data/lib/rabbit/slide-configuration.rb +11 -14
  142. data/lib/rabbit/soap/driver.rb +20 -4
  143. data/lib/rabbit/soap/server.rb +17 -1
  144. data/lib/rabbit/source/argf.rb +5 -5
  145. data/lib/rabbit/source/base.rb +5 -6
  146. data/lib/rabbit/source/file.rb +5 -5
  147. data/lib/rabbit/source/memory.rb +20 -4
  148. data/lib/rabbit/source/uri.rb +9 -11
  149. data/lib/rabbit/source-generator/hiki.rb +2 -7
  150. data/lib/rabbit/source-generator/markdown.rb +2 -7
  151. data/lib/rabbit/source-generator/rd.rb +2 -7
  152. data/lib/rabbit/source-generator.rb +4 -4
  153. data/lib/rabbit/source.rb +5 -5
  154. data/lib/rabbit/task/slide.rb +13 -11
  155. data/lib/rabbit/task/theme.rb +8 -11
  156. data/lib/rabbit/task.rb +3 -3
  157. data/lib/rabbit/theme/applier.rb +27 -11
  158. data/lib/rabbit/theme/clear-blue/clear-blue.rb +1 -1
  159. data/lib/rabbit/theme/color-circle/color-circle.rb +18 -1
  160. data/lib/rabbit/theme/cozmixng/cozmixng.rb +1 -1
  161. data/lib/rabbit/theme/default/default.rb +1 -0
  162. data/lib/rabbit/theme/default-icon/default-icon.rb +1 -1
  163. data/lib/rabbit/theme/default-item-mark-setup/default-item-mark-setup.rb +17 -1
  164. data/lib/rabbit/theme/default-preformatted/default-preformatted.rb +9 -1
  165. data/lib/rabbit/theme/enishi-green/enishi-green.rb +1 -1
  166. data/lib/rabbit/theme/entry.rb +10 -12
  167. data/lib/rabbit/theme/icon/icon.rb +3 -8
  168. data/lib/rabbit/theme/image-slide-number/image-slide-number.rb +5 -5
  169. data/lib/rabbit/theme/image-timer/image-timer.rb +3 -3
  170. data/lib/rabbit/theme/lightning-simple/lightning-simple.rb +1 -0
  171. data/lib/rabbit/theme/lightning-talk/lightning-talk.rb +1 -0
  172. data/lib/rabbit/theme/manager.rb +19 -9
  173. data/lib/rabbit/theme/rabbit-icon/rabbit-icon.rb +1 -1
  174. data/lib/rabbit/theme/ranguba/ranguba.rb +1 -1
  175. data/lib/rabbit/theme/red-frame/red-frame.rb +6 -2
  176. data/lib/rabbit/theme/ruby-gnome2/ruby-gnome2.rb +1 -0
  177. data/lib/rabbit/theme/ruby-gnome2-icon/ruby-gnome2-icon.rb +1 -1
  178. data/lib/rabbit/theme/searcher.rb +23 -7
  179. data/lib/rabbit/theme/slide-number/slide-number.rb +1 -1
  180. data/lib/rabbit/theme/slide-show/slide-show.rb +1 -1
  181. data/lib/rabbit/theme/table/table.rb +2 -2
  182. data/lib/rabbit/theme/video/property.rb +3 -0
  183. data/lib/rabbit/theme/video/video.rb +5 -0
  184. data/lib/rabbit/theme-configuration.rb +9 -11
  185. data/lib/rabbit/utils.rb +12 -94
  186. data/lib/rabbit/version.rb +1 -1
  187. data/lib/rabbit/xmlrpc/client.rb +17 -1
  188. data/lib/rabbit/xmlrpc/server.rb +17 -1
  189. data/po/en/rabbit.edit.po +324 -316
  190. data/po/en/rabbit.po +61 -55
  191. data/po/fr/rabbit.edit.po +324 -316
  192. data/po/fr/rabbit.po +61 -55
  193. data/po/ja/rabbit.edit.po +345 -370
  194. data/po/ja/rabbit.po +83 -80
  195. data/rabbit.gemspec +4 -2
  196. data/sample/block-quote.rab +13 -0
  197. data/sample/description-list.rab +17 -0
  198. data/sample/mermaid.rab +16 -0
  199. data/sample/rabbit-en.hiki +0 -1
  200. data/sample/rabbit-en.md +0 -1
  201. data/sample/rabbit-en.rd +0 -1
  202. data/sample/rabbit.hiki +0 -1
  203. data/sample/rabbit.md +0 -1
  204. data/sample/rabbit.rd +0 -1
  205. data/sample/video.rab +17 -0
  206. metadata +33 -65
  207. data/lib/rabbit/action/basic.rb +0 -304
  208. data/lib/rabbit/action/radio.rb +0 -78
  209. data/lib/rabbit/action/toggle.rb +0 -82
  210. data/lib/rabbit/action.rb +0 -140
  211. data/lib/rabbit/renderer/display/gl.rb +0 -98
  212. data/lib/rabbit/renderer/display/key-handler.rb +0 -321
  213. data/lib/rabbit/renderer/gl.rb +0 -95
  214. data/lib/rabbit/renderer/screen.rb +0 -286
  215. data/lib/rabbit/renderer/widget/drawing-area.rb +0 -93
  216. data/lib/rabbit/stock.rb +0 -31
  217. data/lib/rabbit/trackball.rb +0 -228
  218. data/lib/rabbit/video-window.rb +0 -123
  219. data/test/command/test-rabbit.rb +0 -101
  220. data/test/helper/parser.rb +0 -48
  221. data/test/helper.rb +0 -24
  222. data/test/image/test-dia.rb +0 -54
  223. data/test/image/test-eps.rb +0 -41
  224. data/test/parser/test-markdown.rb +0 -360
  225. data/test/parser/test-rd.rb +0 -43
  226. data/test/parser/test-wiki.rb +0 -71
  227. data/test/run-test.rb +0 -27
  228. data/test/source-generator/test-hiki.rb +0 -68
  229. data/test/source-generator/test-markdown.rb +0 -67
  230. data/test/source-generator/test-rd.rb +0 -69
  231. data/test/test-applier.rb +0 -73
  232. data/test/test-author-configuration.rb +0 -37
  233. data/test/test-canvas.rb +0 -70
  234. data/test/test-color.rb +0 -51
  235. data/test/test-element.rb +0 -103
  236. data/test/test-readme-parser.rb +0 -160
  237. data/test/test-size.rb +0 -155
  238. data/test/test-slide-configuration.rb +0 -74
  239. data/test/test-source.rb +0 -122
  240. data/test/test-theme-configuration.rb +0 -47
  241. data/test/test-utils.rb +0 -64
@@ -1,41 +0,0 @@
1
- # Copyright (C) 2012-2019 Kouhei Sutou <kou@cozmixng.org>
2
- #
3
- # This program is free software; you can redistribute it and/or modify
4
- # it under the terms of the GNU General Public License as published by
5
- # the Free Software Foundation; either version 2 of the License, or
6
- # (at your option) any later version.
7
- #
8
- # This program is distributed in the hope that it will be useful,
9
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
- # GNU General Public License for more details.
12
- #
13
- # You should have received a copy of the GNU General Public License along
14
- # with this program; if not, write to the Free Software Foundation, Inc.,
15
- # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16
-
17
- require "rabbit/image/eps"
18
-
19
- class TestImageEPS < Test::Unit::TestCase
20
- include Helper::Fixture
21
-
22
- private
23
- def fixture_path(base_name)
24
- super("image", "eps", base_name)
25
- end
26
-
27
- class TestMatch < self
28
- private
29
- def match?(base_name)
30
- Rabbit::ImageManipulable::EPS.match?(fixture_path(base_name))
31
- end
32
-
33
- def test_have_extension
34
- assert_true(match?("rabbit.eps"))
35
- end
36
-
37
- def test_no_extension
38
- assert_true(match?("rabbit"))
39
- end
40
- end
41
- end
@@ -1,360 +0,0 @@
1
- # Copyright (C) 2014-2024 Sutou Kouhei <kou@cozmixng.org>
2
- #
3
- # This program is free software; you can redistribute it and/or modify
4
- # it under the terms of the GNU General Public License as published by
5
- # the Free Software Foundation; either version 2 of the License, or
6
- # (at your option) any later version.
7
- #
8
- # This program is distributed in the hope that it will be useful,
9
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
- # GNU General Public License for more details.
12
- #
13
- # You should have received a copy of the GNU General Public License along
14
- # with this program; if not, write to the Free Software Foundation, Inc.,
15
- # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16
-
17
- require "rabbit/logger"
18
- require "rabbit/slide"
19
- require "rabbit/source/memory"
20
- require "rabbit/parser/markdown"
21
-
22
- class RabbitParserMarkdownTest < Test::Unit::TestCase
23
- include Helper::Fixture
24
- include Helper::Parser
25
-
26
- private
27
- def parse(markdown)
28
- super(Rabbit::Parser::Markdown, markdown)
29
- end
30
-
31
- class TitlePageTest < self
32
- def parse(markdown)
33
- inspect_canvas(super(markdown))
34
- end
35
-
36
- def test_title
37
- assert_equal([
38
- [
39
- "TitleSlide", [
40
- "Title", [
41
- "Text",
42
- "Title",
43
- ],
44
- ],
45
- ],
46
- ],
47
- parse(+"# Title"))
48
- end
49
- end
50
-
51
- class BodyTest < self
52
- def parse(markdown)
53
- full_markdown = <<-MARKDOWN
54
- \# Title
55
-
56
- \# Page
57
-
58
- #{markdown}
59
- MARKDOWN
60
- inspect_element(super(full_markdown)[1].body)
61
- end
62
-
63
- class TextEscapeTest < self
64
- def test_html_tag
65
- assert_equal([
66
- "Body", [
67
- "Paragraph", [
68
- "Code", [
69
- "Text",
70
- "&#60;pre&#62;",
71
- ],
72
- ],
73
- ],
74
- ],
75
- parse("`<pre>`"))
76
- end
77
- end
78
-
79
- class WaitTest < self
80
- def test_in_list_item
81
- assert_equal([
82
- "Body", [
83
- "ItemList", [
84
- "ItemListItem", [
85
- "Paragraph",
86
- ["Text", "Hello"],
87
- ["WaitTag", ""],
88
- ["Text", " World"],
89
- ],
90
- ],
91
- ],
92
- ],
93
- parse("* Hello{::wait/} World"))
94
- end
95
- end
96
-
97
- class DeletedTextTest < self
98
- def test_simple
99
- assert_equal([
100
- "Body", [
101
- "Paragraph",
102
- ["Text", "Hello "],
103
- ["DeletedText", ["Text", "deleted"]],
104
- ["Text", " World"],
105
- ],
106
- ],
107
- parse("Hello ~~deleted~~ World"))
108
- end
109
-
110
- def test_start_only
111
- assert_equal([
112
- "Body", [
113
- "Paragraph",
114
- ["Text", "Hello ~~ World"],
115
- ],
116
- ],
117
- parse("Hello ~~ World"))
118
- end
119
-
120
- def test_escaple
121
- assert_equal([
122
- "Body", [
123
- "Paragraph",
124
- ["Text", "Hello ~~not deleted~~ World"],
125
- ],
126
- ],
127
- parse("Hello \\~\\~not deleted\\~\\~ World"))
128
- end
129
- end
130
-
131
- class SyntaxHighlightTest < self
132
- def test_indent_lang
133
- assert_equal([
134
- "Body", [
135
- "SyntaxHighlightingBlock", [
136
- "TextContainer",
137
- [
138
- "CustomTag", [
139
- "SyntaxHighlightingText",
140
- ["Text", "\"Hello World\""],
141
- ],
142
- ],
143
- ],
144
- ],
145
- ],
146
- parse(<<-MARKDOWN))
147
- "Hello World"
148
- {: lang="ruby"}
149
- MARKDOWN
150
- end
151
-
152
- def test_indent_language
153
- assert_equal([
154
- "Body", [
155
- "SyntaxHighlightingBlock", [
156
- "TextContainer",
157
- [
158
- "CustomTag", [
159
- "SyntaxHighlightingText",
160
- ["Text", "\"Hello World\""],
161
- ],
162
- ],
163
- ],
164
- ],
165
- ],
166
- parse(<<-MARKDOWN))
167
- "Hello World"
168
- {: language="ruby"}
169
- MARKDOWN
170
- end
171
-
172
- def test_fence_kramdown
173
- assert_equal([
174
- "Body", [
175
- "SyntaxHighlightingBlock", [
176
- "TextContainer",
177
- [
178
- "CustomTag", [
179
- "SyntaxHighlightingText",
180
- ["Text", "\"Hello World\""],
181
- ],
182
- ],
183
- ],
184
- ],
185
- ],
186
- parse(<<-MARKDOWN))
187
- ~~~ruby
188
- "Hello World"
189
- ~~~
190
- MARKDOWN
191
- end
192
-
193
- def test_fence_gfm
194
- assert_equal([
195
- "Body", [
196
- "SyntaxHighlightingBlock", [
197
- "TextContainer",
198
- [
199
- "CustomTag", [
200
- "SyntaxHighlightingText",
201
- ["Text", "\"Hello World\""],
202
- ],
203
- ],
204
- ],
205
- ],
206
- ],
207
- parse(<<-MARKDOWN))
208
- ```ruby
209
- "Hello World"
210
- ```
211
- MARKDOWN
212
- end
213
- end
214
-
215
- class BlockDiagTest < self
216
- def test_codeblock_fence
217
- assert_equal([
218
- "Body", [
219
- "Image",
220
- ""
221
- ],
222
- ],
223
- parse(<<-MARKDOWN))
224
- ```blockdiag
225
- {
226
- A -> B -> C;
227
- }
228
- ```
229
- MARKDOWN
230
- end
231
- end
232
-
233
- class ListTest < self
234
- class UnorderedListTest < self
235
- class NesetedTest < self
236
- def test_no_new_line_after_first_line
237
- assert_equal([
238
- "Body", [
239
- "ItemList", [
240
- "ItemListItem", [
241
- "Paragraph", ["Text", "First"],
242
- ], [
243
- "ItemList", [
244
- "ItemListItem", [
245
- "Paragraph", ["Text", "Second"],
246
- ],
247
- ],
248
- ],
249
- ],
250
- ],
251
- ],
252
- parse(<<-MARKDOWN))
253
- * First
254
- * Second
255
- MARKDOWN
256
- end
257
-
258
- def test_have_new_line_after_first_line
259
- assert_equal([
260
- "Body", [
261
- "ItemList", [
262
- "ItemListItem", [
263
- "Paragraph", ["Text", "First"],
264
- ], [
265
- "ItemList", [
266
- "ItemListItem", [
267
- "Paragraph", ["Text", "Second"],
268
- ],
269
- ],
270
- ],
271
- ],
272
- ],
273
- ],
274
- parse(<<-MARKDOWN))
275
- * First
276
-
277
- * Second
278
- MARKDOWN
279
- end
280
- end
281
- end
282
- end
283
-
284
- class ImageTest < self
285
- class InlineTest < self
286
- include Rabbit::GetText
287
-
288
- def test_unsupported
289
- image_path = fixture_path("image/png/lavie.png")
290
- format = _("![alt]{image} and other contents in a paragraph isn't supported: %{types}")
291
- message = format % {types: [:text, :img]}
292
- assert_raise(Rabbit::ParseError.new(message)) do
293
- parse(<<-MARKDOWN)
294
- a ![](#{image_path})
295
- MARKDOWN
296
- end
297
- end
298
- end
299
- end
300
-
301
- class HorizontalRuleTest < self
302
- include Rabbit::GetText
303
-
304
- def test_unsupported
305
- message = _("horizontal rule isn't supported.")
306
- assert_raise(Rabbit::ParseError.new(message)) do
307
- parse(<<-MARKDOWN)
308
- ---
309
- MARKDOWN
310
- end
311
- end
312
- end
313
-
314
- class TagTest < self
315
- include Rabbit::GetText
316
-
317
- def test_no_name
318
- message = _("tag name is missing.")
319
- assert_raise(Rabbit::ParseError.new(message)) do
320
- parse(<<-MARKDOWN)
321
- {::tag}content{:/tag}
322
- MARKDOWN
323
- end
324
- end
325
-
326
- def test_inline
327
- assert_equal([
328
- "Body", [
329
- "Paragraph", [
330
- "CustomTag", [
331
- "Text",
332
- "Hello",
333
- ],
334
- ],
335
- ],
336
- ],
337
- parse(<<-MARKDOWN))
338
- {::tag name="x-large"}Hello{:/tag}
339
- MARKDOWN
340
- end
341
-
342
- def test_paragraph
343
- assert_equal([
344
- "Body", [
345
- "Paragraph", [
346
- "CustomTag", [
347
- "Text",
348
- "Hello",
349
- ],
350
- ],
351
- ],
352
- ],
353
- parse(<<-MARKDOWN))
354
- {:.x-large}
355
- Hello
356
- MARKDOWN
357
- end
358
- end
359
- end
360
- end
@@ -1,43 +0,0 @@
1
- # Copyright (C) 2014-2024 Sutou Kouhei <kou@cozmixng.org>
2
- #
3
- # This program is free software; you can redistribute it and/or modify
4
- # it under the terms of the GNU General Public License as published by
5
- # the Free Software Foundation; either version 2 of the License, or
6
- # (at your option) any later version.
7
- #
8
- # This program is distributed in the hope that it will be useful,
9
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
- # GNU General Public License for more details.
12
- #
13
- # You should have received a copy of the GNU General Public License along
14
- # with this program; if not, write to the Free Software Foundation, Inc.,
15
- # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16
-
17
- require "rabbit/slide"
18
- require "rabbit/source/memory"
19
- require "rabbit/parser/rd"
20
-
21
- class RabbitParserRDTest < Test::Unit::TestCase
22
- class MatchTest < self
23
- def match?(source)
24
- Rabbit::Parser::RD.match?(source)
25
- end
26
-
27
- class ContentTest < self
28
- def match?(content)
29
- source = Rabbit::Source::Memory.new("UTF-8", nil)
30
- source.source = content
31
- super(source)
32
- end
33
-
34
- def test_with_space
35
- assert_true(match?(+"= Hello"))
36
- end
37
-
38
- def test_no_space
39
- assert_true(match?(+"=Hello"))
40
- end
41
- end
42
- end
43
- end
@@ -1,71 +0,0 @@
1
- # Copyright (C) 2015-2024 Sutou Kouhei <kou@cozmixng.org>
2
- #
3
- # This program is free software; you can redistribute it and/or modify
4
- # it under the terms of the GNU General Public License as published by
5
- # the Free Software Foundation; either version 2 of the License, or
6
- # (at your option) any later version.
7
- #
8
- # This program is distributed in the hope that it will be useful,
9
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
- # GNU General Public License for more details.
12
- #
13
- # You should have received a copy of the GNU General Public License along
14
- # with this program; if not, write to the Free Software Foundation, Inc.,
15
- # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16
-
17
- require "rabbit/logger"
18
- require "rabbit/slide"
19
- require "rabbit/source/memory"
20
- require "rabbit/parser/wiki"
21
-
22
- class RabbitParserWikiTest < Test::Unit::TestCase
23
- include Helper::Fixture
24
- include Helper::Parser
25
-
26
- private
27
- def parse(wiki_text)
28
- super(Rabbit::Parser::Wiki, wiki_text)
29
- end
30
-
31
- class ImageTest < self
32
- include Rabbit::GetText
33
-
34
- class InlineTest < self
35
- test "unsupported" do
36
- image_path = fixture_path("image/png/lavie.png")
37
- wiki_text = +<<-WIKI
38
- ! Title
39
-
40
- ! Slide
41
-
42
- a {{image(#{image_path.dump})}}
43
- WIKI
44
- message = _("inline {{image(...)}} isn't supported.")
45
- assert_raise(Rabbit::ParseError.new(message)) do
46
- parse(wiki_text)
47
- end
48
- end
49
- end
50
-
51
- class BlockTest < self
52
- test ":align => :right: twice" do
53
- image_path = fixture_path("image/png/lavie.png")
54
- wiki_text = <<-WIKI
55
- ! Title
56
-
57
- ! Slide
58
-
59
- {{image(#{image_path.dump}, {:align => :right})}}
60
-
61
- {{image(#{image_path.dump}, :align => :right)}}
62
- WIKI
63
-
64
- message = _("multiple {{image(..., :align => :right)}} isn't supported.")
65
- assert_raise(Rabbit::ParseError.new(message)) do
66
- parse(wiki_text)
67
- end
68
- end
69
- end
70
- end
71
- end
data/test/run-test.rb DELETED
@@ -1,27 +0,0 @@
1
- #!/usr/bin/env ruby
2
- #
3
- # Copyright (C) 2004-2019 Kouhei Sutou <kou@cozmixng.org>
4
- #
5
- # This program is free software; you can redistribute it and/or modify
6
- # it under the terms of the GNU General Public License as published by
7
- # the Free Software Foundation; either version 2 of the License, or
8
- # (at your option) any later version.
9
- #
10
- # This program is distributed in the hope that it will be useful,
11
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
- # GNU General Public License for more details.
14
- #
15
- # You should have received a copy of the GNU General Public License along
16
- # with this program; if not, write to the Free Software Foundation, Inc.,
17
- # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18
-
19
- base_dir = File.expand_path(File.join(File.dirname(__FILE__), ".."))
20
- test_dir = File.join(base_dir, "test")
21
-
22
- $LOAD_PATH.unshift(File.join(base_dir, "lib"))
23
- $LOAD_PATH.unshift(test_dir)
24
-
25
- require_relative "helper"
26
-
27
- exit(Test::Unit::AutoRunner.run(true, test_dir))
@@ -1,68 +0,0 @@
1
- # Copyright (C) 2012 Kouhei Sutou <kou@cozmixng.org>
2
- #
3
- # This program is free software; you can redistribute it and/or modify
4
- # it under the terms of the GNU General Public License as published by
5
- # the Free Software Foundation; either version 2 of the License, or
6
- # (at your option) any later version.
7
- #
8
- # This program is distributed in the hope that it will be useful,
9
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
- # GNU General Public License for more details.
12
- #
13
- # You should have received a copy of the GNU General Public License along
14
- # with this program; if not, write to the Free Software Foundation, Inc.,
15
- # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16
-
17
- require "rabbit/source-generator/hiki"
18
-
19
- class TestSourceGeneratorHiki < Test::Unit::TestCase
20
- def setup
21
- @generator = Rabbit::SourceGenerator::Hiki.new
22
- end
23
-
24
- def test_heading1
25
- assert_equal("! Hello",
26
- @generator.heading(1, "Hello"))
27
- end
28
-
29
- def test_heading2
30
- assert_equal("!! Hello",
31
- @generator.heading(2, "Hello"))
32
- end
33
-
34
- def test_heading3
35
- assert_equal("!!! Hello",
36
- @generator.heading(3, "Hello"))
37
- end
38
-
39
- def test_definition_list_item
40
- item = @generator.definition_list_item("Rabbit",
41
- "The presentation tool for Rubyist")
42
- assert_equal(":Rabbit:The presentation tool for Rubyist",
43
- item)
44
- end
45
-
46
- def test_unordered_list_item
47
- assert_equal("* Hello",
48
- @generator.unordered_list_item("Hello"))
49
- end
50
-
51
- def test_image
52
- image = @generator.image("lavie.png", :relative_height => 90)
53
- assert_equal(<<-EOR.rstrip, image)
54
- {{image("lavie.png",
55
- {
56
- "relative_height" => 90,
57
- })}}
58
- EOR
59
- end
60
-
61
- def test_preformatted_line
62
- assert_equal(" Hello", @generator.preformatted_line("Hello"))
63
- end
64
-
65
- def test_comment
66
- assert_equal("// Hello", @generator.comment("Hello"))
67
- end
68
- end
@@ -1,67 +0,0 @@
1
- # Copyright (C) 2012 Kouhei Sutou <kou@cozmixng.org>
2
- #
3
- # This program is free software; you can redistribute it and/or modify
4
- # it under the terms of the GNU General Public License as published by
5
- # the Free Software Foundation; either version 2 of the License, or
6
- # (at your option) any later version.
7
- #
8
- # This program is distributed in the hope that it will be useful,
9
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
- # GNU General Public License for more details.
12
- #
13
- # You should have received a copy of the GNU General Public License along
14
- # with this program; if not, write to the Free Software Foundation, Inc.,
15
- # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16
-
17
- require "rabbit/source-generator/markdown"
18
-
19
- class TestSourceGeneratorMarkdown < Test::Unit::TestCase
20
- def setup
21
- @generator = Rabbit::SourceGenerator::Markdown.new
22
- end
23
-
24
- def test_heading1
25
- assert_equal("# Hello",
26
- @generator.heading(1, "Hello"))
27
- end
28
-
29
- def test_heading2
30
- assert_equal("## Hello",
31
- @generator.heading(2, "Hello"))
32
- end
33
-
34
- def test_heading3
35
- assert_equal("### Hello",
36
- @generator.heading(3, "Hello"))
37
- end
38
-
39
- def test_definition_list_item
40
- item = @generator.definition_list_item("Rabbit",
41
- "The presentation tool for Rubyist")
42
- assert_equal(<<-MARKDOWN, item)
43
- Rabbit
44
- : The presentation tool for Rubyist
45
- MARKDOWN
46
- end
47
-
48
- def test_unordered_list_item
49
- assert_equal("* Hello",
50
- @generator.unordered_list_item("Hello"))
51
- end
52
-
53
- def test_image
54
- image = @generator.image("lavie.png", :relative_height => 90)
55
- assert_equal(<<-EOR.rstrip, image)
56
- ![](lavie.png){:relative_height='90'}
57
- EOR
58
- end
59
-
60
- def test_preformatted_line
61
- assert_equal(" Hello", @generator.preformatted_line("Hello"))
62
- end
63
-
64
- def test_comment
65
- assert_equal("", @generator.comment("Hello"))
66
- end
67
- end