rabbit 3.0.0 → 3.0.2

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 (154) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +2 -1
  3. data/data/locale/en/LC_MESSAGES/rabbit.mo +0 -0
  4. data/data/locale/ja/LC_MESSAGES/rabbit.mo +0 -0
  5. data/doc/_config.yml +2 -2
  6. data/doc/_layouts/skeleton.html +0 -7
  7. data/doc/en/faq.rd +4 -2
  8. data/doc/en/install/homebrew.rd +8 -13
  9. data/doc/en/news.rd +158 -0
  10. data/doc/en/sample/hiki/rabbit.hiki +0 -4
  11. data/doc/en/sample/rd/rabbit.rd +0 -4
  12. data/doc/en/usage/rabbit-slide.rd +3 -3
  13. data/doc/images/screenshots/en/blue-circle-raw.png +0 -0
  14. data/doc/images/screenshots/en/blue-circle.png +0 -0
  15. data/doc/images/screenshots/en/clear-blue-raw.png +0 -0
  16. data/doc/images/screenshots/en/clear-blue.png +0 -0
  17. data/doc/images/screenshots/en/cozmixng-raw.png +0 -0
  18. data/doc/images/screenshots/en/cozmixng.png +0 -0
  19. data/doc/images/screenshots/en/dark-gradation-raw.png +0 -0
  20. data/doc/images/screenshots/en/dark-gradation.png +0 -0
  21. data/doc/images/screenshots/en/day-white-raw.png +0 -0
  22. data/doc/images/screenshots/en/day-white.png +0 -0
  23. data/doc/images/screenshots/en/debian-raw.png +0 -0
  24. data/doc/images/screenshots/en/debian.png +0 -0
  25. data/doc/images/screenshots/en/green-circle-raw.png +0 -0
  26. data/doc/images/screenshots/en/green-circle.png +0 -0
  27. data/doc/images/screenshots/en/night-black-raw.png +0 -0
  28. data/doc/images/screenshots/en/night-black.png +0 -0
  29. data/doc/images/screenshots/en/rabbit-raw.png +0 -0
  30. data/doc/images/screenshots/en/rabbit.png +0 -0
  31. data/doc/images/screenshots/en/ranguba-raw.png +0 -0
  32. data/doc/images/screenshots/en/ranguba.png +0 -0
  33. data/doc/images/screenshots/en/red-frame-raw.png +0 -0
  34. data/doc/images/screenshots/en/red-frame.png +0 -0
  35. data/doc/images/screenshots/en/ruby-gnome2-raw.png +0 -0
  36. data/doc/images/screenshots/en/ruby-gnome2.png +0 -0
  37. data/doc/images/screenshots/en/rubykaigi2011-raw.png +0 -0
  38. data/doc/images/screenshots/en/rubykaigi2011.png +0 -0
  39. data/doc/images/screenshots/ja/blue-circle-raw.png +0 -0
  40. data/doc/images/screenshots/ja/blue-circle.png +0 -0
  41. data/doc/images/screenshots/ja/clear-blue-raw.png +0 -0
  42. data/doc/images/screenshots/ja/clear-blue.png +0 -0
  43. data/doc/images/screenshots/ja/cozmixng-raw.png +0 -0
  44. data/doc/images/screenshots/ja/cozmixng.png +0 -0
  45. data/doc/images/screenshots/ja/dark-gradation-raw.png +0 -0
  46. data/doc/images/screenshots/ja/dark-gradation.png +0 -0
  47. data/doc/images/screenshots/ja/day-white-raw.png +0 -0
  48. data/doc/images/screenshots/ja/day-white.png +0 -0
  49. data/doc/images/screenshots/ja/debian-raw.png +0 -0
  50. data/doc/images/screenshots/ja/debian.png +0 -0
  51. data/doc/images/screenshots/ja/green-circle-raw.png +0 -0
  52. data/doc/images/screenshots/ja/green-circle.png +0 -0
  53. data/doc/images/screenshots/ja/night-black-raw.png +0 -0
  54. data/doc/images/screenshots/ja/night-black.png +0 -0
  55. data/doc/images/screenshots/ja/rabbit-raw.png +0 -0
  56. data/doc/images/screenshots/ja/rabbit.png +0 -0
  57. data/doc/images/screenshots/ja/ranguba-raw.png +0 -0
  58. data/doc/images/screenshots/ja/ranguba.png +0 -0
  59. data/doc/images/screenshots/ja/red-frame-raw.png +0 -0
  60. data/doc/images/screenshots/ja/red-frame.png +0 -0
  61. data/doc/images/screenshots/ja/ruby-gnome2-raw.png +0 -0
  62. data/doc/images/screenshots/ja/ruby-gnome2.png +0 -0
  63. data/doc/images/screenshots/ja/rubykaigi2011-raw.png +0 -0
  64. data/doc/images/screenshots/ja/rubykaigi2011.png +0 -0
  65. data/doc/index.html.en +1 -1
  66. data/doc/ja/faq.rd +2 -0
  67. data/doc/ja/install/homebrew.rd +8 -12
  68. data/doc/ja/news.rd +157 -0
  69. data/doc/ja/sample/hiki/rabbit.hiki +0 -4
  70. data/doc/ja/sample/rd/rabbit.rd +0 -4
  71. data/doc/ja/usage/rabbit-slide.rd +3 -3
  72. data/doc/ja/users.rd +7 -0
  73. data/lib/rabbit/action/toggle.rb +7 -0
  74. data/lib/rabbit/author-configuration.rb +3 -4
  75. data/lib/rabbit/canvas.rb +18 -6
  76. data/lib/rabbit/command/rabbit-slide.rb +59 -1
  77. data/lib/rabbit/command/rabbit-slide.ui +127 -49
  78. data/lib/rabbit/command/rabbit.rb +5 -9
  79. data/lib/rabbit/element/base.rb +1 -5
  80. data/lib/rabbit/element/image.rb +139 -89
  81. data/lib/rabbit/element/video.rb +3 -11
  82. data/lib/rabbit/error.rb +9 -3
  83. data/lib/rabbit/formatter.rb +1 -1
  84. data/lib/rabbit/frame.rb +102 -4
  85. data/lib/rabbit/gem-pusher.rb +29 -6
  86. data/lib/rabbit/image/base.rb +163 -28
  87. data/lib/rabbit/image/dia.rb +21 -14
  88. data/lib/rabbit/image/mermaid.rb +73 -0
  89. data/lib/rabbit/image/pdf.rb +22 -9
  90. data/lib/rabbit/image/svg.rb +1 -4
  91. data/lib/rabbit/image.rb +6 -6
  92. data/lib/rabbit/info-window.rb +106 -80
  93. data/lib/rabbit/keys.rb +6 -0
  94. data/lib/rabbit/menu.rb +2 -0
  95. data/lib/rabbit/parser/base.rb +2 -1
  96. data/lib/rabbit/parser/ext/blockdiag.rb +16 -14
  97. data/lib/rabbit/parser/ext/charty.rb +58 -0
  98. data/lib/rabbit/parser/ext/image.rb +38 -10
  99. data/lib/rabbit/parser/markdown/converter.rb +36 -30
  100. data/lib/rabbit/parser/rd/ext/block-verbatim.rb +33 -35
  101. data/lib/rabbit/parser/rd/ext/image.rb +23 -4
  102. data/lib/rabbit/parser/rd/rd2rabbit-lib.rb +3 -1
  103. data/lib/rabbit/parser/rd.rb +1 -1
  104. data/lib/rabbit/parser/wiki/output.rb +9 -9
  105. data/lib/rabbit/parser.rb +2 -2
  106. data/lib/rabbit/progress.rb +1 -1
  107. data/lib/rabbit/properties.rb +154 -0
  108. data/lib/rabbit/rabbit.rb +3 -1
  109. data/lib/rabbit/relative-size.rb +28 -0
  110. data/lib/rabbit/renderer/base.rb +6 -0
  111. data/lib/rabbit/renderer/display/drawing-area-base.rb +1 -2
  112. data/lib/rabbit/renderer/display/drawing-area-primitive.rb +1 -0
  113. data/lib/rabbit/renderer/display/info.rb +6 -1
  114. data/lib/rabbit/renderer/display/key-handler.rb +27 -2
  115. data/lib/rabbit/renderer/engine/cairo.rb +24 -3
  116. data/lib/rabbit/renderer/screen.rb +0 -1
  117. data/lib/rabbit/slide-configuration.rb +16 -8
  118. data/lib/rabbit/task/slide.rb +6 -33
  119. data/lib/rabbit/theme/background-image-toolkit/background-image-toolkit.rb +38 -0
  120. data/lib/rabbit/theme/clear-blue/clear-blue.rb +4 -2
  121. data/lib/rabbit/theme/edge-info-toolkit/edge-info-toolkit.rb +12 -2
  122. data/lib/rabbit/theme/image/image.rb +3 -0
  123. data/lib/rabbit/theme/image-slide-number/image-slide-number.rb +8 -3
  124. data/lib/rabbit/theme/image-timer/image-timer.rb +8 -3
  125. data/lib/rabbit/theme/pdf/pdf.rb +1 -1
  126. data/lib/rabbit/theme/slide-footer-info/slide-footer-info.rb +2 -0
  127. data/lib/rabbit/theme/tag/tag.rb +9 -2
  128. data/lib/rabbit/theme-configuration.rb +3 -4
  129. data/lib/rabbit/utils.rb +25 -2
  130. data/lib/rabbit/version.rb +2 -2
  131. data/lib/rabbit/video-window.rb +14 -3
  132. data/{test/test-slideshare.rb → lib/rabbit/yaml-loader.rb} +20 -15
  133. data/po/en/rabbit.edit.po +123 -121
  134. data/po/en/rabbit.po +28 -26
  135. data/po/fr/rabbit.edit.po +122 -120
  136. data/po/fr/rabbit.po +27 -25
  137. data/po/ja/rabbit.edit.po +156 -125
  138. data/po/ja/rabbit.po +34 -30
  139. data/rabbit.gemspec +0 -1
  140. data/sample/can_rabbit.rd +0 -24
  141. data/sample/rabbit-en.hiki +0 -4
  142. data/sample/rabbit-en.md +13 -0
  143. data/sample/rabbit-en.rd +10 -4
  144. data/sample/rabbit.hiki +0 -4
  145. data/sample/rabbit.md +21 -0
  146. data/sample/rabbit.rd +20 -4
  147. data/test/command/test-rabbit.rb +1 -0
  148. data/test/parser/test-markdown.rb +2 -2
  149. data/test/test-slide-configuration.rb +4 -2
  150. metadata +30 -46
  151. data/doc/css/jquery-ui/themes/ui-lightness.css +0 -573
  152. data/doc/javascripts/jquery-ui.js +0 -11544
  153. data/doc/javascripts/jquery.js +0 -7179
  154. data/lib/rabbit/slideshare.rb +0 -192
@@ -1,192 +0,0 @@
1
- # Copyright (C) 2012-2016 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 "uri"
18
- require "digest/sha1"
19
-
20
- require "nokogiri"
21
- require "faraday"
22
-
23
- require "rabbit/gettext"
24
- require "rabbit/command/rabbit"
25
- require "rabbit/password-reader"
26
-
27
- module Rabbit
28
- module Task
29
- class SlideShare
30
- class Error < StandardError
31
- end
32
-
33
- include GetText
34
-
35
- BASE_URL = "https://www.slideshare.net"
36
- API_PATH_PREFIX = "/api/2"
37
- API_KEY = "NB1B0IzS"
38
- SHARED_SECRET = "iuTFlPzU"
39
-
40
- attr_accessor :user, :pdf_path, :id, :title, :description, :tags
41
- def initialize(logger)
42
- @logger = logger
43
- @user = nil
44
- @pdf_path = nil
45
- @id = nil
46
- @title = nil
47
- @description = nil
48
- @tags = []
49
- @connection = Faraday.new(:url => BASE_URL) do |builder|
50
- builder.request :multipart
51
- builder.request :url_encoded
52
- builder.response :logger, @logger
53
- builder.adapter :net_http
54
- end
55
- end
56
-
57
- def upload
58
- slideshow_id = nil
59
- begin
60
- slideshow_id = upload_slide
61
- rescue Error
62
- @logger.error(_("Feailed to upload: %s") % $!.message)
63
- return nil
64
- end
65
-
66
- begin
67
- edit_title(slideshow_id)
68
- rescue Error
69
- @logger.error(_("Feailed to edit title: %s") % $!.message)
70
- return nil
71
- end
72
-
73
- url = nil
74
- begin
75
- url = slide_url(slideshow_id)
76
- rescue Error
77
- @logger.error(_("Feailed to get slide URL: %s") % $!.message)
78
- return nil
79
- end
80
- url
81
- end
82
-
83
- private
84
- def upload_slide
85
- payload = {
86
- :username => @user,
87
- :password => password,
88
- :slideshow_title => upload_title,
89
- :slideshow_srcfile => Faraday::UploadIO.new(@pdf_path,
90
- "application/pdf"),
91
- :slideshow_description => @description,
92
- :slideshow_tags => @tags.join(","),
93
- }
94
- response = post("upload_slideshow", payload)
95
- parse_upload_slideshow_response(response)
96
- end
97
-
98
- def edit_title(slideshow_id)
99
- payload = {
100
- :username => @user,
101
- :password => password,
102
- :slideshow_id => slideshow_id,
103
- :slideshow_title => @title,
104
- }
105
- response = get("edit_slideshow", payload)
106
- parse_edit_slideshow_response(response)
107
- end
108
-
109
- def slide_url(slideshow_id)
110
- payload = {
111
- :slideshow_id => slideshow_id,
112
- }
113
- response = get("get_slideshow", payload)
114
- parse_get_slideshow_response(response)
115
- end
116
-
117
- def prepare_payload(payload)
118
- payload = common_payload.merge(payload)
119
- payload.keys.each do |key|
120
- payload.delete(key) if payload[key].nil?
121
- end
122
- payload
123
- end
124
-
125
- def get(command, payload)
126
- @connection.get(api_url(command), prepare_payload(payload))
127
- end
128
-
129
- def post(command, payload)
130
- @connection.post(api_url(command), prepare_payload(payload))
131
- end
132
-
133
- def api_url(command)
134
- "#{API_PATH_PREFIX}/#{command}"
135
- end
136
-
137
- def upload_title
138
- @id.gsub(/-/, " ")
139
- end
140
-
141
- def password
142
- @password ||= read_password
143
- end
144
-
145
- def read_password
146
- prompt = _("Enter password on SlideShare [%{user}]: ") % {:user => @user}
147
- reader = PasswordReader.new(prompt)
148
- reader.read
149
- end
150
-
151
- def common_payload
152
- timestamp = Time.now.to_i.to_s
153
- {
154
- :api_key => API_KEY,
155
- :ts => timestamp,
156
- :hash => Digest::SHA1.hexdigest("#{SHARED_SECRET}#{timestamp}"),
157
- }
158
- end
159
-
160
- def parse_response(http_response)
161
- @logger.debug(http_response.body)
162
-
163
- unless http_response.success?
164
- raise Error, "#{http_response.status}\n#{http_response.body}"
165
- end
166
-
167
- response = Nokogiri::XML(http_response.body)
168
- if response.root.name == "SlideShareServiceError"
169
- message = response.root.elements[0]
170
- raise Error, message
171
- end
172
-
173
- response
174
- end
175
-
176
- def parse_upload_slideshow_response(http_response)
177
- response = parse_response(http_response)
178
- response.xpath("/SlideShowUploaded/SlideShowID").text.to_i
179
- end
180
-
181
- def parse_edit_slideshow_response(http_response)
182
- response = parse_response(http_response)
183
- response.xpath("/SlideShowEdited/SlideShowID").text.to_i
184
- end
185
-
186
- def parse_get_slideshow_response(http_response)
187
- response = parse_response(http_response)
188
- response.xpath("/Slideshow/URL").text
189
- end
190
- end
191
- end
192
- end