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,4 +1,18 @@
1
- require 'rabbit/utils'
1
+ # Copyright (C) 2006-2025 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.
2
16
 
3
17
  module Rabbit
4
18
  class Searcher
data/lib/rabbit/size.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2015-2019 Kouhei Sutou <kou@cozmixng.org>
1
+ # Copyright (C) 2015-2025 Kouhei Sutou <kou@cozmixng.org>
2
2
  #
3
3
  # This program is free software; you can redistribute it and/or modify
4
4
  # it under the terms of the GNU General Public License as published by
@@ -56,6 +56,14 @@ module Rabbit
56
56
  @logical_scale
57
57
  end
58
58
 
59
+ def resolve_logical_x(x)
60
+ x * @logical_scale[0]
61
+ end
62
+
63
+ def resolve_logical_y(y)
64
+ y * @logical_scale[0]
65
+ end
66
+
59
67
  private
60
68
  def compute_logical_size
61
69
  @logical_width = @base_width
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2012-2021 Sutou Kouhei <kou@cozmixng.org>
1
+ # Copyright (C) 2012-2025 Sutou Kouhei <kou@cozmixng.org>
2
2
  #
3
3
  # This program is free software; you can redistribute it and/or modify
4
4
  # it under the terms of the GNU General Public License as published by
@@ -17,11 +17,10 @@
17
17
  require "date"
18
18
  require "time"
19
19
 
20
- require "rabbit/gettext"
21
- require "rabbit/logger"
22
- require "rabbit/author-configuration"
23
- require "rabbit/path-manipulatable"
24
- require "rabbit/yaml-loader"
20
+ require_relative "author-configuration"
21
+ require_relative "path-manipulatable"
22
+ require_relative "rabbit"
23
+ require_relative "yaml-loader"
25
24
 
26
25
  module Rabbit
27
26
  class SlideConfiguration
@@ -30,7 +29,6 @@ module Rabbit
30
29
 
31
30
  GEM_NAME_PREFIX = "rabbit-slide"
32
31
 
33
- attr_accessor :logger
34
32
  attr_accessor :id
35
33
  attr_accessor :base_name
36
34
  attr_accessor :tags
@@ -47,8 +45,7 @@ module Rabbit
47
45
  attr_accessor :width
48
46
  attr_accessor :height
49
47
  attr_accessor :source_code_uri
50
- def initialize(logger=nil)
51
- @logger = logger || Logger.default
48
+ def initialize
52
49
  clear
53
50
  end
54
51
 
@@ -71,7 +68,7 @@ module Rabbit
71
68
  merge!(conf)
72
69
  rescue
73
70
  format = _("Failed to read slide configuration: %s: %s")
74
- @logger.error(format % [path, $!.message])
71
+ Rabbit.logger.error(format % [path, $!.message])
75
72
  end
76
73
 
77
74
  def save(base_dir)
@@ -81,7 +78,7 @@ module Rabbit
81
78
  end
82
79
  rescue
83
80
  format = _("Failed to write slide configuration: %s: %s")
84
- @logger.error(format % [config_path, $!.message])
81
+ Rabbit.logger.error(format % [config_path, $!.message])
85
82
  end
86
83
 
87
84
  def clear
@@ -98,8 +95,8 @@ module Rabbit
98
95
  @vimeo_id = nil
99
96
  @youtube_id = nil
100
97
  @author = nil
101
- @width = 800
102
- @height = 600
98
+ @width = 1920
99
+ @height = 1080
103
100
  @source_code_uri = nil
104
101
  end
105
102
 
@@ -122,7 +119,7 @@ module Rabbit
122
119
  @tags |= (conf["tags"] || [])
123
120
  @licenses |= (conf["licenses"] || [])
124
121
 
125
- @author ||= AuthorConfiguration.new(@logger)
122
+ @author ||= AuthorConfiguration.new
126
123
  @author.merge!(conf["author"] || {})
127
124
 
128
125
  @width = conf["width"] || @width
@@ -1,7 +1,23 @@
1
- require 'soap/rpc/driver'
2
-
3
- require 'rabbit/soap/base'
4
- require 'rabbit/front'
1
+ # Copyright (C) 2005-2025 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 "soap/rpc/driver"
18
+
19
+ require_relative "base"
20
+ require_relative "../front"
5
21
 
6
22
  module Rabbit
7
23
  module SOAP
@@ -1,6 +1,22 @@
1
+ # Copyright (C) 2006-2025 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
+
1
17
  require "soap/rpc/httpserver"
2
18
 
3
- require "rabbit/soap/base"
19
+ require_relative "base"
4
20
 
5
21
  module Rabbit
6
22
  module SOAP
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2004-2024 Sutou Kouhei <kou@cozmixng.org>
1
+ # Copyright (C) 2004-2025 Sutou Kouhei <kou@cozmixng.org>
2
2
  #
3
3
  # This program is free software; you can redistribute it and/or modify
4
4
  # it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
14
14
  # with this program; if not, write to the Free Software Foundation, Inc.,
15
15
  # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16
16
 
17
- require "rabbit/source/base"
17
+ require_relative "base"
18
18
 
19
19
  module Rabbit
20
20
  module Source
@@ -26,8 +26,8 @@ module Rabbit
26
26
  N_("none (get from STDIN) or [FILE_NAMES]")
27
27
  end
28
28
 
29
- def initialize(encoding, logger, argf)
30
- super(encoding, logger)
29
+ def initialize(encoding, argf)
30
+ super(encoding)
31
31
  @argf = argf
32
32
  end
33
33
 
@@ -36,7 +36,7 @@ module Rabbit
36
36
  begin
37
37
  @argf.read
38
38
  rescue
39
- @logger.error($!.message)
39
+ Rabbit.logger.error($!.message)
40
40
  +""
41
41
  end
42
42
  end
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2004-2024 Kouhei Sutou <kou@cozmixng.org>
1
+ # Copyright (C) 2004-2025 Sutou Kouhei <kou@cozmixng.org>
2
2
  #
3
3
  # This program is free software; you can redistribute it and/or modify
4
4
  # it under the terms of the GNU General Public License as published by
@@ -14,10 +14,10 @@
14
14
  # with this program; if not, write to the Free Software Foundation, Inc.,
15
15
  # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16
16
 
17
- require 'fileutils'
18
- require 'tmpdir'
17
+ require "fileutils"
18
+ require "tmpdir"
19
19
 
20
- require 'rabbit/rabbit'
20
+ require_relative "../rabbit"
21
21
 
22
22
  module Rabbit
23
23
  module Source
@@ -30,9 +30,8 @@ module Rabbit
30
30
  attr_reader :base, :tmp_base
31
31
  attr_accessor :encoding, :force_modified
32
32
 
33
- def initialize(encoding, logger)
33
+ def initialize(encoding)
34
34
  @encoding = encoding
35
- @logger = logger
36
35
  @source = nil
37
36
  @force_modified = false
38
37
  init_base
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2004-2024 Sutou Kouhei <kou@cozmixng.org>
1
+ # Copyright (C) 2004-2025 Sutou Kouhei <kou@cozmixng.org>
2
2
  #
3
3
  # This program is free software; you can redistribute it and/or modify
4
4
  # it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
14
14
  # with this program; if not, write to the Free Software Foundation, Inc.,
15
15
  # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16
16
 
17
- require 'rabbit/source/base'
17
+ require_relative "base"
18
18
 
19
19
  module Rabbit
20
20
  module Source
@@ -25,9 +25,9 @@ module Rabbit
25
25
  N_("[FILENAME]")
26
26
  end
27
27
 
28
- def initialize(encoding, logger, name)
28
+ def initialize(encoding, name)
29
29
  @name = name
30
- super(encoding, logger)
30
+ super(encoding)
31
31
  @mtime = nil
32
32
  end
33
33
 
@@ -39,7 +39,7 @@ module Rabbit
39
39
  f.read
40
40
  end
41
41
  rescue SourceUnreadableError
42
- @logger.error($!.message)
42
+ Rabbit.logger.error($!.message)
43
43
  @mtime = Time.now + LimitAccessInterval::MINIMUM_ACCESS_TIME
44
44
  +""
45
45
  end
@@ -1,4 +1,20 @@
1
- require 'rabbit/source/base'
1
+ # Copyright (C) 2005-2025 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_relative "base"
2
18
 
3
19
  module Rabbit
4
20
  module Source
@@ -11,10 +27,10 @@ module Rabbit
11
27
 
12
28
  attr_accessor :extension
13
29
 
14
- def initialize(encoding, logger, name=nil)
15
- super(encoding, logger)
30
+ def initialize(encoding, name=nil)
31
+ super(encoding)
16
32
  if name
17
- file_source = File.new(encoding, logger, name)
33
+ file_source = File.new(encoding, name)
18
34
  @original_source = file_source.read
19
35
  set_base(file_source.base)
20
36
  @extension = extract_extension(name)
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2004-2024 Sutou Kouhei <kou@cozmixng.org>
1
+ # Copyright (C) 2004-2025 Sutou Kouhei <kou@cozmixng.org>
2
2
  #
3
3
  # This program is free software; you can redistribute it and/or modify
4
4
  # it under the terms of the GNU General Public License as published by
@@ -17,7 +17,7 @@
17
17
  require "uri"
18
18
  require "open-uri"
19
19
 
20
- require 'rabbit/source/base'
20
+ require_relative "base"
21
21
 
22
22
  module Rabbit
23
23
  module Source
@@ -27,13 +27,13 @@ module Rabbit
27
27
  include LimitAccessInterval
28
28
 
29
29
  class << self
30
- def new(encoding, logger, uri)
30
+ def new(encoding, uri)
31
31
  parsed_uri = ::URI.parse(uri)
32
32
  case parsed_uri.scheme
33
33
  when nil
34
- File.new(encoding, logger, parsed_uri.path)
34
+ File.new(encoding, parsed_uri.path)
35
35
  when /\Afile\z/i
36
- File.new(encoding, logger, uri.gsub(/\Afile:\/\//i, ""))
36
+ File.new(encoding, uri.gsub(/\Afile:\/\//i, ""))
37
37
  else
38
38
  super
39
39
  end
@@ -44,9 +44,9 @@ module Rabbit
44
44
  end
45
45
  end
46
46
 
47
- def initialize(encoding, logger, uri)
47
+ def initialize(encoding, uri)
48
48
  @uri = ::URI.parse(uri)
49
- super(encoding, logger)
49
+ super(encoding)
50
50
  @last_modified = nil
51
51
  end
52
52
 
@@ -66,7 +66,7 @@ module Rabbit
66
66
  f.read
67
67
  end
68
68
  rescue
69
- @logger.error($!.message)
69
+ Rabbit.logger.error($!.message)
70
70
  @last_modified = Time.now + MINIMUM_ACCESS_TIME
71
71
  +""
72
72
  end
@@ -84,12 +84,10 @@ module Rabbit
84
84
  f.last_modified
85
85
  end
86
86
  rescue
87
- @logger.error($!.message)
87
+ Rabbit.logger.error($!.message)
88
88
  Time.now
89
89
  end
90
90
  end
91
-
92
91
  end
93
-
94
92
  end
95
93
  end
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2012 Kouhei Sutou <kou@cozmixng.org>
1
+ # Copyright (C) 2012-2025 Sutou Kouhei <kou@cozmixng.org>
2
2
  #
3
3
  # This program is free software; you can redistribute it and/or modify
4
4
  # it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
14
14
  # with this program; if not, write to the Free Software Foundation, Inc.,
15
15
  # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16
16
 
17
- require "rabbit/gettext"
17
+ require_relative "../rabbit"
18
18
 
19
19
  module Rabbit
20
20
  module SourceGenerator
@@ -22,11 +22,6 @@ module Rabbit
22
22
  include GetText
23
23
  include PathManipulatable
24
24
 
25
- attr_accessor :logger
26
- def initialize(logger=nil)
27
- @logger = logger || Logger.default
28
- end
29
-
30
25
  def heading(level, title)
31
26
  ("!" * level) + " #{title}"
32
27
  end
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2012 Kouhei Sutou <kou@cozmixng.org>
1
+ # Copyright (C) 2012-2025 Sutou Kouhei <kou@cozmixng.org>
2
2
  #
3
3
  # This program is free software; you can redistribute it and/or modify
4
4
  # it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
14
14
  # with this program; if not, write to the Free Software Foundation, Inc.,
15
15
  # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16
16
 
17
- require "rabbit/gettext"
17
+ require_relative "../rabbit"
18
18
 
19
19
  module Rabbit
20
20
  module SourceGenerator
@@ -22,11 +22,6 @@ module Rabbit
22
22
  include GetText
23
23
  include PathManipulatable
24
24
 
25
- attr_accessor :logger
26
- def initialize(logger=nil)
27
- @logger = logger || Logger.default
28
- end
29
-
30
25
  def heading(level, title)
31
26
  ("#" * level) + " #{title}"
32
27
  end
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2012 Kouhei Sutou <kou@cozmixng.org>
1
+ # Copyright (C) 2012-2025 Sutou Kouhei <kou@cozmixng.org>
2
2
  #
3
3
  # This program is free software; you can redistribute it and/or modify
4
4
  # it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
14
14
  # with this program; if not, write to the Free Software Foundation, Inc.,
15
15
  # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16
16
 
17
- require "rabbit/gettext"
17
+ require_relative "../rabbit"
18
18
 
19
19
  module Rabbit
20
20
  module SourceGenerator
@@ -22,11 +22,6 @@ module Rabbit
22
22
  include GetText
23
23
  include PathManipulatable
24
24
 
25
- attr_accessor :logger
26
- def initialize(logger=nil)
27
- @logger = logger || Logger.default
28
- end
29
-
30
25
  def heading(level, title)
31
26
  ("=" * level) + " #{title}"
32
27
  end
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2012 Kouhei Sutou <kou@cozmixng.org>
1
+ # Copyright (C) 2012-2025 Sutou Kouhei <kou@cozmixng.org>
2
2
  #
3
3
  # This program is free software; you can redistribute it and/or modify
4
4
  # it under the terms of the GNU General Public License as published by
@@ -33,7 +33,7 @@ module Rabbit
33
33
  end
34
34
  end
35
35
 
36
- require "rabbit/source-generator/rd"
37
- require "rabbit/source-generator/hiki"
38
- require "rabbit/source-generator/markdown"
36
+ require_relative "source-generator/rd"
37
+ require_relative "source-generator/hiki"
38
+ require_relative "source-generator/markdown"
39
39
 
data/lib/rabbit/source.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2017 Kouhei Sutou <kou@cozmixng.org>
1
+ # Copyright (C) 2017-2025 Sutou Kouhei <kou@cozmixng.org>
2
2
  #
3
3
  # This program is free software; you can redistribute it and/or modify
4
4
  # it under the terms of the GNU General Public License as published by
@@ -14,10 +14,10 @@
14
14
  # with this program; if not, write to the Free Software Foundation, Inc.,
15
15
  # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16
16
 
17
- require "rabbit/source/argf"
18
- require "rabbit/source/file"
19
- require "rabbit/source/memory"
20
- require "rabbit/source/uri"
17
+ require_relative "source/argf"
18
+ require_relative "source/file"
19
+ require_relative "source/memory"
20
+ require_relative "source/uri"
21
21
 
22
22
  module Rabbit
23
23
  module Source
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2012-2022 Sutou Kouhei <kou@cozmixng.org>
1
+ # Copyright (C) 2012-2025 Sutou Kouhei <kou@cozmixng.org>
2
2
  #
3
3
  # This program is free software; you can redistribute it and/or modify
4
4
  # it under the terms of the GNU General Public License as published by
@@ -16,13 +16,11 @@
16
16
 
17
17
  require "rake"
18
18
 
19
- require "rabbit/gettext"
20
- require "rabbit/logger"
21
- require "rabbit/command/rabbit"
22
- require "rabbit/slide-configuration"
23
- require "rabbit/readme-parser"
24
- require "rabbit/gem-builder"
25
- require "rabbit/gem-pusher"
19
+ require_relative "../command/rabbit"
20
+ require_relative "../slide-configuration"
21
+ require_relative "../readme-parser"
22
+ require_relative "../gem-builder"
23
+ require_relative "../gem-pusher"
26
24
 
27
25
  module Rabbit
28
26
  module Task
@@ -32,7 +30,6 @@ module Rabbit
32
30
 
33
31
  attr_accessor :package_dir, :pdf_dir, :required_rabbit_version
34
32
  def initialize
35
- @logger = Logger.default
36
33
  @slide = load_slide_configuration
37
34
  @package_dir = "pkg"
38
35
  @pdf_dir = "pdf"
@@ -47,18 +44,19 @@ module Rabbit
47
44
 
48
45
  private
49
46
  def load_slide_configuration
50
- slide_conf = SlideConfiguration.new(@logger)
47
+ slide_conf = SlideConfiguration.new
51
48
  slide_conf.load
52
49
  slide_conf
53
50
  end
54
51
 
55
52
  def create_spec
56
- readme_parser = READMEParser.new(@logger)
53
+ readme_parser = READMEParser.new
57
54
  readme_parser.parse
58
55
 
59
56
  Gem::Specification.new do |spec|
60
57
  spec.name = @slide.gem_name
61
58
  spec.version = @slide.version
59
+ spec.date = @slide.presentation_date
62
60
  spec.homepage = homepage
63
61
  spec.authors = [@slide.author.name]
64
62
  spec.email = [@slide.author.email]
@@ -68,6 +66,10 @@ module Rabbit
68
66
  if @slide.source_code_uri
69
67
  spec.metadata["source_code_uri"] = @slide.source_code_uri
70
68
  end
69
+ markup_language = @slide.author.markup_language
70
+ if markup_language
71
+ spec.metadata["markup_language"] = markup_language.to_s
72
+ end
71
73
 
72
74
  slide_conf_path = @slide.path
73
75
  spec.files = [".rabbit", slide_conf_path, "Rakefile"]
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2012-2016 Kouhei Sutou <kou@cozmixng.org>
1
+ # Copyright (C) 2012-2025 Sutou Kouhei <kou@cozmixng.org>
2
2
  #
3
3
  # This program is free software; you can redistribute it and/or modify
4
4
  # it under the terms of the GNU General Public License as published by
@@ -16,13 +16,11 @@
16
16
 
17
17
  require "rake"
18
18
 
19
- require "rabbit/gettext"
20
- require "rabbit/logger"
21
- require "rabbit/command/rabbit"
22
- require "rabbit/theme-configuration"
23
- require "rabbit/readme-parser"
24
- require "rabbit/gem-builder"
25
- require "rabbit/gem-pusher"
19
+ require_relative "../command/rabbit"
20
+ require_relative "../theme-configuration"
21
+ require_relative "../readme-parser"
22
+ require_relative "../gem-builder"
23
+ require_relative "../gem-pusher"
26
24
 
27
25
  module Rabbit
28
26
  module Task
@@ -32,7 +30,6 @@ module Rabbit
32
30
 
33
31
  attr_accessor :package_dir, :pdf_dir, :required_rabbit_version
34
32
  def initialize
35
- @logger = Logger.default
36
33
  @theme = load_theme_configuration
37
34
  @spec = nil
38
35
  @package_dir = "pkg"
@@ -48,13 +45,13 @@ module Rabbit
48
45
 
49
46
  private
50
47
  def load_theme_configuration
51
- theme_conf = ThemeConfiguration.new(@logger)
48
+ theme_conf = ThemeConfiguration.new
52
49
  theme_conf.load
53
50
  theme_conf
54
51
  end
55
52
 
56
53
  def create_spec
57
- readme_parser = READMEParser.new(@logger)
54
+ readme_parser = READMEParser.new
58
55
  readme_parser.parse
59
56
 
60
57
  Gem::Specification.new do |spec|
data/lib/rabbit/task.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2012 Kouhei Sutou <kou@cozmixng.org>
1
+ # Copyright (C) 2012-2025 Sutou Kouhei <kou@cozmixng.org>
2
2
  #
3
3
  # This program is free software; you can redistribute it and/or modify
4
4
  # it under the terms of the GNU General Public License as published by
@@ -14,5 +14,5 @@
14
14
  # with this program; if not, write to the Free Software Foundation, Inc.,
15
15
  # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16
16
 
17
- require "rabbit/task/slide"
18
- require "rabbit/task/theme"
17
+ require_relative "task/slide"
18
+ require_relative "task/theme"