rabbit 3.0.5 → 4.0.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 (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 +63 -0
  5. data/doc/ja/news.rd +63 -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 +101 -93
  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
data/test/test-size.rb DELETED
@@ -1,155 +0,0 @@
1
- # Copyright (C) 2015-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/size"
18
-
19
- class RabbitSizeTest < Test::Unit::TestCase
20
- sub_test_case("width > height") do
21
- setup do
22
- @size = Rabbit::Size.new(800, 600, 1920, 1018, 4.0 / 3.0)
23
- end
24
-
25
- test "#logical_width" do
26
- assert_equal(800, @size.logical_width.round)
27
- end
28
-
29
- test "#logical_height" do
30
- assert_equal(600, @size.logical_height)
31
- end
32
-
33
- test "#logical_margin_left" do
34
- assert_equal(166, @size.logical_margin_left.round)
35
- end
36
-
37
- test "#logical_margin_right" do
38
- assert_equal(166, @size.logical_margin_right.round)
39
- end
40
-
41
- test "#logical_margin_top" do
42
- assert_equal(0, @size.logical_margin_top)
43
- end
44
-
45
- test "#logical_margin_bottom" do
46
- assert_equal(0, @size.logical_margin_bottom)
47
- end
48
- end
49
-
50
- sub_test_case("width < height") do
51
- setup do
52
- @size = Rabbit::Size.new(800, 600, 1018, 1920, 4.0 / 3.0)
53
- end
54
-
55
- test "#logical_width" do
56
- assert_equal(800, @size.logical_width)
57
- end
58
-
59
- test "#logical_height" do
60
- assert_equal(600, @size.logical_height.round)
61
- end
62
-
63
- test "#logical_margin_left" do
64
- assert_equal(0, @size.logical_margin_left)
65
- end
66
-
67
- test "#logical_margin_right" do
68
- assert_equal(0, @size.logical_margin_right)
69
- end
70
-
71
- test "#logical_margin_top" do
72
- assert_equal(454, @size.logical_margin_top.round)
73
- end
74
-
75
- test "#logical_margin_bottom" do
76
- assert_equal(454, @size.logical_margin_bottom.round)
77
- end
78
-
79
- test "#logical_scale" do
80
- assert_equal([1.27, 1.27],
81
- @size.logical_scale.collect {|scale| scale.round(2)})
82
- end
83
- end
84
-
85
- sub_test_case("predicates") do
86
- sub_test_case("#have_logical_margin_x?") do
87
- test "width > height" do
88
- size = Rabbit::Size.new(800, 600, 1920, 1018, 4.0 / 3.0)
89
- assert do
90
- size.have_logical_margin_x?
91
- end
92
- end
93
-
94
- test "width < height" do
95
- size = Rabbit::Size.new(800, 600, 1018, 1920, 4.0 / 3.0)
96
- assert do
97
- not size.have_logical_margin_x?
98
- end
99
- end
100
-
101
- test "width / height == ratio" do
102
- size = Rabbit::Size.new(800, 600, 1600, 1200, 4.0 / 3.0)
103
- assert do
104
- not size.have_logical_margin_x?
105
- end
106
- end
107
- end
108
-
109
- sub_test_case("#have_logical_margin_y?") do
110
- test "width > height" do
111
- size = Rabbit::Size.new(800, 600, 1920, 1018, 4.0 / 3.0)
112
- assert do
113
- not size.have_logical_margin_y?
114
- end
115
- end
116
-
117
- test "width < height" do
118
- size = Rabbit::Size.new(800, 600, 1018, 1920, 4.0 / 3.0)
119
- assert do
120
- size.have_logical_margin_y?
121
- end
122
- end
123
-
124
- test "width / height == ratio" do
125
- size = Rabbit::Size.new(800, 600, 1600, 1200, 4.0 / 3.0)
126
- assert do
127
- not size.have_logical_margin_y?
128
- end
129
- end
130
- end
131
-
132
- sub_test_case("#have_logical_margin?") do
133
- test "width > height" do
134
- size = Rabbit::Size.new(800, 600, 1920, 1018, 4.0 / 3.0)
135
- assert do
136
- size.have_logical_margin?
137
- end
138
- end
139
-
140
- test "width < height" do
141
- size = Rabbit::Size.new(800, 600, 1018, 1920, 4.0 / 3.0)
142
- assert do
143
- size.have_logical_margin?
144
- end
145
- end
146
-
147
- test "width / height == ratio" do
148
- size = Rabbit::Size.new(800, 600, 1600, 1200, 4.0 / 3.0)
149
- assert do
150
- not size.have_logical_margin?
151
- end
152
- end
153
- end
154
- end
155
- end
@@ -1,74 +0,0 @@
1
- # Copyright (C) 2012-2022 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-configuration"
18
-
19
- class TestSlideConfiguration < Test::Unit::TestCase
20
- def setup
21
- @slide = Rabbit::SlideConfiguration.new
22
- end
23
-
24
- def test_merge!
25
- author_conf = {
26
- "markup_language" => "rd",
27
- "name" => "Kouhei Sutou",
28
- "email" => "kou@cozmixng.org",
29
- "rubygems_user" => "kou",
30
- "slideshare_user" => "kou",
31
- "speaker_deck_user" => "kou",
32
- }
33
- conf = {
34
- "id" => "sprk2012",
35
- "base_name" => "how-to-make-clear-code",
36
- "tags" => ["rabbit", "sprk2012", "clear code"],
37
- "presentation_date" => "2012-09-16",
38
- "presentation_start_time" => "2012-09-16T10:00:00+0900",
39
- "presentation_end_time" => "2012-09-16T10:30:00+0900",
40
- "version" => "2012.09.16.0",
41
- "licenses" => ["GPLv3+", "GFDL", "CC BY-SA 3.0"],
42
- "slideshare_id" => "rabbit-14073776",
43
- "source_code_uri" => "https://example.com/source",
44
- "speaker_deck_id" => "rabbit-debian",
45
- "vimeo_id" => "00000000",
46
- "youtube_id" => "XXXXX-xxxxx",
47
- "author" => author_conf,
48
- "width" => 800,
49
- "height" => 600,
50
- }
51
- @slide.id = "RubyKaigi2012"
52
- @slide.merge!(conf)
53
-
54
- object_conf = conf.dup
55
- object_conf["presentation_date"] = Date.parse(conf["presentation_date"])
56
- object_conf["presentation_start_time"] =
57
- Time.parse(conf["presentation_start_time"])
58
- object_conf["presentation_end_time"] =
59
- Time.parse(conf["presentation_end_time"])
60
- assert_equal(object_conf,
61
- @slide.to_hash)
62
- end
63
-
64
- class TestDefaultVersion < self
65
- def test_have_presentation_date
66
- @slide.presentation_date = "2012-09-16"
67
- assert_equal("2012.9.16.0", @slide.version)
68
- end
69
-
70
- def test_no_presentation_date
71
- assert_equal("1.0.0", @slide.version)
72
- end
73
- end
74
- end
data/test/test-source.rb DELETED
@@ -1,122 +0,0 @@
1
- # Copyright (C) 2004-2024 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"
18
- require "rabbit/logger"
19
-
20
- class RabbitSourceTest < Test::Unit::TestCase
21
- class BaseTest < self
22
- class EncodingDetectionTest < self
23
- def test_euc_jp_like_utf8
24
- assert_equal(Encoding::UTF_8, guess_encoding("résumé"))
25
- end
26
-
27
- private
28
- def guess_encoding(string)
29
- logger = Rabbit::Logger::STDERR.new
30
- source = Rabbit::Source::Memory.new(nil, logger)
31
- source.source = string
32
- source.__send__(:guess_encoding, string)
33
- end
34
- end
35
-
36
- class ReadTest < self
37
- def test_binary
38
- pdf_header = +"%PDF-1.5\n%\xb5\xed\xae\xfb\n"
39
- pdf_header.force_encoding("ASCII-8BIT")
40
- assert_equal(pdf_header, read(pdf_header))
41
- end
42
-
43
- private
44
- def read(string)
45
- logger = Rabbit::Logger::STDERR.new
46
-
47
- source = Rabbit::Source::Memory.new(string.encoding, logger)
48
- source.source = string
49
- source.read
50
- end
51
- end
52
- end
53
-
54
- class ARGFTest < self
55
- def setup
56
- logger = Rabbit::Logger::STDERR.new
57
-
58
- @input, @output = IO.pipe
59
- @source = Rabbit::Source::ARGF.new("UTF-8", logger, @input)
60
- end
61
-
62
- def teardown
63
- @input.close
64
- @output.close
65
- end
66
-
67
- def test_base
68
- assert_equal(".", @source.base)
69
- end
70
-
71
- def test_full_path
72
- image = "sample.png"
73
-
74
- assert_equal(File.join(".", image), @source.full_path(image))
75
- end
76
- end
77
-
78
- class FileTest < self
79
- def setup
80
- logger = Rabbit::Logger::STDERR.new
81
-
82
- @dir = File.dirname(__FILE__)
83
- @file = File.join(@dir, "sample.rd")
84
- FileUtils.touch(@file)
85
- @source = Rabbit::Source::File.new("UTF-8", logger, @file)
86
- end
87
-
88
- def teardown
89
- FileUtils.rm_f(@file)
90
- end
91
-
92
- def test_base
93
- assert_equal(@dir, @source.base)
94
- end
95
-
96
- def test_full_path
97
- image = "sample.png"
98
-
99
- assert_equal(File.join(@dir, image), @source.full_path(image))
100
- end
101
- end
102
-
103
- class URITest < self
104
- def setup
105
- logger = Rabbit::Logger::STDERR.new
106
-
107
- @base = "http://example.com/sample"
108
- @uri = "#{@base}/rabbit.rd"
109
- @source = Rabbit::Source::URI.new("UTF-8", logger, @uri)
110
- end
111
-
112
- def test_base
113
- assert_equal(@base, @source.base)
114
- end
115
-
116
- def test_full_path
117
- image = "sample.png"
118
-
119
- assert_equal("#{@base}/#{image}", @source.full_path(image))
120
- end
121
- end
122
- end
@@ -1,47 +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/theme-configuration"
18
-
19
- class TestThemeConfiguration < Test::Unit::TestCase
20
- def setup
21
- @theme = Rabbit::ThemeConfiguration.new
22
- end
23
-
24
- def test_merge!
25
- author_conf = {
26
- "markup_language" => "rd",
27
- "name" => "Kouhei Sutou",
28
- "email" => "kou@cozmixng.org",
29
- "rubygems_user" => "kou",
30
- "slideshare_user" => "kou",
31
- "speaker_deck_user" => "kou",
32
- }
33
- conf = {
34
- "id" => "clear-blue",
35
- "tags" => ["blue"],
36
- "version" => "1.0.2",
37
- "licenses" => ["GPLv3+", "GFDL", "CC BY-SA 3.0"],
38
- "author" => author_conf,
39
- }
40
- @theme.merge!(conf)
41
- assert_equal(conf, @theme.to_hash)
42
- end
43
-
44
- def test_default_version
45
- assert_equal("1.0.0", @theme.version)
46
- end
47
- end
data/test/test-utils.rb DELETED
@@ -1,64 +0,0 @@
1
- # Copyright (C) 2005-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/utils"
18
-
19
- class RabbitUtilsTest < Test::Unit::TestCase
20
- def test_combination
21
- assert_combination([], [])
22
- assert_combination([[], [1]], [1])
23
- assert_combination([[], [1], [2], [1, 2]], [1, 2])
24
- assert_combination([[], [1], [2], [3], [1, 2], [1, 3], [2, 3], [1, 2, 3]],
25
- [1, 2, 3])
26
- end
27
-
28
- def test_parse_four_way
29
- assert_four_way([1, 1, 1, 1], %w(1))
30
- assert_four_way([1, 2, 1, 2], %w(1 2))
31
- assert_four_way([1, 2, 3, 2], %w(1 2 3))
32
- assert_four_way([1, 2, 3, 4], %w(1 2 3 4))
33
-
34
- assert_invalid_four_way([])
35
- assert_invalid_four_way(%w(1 2 3 4 5))
36
- assert_invalid_four_way(%w(a))
37
- assert_invalid_four_way(%w(1.0))
38
- end
39
-
40
- private
41
- def assert_combination(expected, elements)
42
- _wrap_assertion do
43
- results = Rabbit::Utils.combination(elements)
44
- assert_equal(normalize_combination_results(expected),
45
- normalize_combination_results(results))
46
- end
47
- end
48
-
49
- def normalize_combination_results(results)
50
- results.collect {|result| result.sort}.sort
51
- end
52
-
53
- def assert_four_way(expected, input)
54
- _wrap_assertion do
55
- assert_equal(expected, Rabbit::Utils.parse_four_way(input))
56
- end
57
- end
58
-
59
- def assert_invalid_four_way(input)
60
- _wrap_assertion do
61
- assert_raises(ArgumentError) {Rabbit::Utils.parse_four_way(input)}
62
- end
63
- end
64
- end