tdiary 3.2.2.20130507

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 (509) hide show
  1. checksums.yaml +7 -0
  2. data/.coveralls.yml +1 -0
  3. data/.gitignore +16 -0
  4. data/.travis.yml +29 -0
  5. data/Capfile +2 -0
  6. data/ChangeLog +3173 -0
  7. data/Gemfile +58 -0
  8. data/Gemfile.lock +201 -0
  9. data/LICENSE +340 -0
  10. data/Procfile +1 -0
  11. data/README.md +33 -0
  12. data/Rakefile +26 -0
  13. data/bin/tdiary +7 -0
  14. data/config.ru +61 -0
  15. data/data/.htaccess +2 -0
  16. data/doc/HOWTO-authenticate-in-rack.md +89 -0
  17. data/doc/HOWTO-make-io.md +305 -0
  18. data/doc/HOWTO-make-plugin.md +279 -0
  19. data/doc/HOWTO-make-theme.md +67 -0
  20. data/doc/HOWTO-testing-tDiary.md +44 -0
  21. data/doc/HOWTO-use-plugin.md +148 -0
  22. data/doc/HOWTO-write-tDiary.en.md +131 -0
  23. data/doc/HOWTO-write-tDiary.md +136 -0
  24. data/doc/INSTALL-paas.md +202 -0
  25. data/doc/INSTALL.md +160 -0
  26. data/doc/README.en.md +174 -0
  27. data/doc/README.md +56 -0
  28. data/doc/UPGRADE.md +164 -0
  29. data/doc/doc.css +115 -0
  30. data/dot.htaccess +27 -0
  31. data/index.fcgi +45 -0
  32. data/index.rb +57 -0
  33. data/js/00default.js +60 -0
  34. data/js/01conf.js +62 -0
  35. data/js/02edit.coffee +5 -0
  36. data/js/02edit.js +15 -0
  37. data/js/amazon.js +43 -0
  38. data/js/calendar3.js +130 -0
  39. data/js/caretposition.js +170 -0
  40. data/js/category.js +29 -0
  41. data/js/category_autocomplete.js +96 -0
  42. data/js/comment_ajax.js +27 -0
  43. data/js/draft.js +149 -0
  44. data/js/highlight.js +36 -0
  45. data/js/image.js +181 -0
  46. data/misc/convert2.rb +123 -0
  47. data/misc/filter/antispamservice.rb +101 -0
  48. data/misc/filter/limitdays.rb +40 -0
  49. data/misc/filter/linkcheck.rb +81 -0
  50. data/misc/filter/plugin/antispamservice.rb +82 -0
  51. data/misc/filter/plugin/en/antispamservice.rb +21 -0
  52. data/misc/filter/plugin/ja/antispamservice.rb +20 -0
  53. data/misc/lib/README +4 -0
  54. data/misc/lib/compatible.rb +1 -0
  55. data/misc/lib/fcgi_patch.rb +90 -0
  56. data/misc/migrate.rb +157 -0
  57. data/misc/paas/cloudfoundry/Gemfile +26 -0
  58. data/misc/paas/cloudfoundry/Gemfile.lock +85 -0
  59. data/misc/paas/heroku/Gemfile +22 -0
  60. data/misc/paas/heroku/Gemfile.lock +85 -0
  61. data/misc/paas/sqale/Gemfile +19 -0
  62. data/misc/paas/sqale/Gemfile.lock +85 -0
  63. data/misc/paas/sqale/Procfile +1 -0
  64. data/misc/paas/sqale/dot.env +1 -0
  65. data/misc/plugin/ChangeLog.DO_NOT_UPDATE +2333 -0
  66. data/misc/plugin/a.rb +211 -0
  67. data/misc/plugin/amazon.rb +403 -0
  68. data/misc/plugin/amazon/README.en +17 -0
  69. data/misc/plugin/amazon/README.ja +29 -0
  70. data/misc/plugin/amazon/amazonimg.rb +113 -0
  71. data/misc/plugin/amazon/large.png +0 -0
  72. data/misc/plugin/amazon/medium.png +0 -0
  73. data/misc/plugin/amazon/small.png +0 -0
  74. data/misc/plugin/append-css.rb +51 -0
  75. data/misc/plugin/bq.rb +48 -0
  76. data/misc/plugin/calendar2.rb +184 -0
  77. data/misc/plugin/calendar3.rb +256 -0
  78. data/misc/plugin/category.rb +779 -0
  79. data/misc/plugin/category_autocomplete.rb +33 -0
  80. data/misc/plugin/comment_ajax.rb +11 -0
  81. data/misc/plugin/comment_mail-qmail.rb +57 -0
  82. data/misc/plugin/comment_mail-sendmail.rb +56 -0
  83. data/misc/plugin/comment_mail-smtp.rb +59 -0
  84. data/misc/plugin/comment_rank.rb +36 -0
  85. data/misc/plugin/counter.rb +631 -0
  86. data/misc/plugin/daily_theme.rb +55 -0
  87. data/misc/plugin/disp_referrer.rb +1486 -0
  88. data/misc/plugin/doctype-html401tr.rb +16 -0
  89. data/misc/plugin/draft.rb +20 -0
  90. data/misc/plugin/dropdown_calendar.rb +32 -0
  91. data/misc/plugin/edit_today.rb +50 -0
  92. data/misc/plugin/en/a.rb +10 -0
  93. data/misc/plugin/en/amazon.rb +71 -0
  94. data/misc/plugin/en/append-css.rb +17 -0
  95. data/misc/plugin/en/bq.rb +12 -0
  96. data/misc/plugin/en/calendar2.rb +12 -0
  97. data/misc/plugin/en/category.rb +204 -0
  98. data/misc/plugin/en/counter.rb +48 -0
  99. data/misc/plugin/en/daily_theme.rb +14 -0
  100. data/misc/plugin/en/disp_referrer.rb +387 -0
  101. data/misc/plugin/en/dropdown_calendar.rb +14 -0
  102. data/misc/plugin/en/edit_today.rb +22 -0
  103. data/misc/plugin/en/hide-mail-field.rb +19 -0
  104. data/misc/plugin/en/highlight.rb +29 -0
  105. data/misc/plugin/en/image.rb +54 -0
  106. data/misc/plugin/en/kw.rb +22 -0
  107. data/misc/plugin/en/makerss.rb +47 -0
  108. data/misc/plugin/en/pb-show.rb +21 -0
  109. data/misc/plugin/en/ping.rb +16 -0
  110. data/misc/plugin/en/recent_comment.rb +44 -0
  111. data/misc/plugin/en/recent_comment3.rb +56 -0
  112. data/misc/plugin/en/recent_rss.rb +33 -0
  113. data/misc/plugin/en/referer_scheme.rb +48 -0
  114. data/misc/plugin/en/search_control.rb +74 -0
  115. data/misc/plugin/en/search_form.rb +22 -0
  116. data/misc/plugin/en/speed_comment.rb +19 -0
  117. data/misc/plugin/en/tb-show.rb +37 -0
  118. data/misc/plugin/en/todo.rb +43 -0
  119. data/misc/plugin/en/weather.rb +185 -0
  120. data/misc/plugin/en/xmlrpc.rb +14 -0
  121. data/misc/plugin/footnote.rb +92 -0
  122. data/misc/plugin/gradation.rb +39 -0
  123. data/misc/plugin/gradient.rb +36 -0
  124. data/misc/plugin/hide-mail-field.rb +50 -0
  125. data/misc/plugin/highlight.rb +22 -0
  126. data/misc/plugin/html_anchor.rb +34 -0
  127. data/misc/plugin/image.rb +290 -0
  128. data/misc/plugin/ja/amazon.rb +89 -0
  129. data/misc/plugin/ja/bq.rb +13 -0
  130. data/misc/plugin/ja/calendar2.rb +12 -0
  131. data/misc/plugin/ja/category.rb +212 -0
  132. data/misc/plugin/ja/daily_theme.rb +15 -0
  133. data/misc/plugin/ja/disp_referrer.rb +644 -0
  134. data/misc/plugin/ja/edit_today.rb +23 -0
  135. data/misc/plugin/ja/hide-mail-field.rb +20 -0
  136. data/misc/plugin/ja/highlight.rb +30 -0
  137. data/misc/plugin/ja/makerss.rb +44 -0
  138. data/misc/plugin/ja/my-sequel.rb +52 -0
  139. data/misc/plugin/ja/pb-show.rb +23 -0
  140. data/misc/plugin/ja/ping.rb +17 -0
  141. data/misc/plugin/ja/recent_comment.rb +45 -0
  142. data/misc/plugin/ja/recent_comment3.rb +57 -0
  143. data/misc/plugin/ja/recent_rss.rb +34 -0
  144. data/misc/plugin/ja/referer_scheme.rb +86 -0
  145. data/misc/plugin/ja/search_control.rb +75 -0
  146. data/misc/plugin/ja/search_form.rb +32 -0
  147. data/misc/plugin/ja/tb-show.rb +38 -0
  148. data/misc/plugin/ja/todo.rb +46 -0
  149. data/misc/plugin/ja/weather.rb +402 -0
  150. data/misc/plugin/ja/xmlrpc.rb +15 -0
  151. data/misc/plugin/kw.rb +150 -0
  152. data/misc/plugin/list.rb +40 -0
  153. data/misc/plugin/makelirs.rb +89 -0
  154. data/misc/plugin/makerss.rb +744 -0
  155. data/misc/plugin/my-ex.rb +68 -0
  156. data/misc/plugin/my-sequel.rb +539 -0
  157. data/misc/plugin/navi_user.rb +19 -0
  158. data/misc/plugin/number_anchor.rb +47 -0
  159. data/misc/plugin/pb-show.rb +165 -0
  160. data/misc/plugin/ping.rb +99 -0
  161. data/misc/plugin/pre_wrap.rb +19 -0
  162. data/misc/plugin/random_google.rb +165 -0
  163. data/misc/plugin/recent_comment.rb +82 -0
  164. data/misc/plugin/recent_comment3.rb +192 -0
  165. data/misc/plugin/recent_list.rb +91 -0
  166. data/misc/plugin/recent_namazu.rb +50 -0
  167. data/misc/plugin/recent_rss.rb +305 -0
  168. data/misc/plugin/referer-antibot.rb +53 -0
  169. data/misc/plugin/referer-utf8.rb +12 -0
  170. data/misc/plugin/referer_scheme.rb +87 -0
  171. data/misc/plugin/search_control.rb +227 -0
  172. data/misc/plugin/search_form.rb +53 -0
  173. data/misc/plugin/sn.rb +107 -0
  174. data/misc/plugin/speed_comment.rb +68 -0
  175. data/misc/plugin/squeeze.rb +272 -0
  176. data/misc/plugin/src.rb +30 -0
  177. data/misc/plugin/tb-show.rb +212 -0
  178. data/misc/plugin/title_list.rb +41 -0
  179. data/misc/plugin/title_tag.rb +80 -0
  180. data/misc/plugin/tlink.rb +163 -0
  181. data/misc/plugin/todo.rb +182 -0
  182. data/misc/plugin/weather.rb +505 -0
  183. data/misc/plugin/whatsnew.rb +100 -0
  184. data/misc/plugin/xmlrpc.rb +80 -0
  185. data/misc/plugin/xmlrpc/README +20 -0
  186. data/misc/plugin/xmlrpc/xmlrpc.rb +575 -0
  187. data/misc/style/emptdiary/README.rd +83 -0
  188. data/misc/style/emptdiary/README.rd.en +78 -0
  189. data/misc/style/emptdiary/emptdiary_style.rb +199 -0
  190. data/misc/style/etdiary/README.rd +83 -0
  191. data/misc/style/etdiary/etdiary_style.rb +446 -0
  192. data/misc/style/gfm/gfm_style.rb +194 -0
  193. data/misc/style/rd/README.rd +71 -0
  194. data/misc/style/rd/rd_style.rb +366 -0
  195. data/misc/style/wiki/README +116 -0
  196. data/misc/style/wiki/README.en +101 -0
  197. data/misc/style/wiki/wiki_parser.rb +273 -0
  198. data/misc/style/wiki/wiki_style.rb +478 -0
  199. data/misc/theme_convert/Readme.rd +21 -0
  200. data/misc/theme_convert/append.rcss +150 -0
  201. data/misc/theme_convert/theme_convert.rb +453 -0
  202. data/plugin/00default.rb +1015 -0
  203. data/plugin/05referer.rb +298 -0
  204. data/plugin/10spamfilter.rb +183 -0
  205. data/plugin/50sp.rb +146 -0
  206. data/plugin/60sf.rb +152 -0
  207. data/plugin/90migrate.rb +109 -0
  208. data/plugin/en/00default.rb +390 -0
  209. data/plugin/en/05referer.rb +49 -0
  210. data/plugin/en/10spamfilter.rb +81 -0
  211. data/plugin/en/50sp.rb +56 -0
  212. data/plugin/en/60sf.rb +60 -0
  213. data/plugin/ja/00default.rb +401 -0
  214. data/plugin/ja/05referer.rb +47 -0
  215. data/plugin/ja/10spamfilter.rb +79 -0
  216. data/plugin/ja/50sp.rb +66 -0
  217. data/plugin/ja/60sf.rb +73 -0
  218. data/public/.gitkeep +0 -0
  219. data/public/images/.gitkeep +0 -0
  220. data/public/javascripts/.gitkeep +0 -0
  221. data/public/stylesheets/.gitkeep +0 -0
  222. data/skel/category.rhtml +9 -0
  223. data/skel/conf.rhtml +23 -0
  224. data/skel/day.rhtml +33 -0
  225. data/skel/diary.rhtml +83 -0
  226. data/skel/footer.rhtml +8 -0
  227. data/skel/header.rhtml +10 -0
  228. data/skel/i.category.rhtml +6 -0
  229. data/skel/i.conf.rhtml +14 -0
  230. data/skel/i.day.rhtml +28 -0
  231. data/skel/i.diary.rhtml +17 -0
  232. data/skel/i.footer.rhtml +2 -0
  233. data/skel/i.header.rhtml +3 -0
  234. data/skel/i.latest.rhtml +24 -0
  235. data/skel/i.month.rhtml +39 -0
  236. data/skel/i.search.rhtml +5 -0
  237. data/skel/i.update.rhtml +40 -0
  238. data/skel/i.update.rhtml.en +40 -0
  239. data/skel/latest.rhtml +27 -0
  240. data/skel/mail.rtxt +18 -0
  241. data/skel/mail.rtxt.en +18 -0
  242. data/skel/month.rhtml +27 -0
  243. data/skel/plugin_error.rhtml +27 -0
  244. data/skel/preview.rhtml +85 -0
  245. data/skel/preview.rhtml.en +72 -0
  246. data/skel/referer.rhtml +24 -0
  247. data/skel/search.rhtml +14 -0
  248. data/skel/tdiary.rconf +76 -0
  249. data/skel/update.rhtml +103 -0
  250. data/skel/update.rhtml.en +83 -0
  251. data/spec/acceptance/append_comment_spec.rb +94 -0
  252. data/spec/acceptance/append_diary_spec.rb +98 -0
  253. data/spec/acceptance/bugfix/encoding_error_spec.rb +27 -0
  254. data/spec/acceptance/save_conf_comment_spec.rb +87 -0
  255. data/spec/acceptance/save_conf_default_spec.rb +169 -0
  256. data/spec/acceptance/save_conf_dnsbl_spec.rb +152 -0
  257. data/spec/acceptance/save_conf_filter_spec.rb +50 -0
  258. data/spec/acceptance/save_conf_plugin_spec.rb +69 -0
  259. data/spec/acceptance/save_conf_referer_spec.rb +60 -0
  260. data/spec/acceptance/save_conf_security_spec.rb +280 -0
  261. data/spec/acceptance/support/helpers.rb +49 -0
  262. data/spec/acceptance/support/paths.rb +7 -0
  263. data/spec/acceptance/update_diary_spec.rb +113 -0
  264. data/spec/acceptance/view_category_spec.rb +38 -0
  265. data/spec/acceptance/view_comment_spec.rb +67 -0
  266. data/spec/acceptance/view_diary_spec.rb +126 -0
  267. data/spec/acceptance/view_referer_spec.rb +31 -0
  268. data/spec/acceptance_helper.rb +101 -0
  269. data/spec/core/compatible_spec.rb +54 -0
  270. data/spec/core/core_ext_spec.rb +59 -0
  271. data/spec/core/plugin_spec.rb +389 -0
  272. data/spec/core/rack/assets/precompile_spec.rb +76 -0
  273. data/spec/core/rack/html_anchor_spec.rb +57 -0
  274. data/spec/core/rack/valid_request_path_spec.rb +67 -0
  275. data/spec/core/style/emptdiary_style_spec.rb +165 -0
  276. data/spec/core/style/etdiary_style_spec.rb +512 -0
  277. data/spec/core/style/gfm_style_spec.rb +334 -0
  278. data/spec/core/style/rd_style_spec.rb +202 -0
  279. data/spec/core/style/tdiary_style_spec.rb +240 -0
  280. data/spec/core/style/wiki_style_spec.rb +441 -0
  281. data/spec/fixtures/ascii8bit-pstore.db +0 -0
  282. data/spec/fixtures/invalid-sequence-volatile.tdr +9 -0
  283. data/spec/fixtures/just_installed.conf +1 -0
  284. data/spec/fixtures/plugin/ja/sample.rb +4 -0
  285. data/spec/fixtures/plugin/sample.rb +6 -0
  286. data/spec/fixtures/sample.rb +12 -0
  287. data/spec/fixtures/tdiary.conf.gem +212 -0
  288. data/spec/fixtures/tdiary.conf.rack +212 -0
  289. data/spec/fixtures/tdiary.conf.rdb +227 -0
  290. data/spec/fixtures/tdiary.conf.secure +204 -0
  291. data/spec/fixtures/tdiary.conf.webrick +212 -0
  292. data/spec/javascripts/00default_spec.js +35 -0
  293. data/spec/javascripts/fixtures/00default.html +1 -0
  294. data/spec/javascripts/support/jasmine.yml +76 -0
  295. data/spec/plugin/bq_spec.rb +24 -0
  296. data/spec/plugin/plugin_helper.rb +203 -0
  297. data/spec/spec_helper.rb +32 -0
  298. data/tdiary.conf.beginner +244 -0
  299. data/tdiary.conf.sample +345 -0
  300. data/tdiary.conf.sample-en +333 -0
  301. data/tdiary.gemspec +26 -0
  302. data/tdiary.rb +151 -0
  303. data/tdiary/admin.rb +236 -0
  304. data/tdiary/application.rb +57 -0
  305. data/tdiary/author_only_base.rb +171 -0
  306. data/tdiary/base.rb +220 -0
  307. data/tdiary/cli.rb +116 -0
  308. data/tdiary/comment.rb +40 -0
  309. data/tdiary/comment_manager.rb +94 -0
  310. data/tdiary/compatible.rb +72 -0
  311. data/tdiary/config.rb +270 -0
  312. data/tdiary/core_ext.rb +122 -0
  313. data/tdiary/deploy.rb +50 -0
  314. data/tdiary/dispatcher.rb +77 -0
  315. data/tdiary/dispatcher/index_main.rb +122 -0
  316. data/tdiary/dispatcher/update_main.rb +101 -0
  317. data/tdiary/environment.rb +15 -0
  318. data/tdiary/filter.rb +48 -0
  319. data/tdiary/filter/default.rb +54 -0
  320. data/tdiary/filter/spam.rb +304 -0
  321. data/tdiary/io/base.rb +70 -0
  322. data/tdiary/io/cache/file.rb +123 -0
  323. data/tdiary/io/cache/memcached.rb +88 -0
  324. data/tdiary/io/cache/redis.rb +100 -0
  325. data/tdiary/io/default.rb +297 -0
  326. data/tdiary/io/pstore.rb +252 -0
  327. data/tdiary/io/rdb.rb +213 -0
  328. data/tdiary/lang/en.rb +79 -0
  329. data/tdiary/lang/ja.rb +72 -0
  330. data/tdiary/plugin.rb +375 -0
  331. data/tdiary/rack/assets/precompile.rb +37 -0
  332. data/tdiary/rack/auth/basic.rb +38 -0
  333. data/tdiary/rack/auth/omniauth.rb +51 -0
  334. data/tdiary/rack/html_anchor.rb +31 -0
  335. data/tdiary/rack/valid_request_path.rb +36 -0
  336. data/tdiary/referer_manager.rb +80 -0
  337. data/tdiary/request.rb +217 -0
  338. data/tdiary/response.rb +29 -0
  339. data/tdiary/server.rb +85 -0
  340. data/tdiary/style.rb +194 -0
  341. data/tdiary/style/tdiary_style.rb +198 -0
  342. data/tdiary/style/wiki_style.rb +213 -0
  343. data/tdiary/tasks.rb +1 -0
  344. data/tdiary/tasks/assets.rake +31 -0
  345. data/tdiary/tasks/auth.rake +28 -0
  346. data/tdiary/tasks/db.rake +110 -0
  347. data/tdiary/tasks/doc.rake +31 -0
  348. data/tdiary/tasks/heroku.rake +37 -0
  349. data/tdiary/tasks/jasmine.rake +16 -0
  350. data/tdiary/tasks/rdoc.rake +24 -0
  351. data/tdiary/tasks/release.rake +122 -0
  352. data/tdiary/tasks/rspec.rake +51 -0
  353. data/tdiary/tasks/server.rake +33 -0
  354. data/tdiary/tasks/test.rake +17 -0
  355. data/tdiary/version.rb +3 -0
  356. data/tdiary/view.rb +468 -0
  357. data/tdiary/view_helper.rb +15 -0
  358. data/test/disp_referrer_test.rb +93 -0
  359. data/test/my-sequel_test.rb +238 -0
  360. data/test/test_helper.rb +7 -0
  361. data/test/test_plugin_helper.rb +64 -0
  362. data/test/test_plugin_helper_test.rb +28 -0
  363. data/test/weather_test.rb +33 -0
  364. data/theme/base.css +268 -0
  365. data/theme/conf.block.png +0 -0
  366. data/theme/conf.css +254 -0
  367. data/theme/default/README +11 -0
  368. data/theme/default/body.png +0 -0
  369. data/theme/default/default.css +743 -0
  370. data/theme/help.png +0 -0
  371. data/theme/loading.gif +0 -0
  372. data/theme/tdiary1/README +7 -0
  373. data/theme/tdiary1/tdiary1.css +394 -0
  374. data/theme/tdiary2/README +19 -0
  375. data/theme/tdiary2/tdiary2.css +624 -0
  376. data/update.fcgi +45 -0
  377. data/update.rb +57 -0
  378. data/vendor/hikidoc-0.0.6/COPYING +28 -0
  379. data/vendor/hikidoc-0.0.6/NEWS +30 -0
  380. data/vendor/hikidoc-0.0.6/NEWS.ja +30 -0
  381. data/vendor/hikidoc-0.0.6/README +86 -0
  382. data/vendor/hikidoc-0.0.6/README.ja +83 -0
  383. data/vendor/hikidoc-0.0.6/Rakefile +68 -0
  384. data/vendor/hikidoc-0.0.6/TextFormattingRules +320 -0
  385. data/vendor/hikidoc-0.0.6/TextFormattingRules.ja +318 -0
  386. data/vendor/hikidoc-0.0.6/bin/hikidoc +66 -0
  387. data/vendor/hikidoc-0.0.6/lib/hikidoc.rb +914 -0
  388. data/vendor/hikidoc-0.0.6/setup.rb +1360 -0
  389. data/vendor/hikidoc-0.0.6/test/run-test.rb +13 -0
  390. data/vendor/hikidoc-0.0.6/test/test_hikidoc.rb +506 -0
  391. data/vendor/imagesize-0.1.1/Manifest.txt +19 -0
  392. data/vendor/imagesize-0.1.1/README.txt +49 -0
  393. data/vendor/imagesize-0.1.1/lib/image_size.rb +305 -0
  394. data/vendor/imagesize-0.1.1/lib/image_size/version.rb +9 -0
  395. data/vendor/imagesize-0.1.1/setup.rb +1585 -0
  396. data/vendor/imagesize-0.1.1/test/2-4-7.png +0 -0
  397. data/vendor/imagesize-0.1.1/test/4_1_2.gif +0 -0
  398. data/vendor/imagesize-0.1.1/test/bmp.bmp +0 -0
  399. data/vendor/imagesize-0.1.1/test/cursor.xbm +6 -0
  400. data/vendor/imagesize-0.1.1/test/detect.swf +0 -0
  401. data/vendor/imagesize-0.1.1/test/pbm.pbm +0 -0
  402. data/vendor/imagesize-0.1.1/test/pcx.pcx +0 -0
  403. data/vendor/imagesize-0.1.1/test/pgm.pgm +5 -0
  404. data/vendor/imagesize-0.1.1/test/test.xpm +38 -0
  405. data/vendor/imagesize-0.1.1/test/test_helper.rb +2 -0
  406. data/vendor/imagesize-0.1.1/test/test_image_size.rb +71 -0
  407. data/vendor/imagesize-0.1.1/test/tiff.tiff +0 -0
  408. data/vendor/imagesize-0.1.1/test/tokyo_tower.jpg +0 -0
  409. data/vendor/imagesize-0.1.1/test/tower_e.gif.psd +0 -0
  410. data/vendor/jasmine-jquery-1.4.2/jasmine-jquery.js +548 -0
  411. data/vendor/jquery-1.8/jquery.js +9227 -0
  412. data/vendor/rdtool-0.6.38/COPYING.txt +339 -0
  413. data/vendor/rdtool-0.6.38/Gemfile +3 -0
  414. data/vendor/rdtool-0.6.38/HISTORY +318 -0
  415. data/vendor/rdtool-0.6.38/LGPL-2.1 +502 -0
  416. data/vendor/rdtool-0.6.38/LICENSE.txt +58 -0
  417. data/vendor/rdtool-0.6.38/README.html +66 -0
  418. data/vendor/rdtool-0.6.38/README.ja.html +73 -0
  419. data/vendor/rdtool-0.6.38/README.rd +76 -0
  420. data/vendor/rdtool-0.6.38/README.rd.ja +85 -0
  421. data/vendor/rdtool-0.6.38/Rakefile +152 -0
  422. data/vendor/rdtool-0.6.38/TODO +22 -0
  423. data/vendor/rdtool-0.6.38/bin/rd2 +283 -0
  424. data/vendor/rdtool-0.6.38/bin/rdswap.rb +207 -0
  425. data/vendor/rdtool-0.6.38/doc/rd-draft.html +456 -0
  426. data/vendor/rdtool-0.6.38/doc/rd-draft.ja.html +466 -0
  427. data/vendor/rdtool-0.6.38/doc/rd-draft.rd +479 -0
  428. data/vendor/rdtool-0.6.38/doc/rd-draft.rd.ja +487 -0
  429. data/vendor/rdtool-0.6.38/lib/rd/block-element.rb +114 -0
  430. data/vendor/rdtool-0.6.38/lib/rd/complex-list-item.rb +65 -0
  431. data/vendor/rdtool-0.6.38/lib/rd/desclist.rb +55 -0
  432. data/vendor/rdtool-0.6.38/lib/rd/document-struct.rb +46 -0
  433. data/vendor/rdtool-0.6.38/lib/rd/dot.rd2rc +18 -0
  434. data/vendor/rdtool-0.6.38/lib/rd/element.rb +160 -0
  435. data/vendor/rdtool-0.6.38/lib/rd/filter.rb +255 -0
  436. data/vendor/rdtool-0.6.38/lib/rd/head-filter.rb +14 -0
  437. data/vendor/rdtool-0.6.38/lib/rd/inline-element.rb +233 -0
  438. data/vendor/rdtool-0.6.38/lib/rd/labeled-element.rb +14 -0
  439. data/vendor/rdtool-0.6.38/lib/rd/list.rb +57 -0
  440. data/vendor/rdtool-0.6.38/lib/rd/loose-struct.rb +11 -0
  441. data/vendor/rdtool-0.6.38/lib/rd/methodlist.rb +57 -0
  442. data/vendor/rdtool-0.6.38/lib/rd/output-format-visitor.rb +30 -0
  443. data/vendor/rdtool-0.6.38/lib/rd/package.rb +4 -0
  444. data/vendor/rdtool-0.6.38/lib/rd/parser-util.rb +14 -0
  445. data/vendor/rdtool-0.6.38/lib/rd/post-install +1 -0
  446. data/vendor/rdtool-0.6.38/lib/rd/pre-setup.rb +18 -0
  447. data/vendor/rdtool-0.6.38/lib/rd/rbl-file.rb +69 -0
  448. data/vendor/rdtool-0.6.38/lib/rd/rbl-suite.rb +37 -0
  449. data/vendor/rdtool-0.6.38/lib/rd/rd-struct.rb +86 -0
  450. data/vendor/rdtool-0.6.38/lib/rd/rd2html-ext-lib.rb +266 -0
  451. data/vendor/rdtool-0.6.38/lib/rd/rd2html-ext-opt.rb +34 -0
  452. data/vendor/rdtool-0.6.38/lib/rd/rd2html-lib.rb +490 -0
  453. data/vendor/rdtool-0.6.38/lib/rd/rd2html-opt.rb +67 -0
  454. data/vendor/rdtool-0.6.38/lib/rd/rd2man-lib.rb +251 -0
  455. data/vendor/rdtool-0.6.38/lib/rd/rd2rdo-lib.rb +19 -0
  456. data/vendor/rdtool-0.6.38/lib/rd/rd2rmi-lib.rb +32 -0
  457. data/vendor/rdtool-0.6.38/lib/rd/rdblockparser.ry +518 -0
  458. data/vendor/rdtool-0.6.38/lib/rd/rdblockparser.tab.rb +1061 -0
  459. data/vendor/rdtool-0.6.38/lib/rd/rdfmt.rb +15 -0
  460. data/vendor/rdtool-0.6.38/lib/rd/rdinlineparser.ry +503 -0
  461. data/vendor/rdtool-0.6.38/lib/rd/rdinlineparser.tab.rb +1243 -0
  462. data/vendor/rdtool-0.6.38/lib/rd/rdvisitor.rb +214 -0
  463. data/vendor/rdtool-0.6.38/lib/rd/reference-resolver.rb +114 -0
  464. data/vendor/rdtool-0.6.38/lib/rd/search-file.rb +14 -0
  465. data/vendor/rdtool-0.6.38/lib/rd/tree.rb +103 -0
  466. data/vendor/rdtool-0.6.38/lib/rd/version.rb +41 -0
  467. data/vendor/rdtool-0.6.38/lib/rd/visitor.rb +86 -0
  468. data/vendor/rdtool-0.6.38/rdtool.gemspec +125 -0
  469. data/vendor/rdtool-0.6.38/setup.rb +1596 -0
  470. data/vendor/rdtool-0.6.38/test/data/includee1.html +1 -0
  471. data/vendor/rdtool-0.6.38/test/data/includee2.html +1 -0
  472. data/vendor/rdtool-0.6.38/test/data/includee3.nothtml +1 -0
  473. data/vendor/rdtool-0.6.38/test/data/includee4.xhtml +0 -0
  474. data/vendor/rdtool-0.6.38/test/data/label.rbl +2 -0
  475. data/vendor/rdtool-0.6.38/test/data/label2.rbl +2 -0
  476. data/vendor/rdtool-0.6.38/test/data/sub/includee2.html +1 -0
  477. data/vendor/rdtool-0.6.38/test/data/sub/includee4.html +0 -0
  478. data/vendor/rdtool-0.6.38/test/dummy-observer.rb +6 -0
  479. data/vendor/rdtool-0.6.38/test/dummy.rb +33 -0
  480. data/vendor/rdtool-0.6.38/test/temp-dir.rb +19 -0
  481. data/vendor/rdtool-0.6.38/test/test-block-parser.rb +46 -0
  482. data/vendor/rdtool-0.6.38/test/test-desclist-item.rb +219 -0
  483. data/vendor/rdtool-0.6.38/test/test-document-element.rb +46 -0
  484. data/vendor/rdtool-0.6.38/test/test-document-struct.rb +66 -0
  485. data/vendor/rdtool-0.6.38/test/test-element.rb +46 -0
  486. data/vendor/rdtool-0.6.38/test/test-headline.rb +80 -0
  487. data/vendor/rdtool-0.6.38/test/test-inline-parser.rb +46 -0
  488. data/vendor/rdtool-0.6.38/test/test-list-item.rb +54 -0
  489. data/vendor/rdtool-0.6.38/test/test-list.rb +53 -0
  490. data/vendor/rdtool-0.6.38/test/test-methodlist-item.rb +73 -0
  491. data/vendor/rdtool-0.6.38/test/test-nonterminal-element.rb +170 -0
  492. data/vendor/rdtool-0.6.38/test/test-nonterminal-inline.rb +33 -0
  493. data/vendor/rdtool-0.6.38/test/test-output-format-visitor.rb +48 -0
  494. data/vendor/rdtool-0.6.38/test/test-parser-util.rb +41 -0
  495. data/vendor/rdtool-0.6.38/test/test-rbl-file.rb +156 -0
  496. data/vendor/rdtool-0.6.38/test/test-rbl-suite.rb +43 -0
  497. data/vendor/rdtool-0.6.38/test/test-rd2html-lib.rb +496 -0
  498. data/vendor/rdtool-0.6.38/test/test-rdtree.rb +17 -0
  499. data/vendor/rdtool-0.6.38/test/test-rdvisitor.rb +29 -0
  500. data/vendor/rdtool-0.6.38/test/test-reference-resolver.rb +202 -0
  501. data/vendor/rdtool-0.6.38/test/test-reference.rb +132 -0
  502. data/vendor/rdtool-0.6.38/test/test-search-file.rb +22 -0
  503. data/vendor/rdtool-0.6.38/test/test-terminal-inline.rb +41 -0
  504. data/vendor/rdtool-0.6.38/test/test-textblock.rb +44 -0
  505. data/vendor/rdtool-0.6.38/test/test-tree.rb +82 -0
  506. data/vendor/rdtool-0.6.38/test/test-version.rb +57 -0
  507. data/vendor/rdtool-0.6.38/test/test-visitor.rb +230 -0
  508. data/vendor/rdtool-0.6.38/utils/rd-mode.el +464 -0
  509. metadata +666 -0
@@ -0,0 +1,76 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'spec_helper'
3
+ require 'rack/test'
4
+ require 'fileutils'
5
+ require 'tdiary/rack/assets/precompile'
6
+
7
+ if defined?(Encoding)
8
+ describe TDiary::Rack::Assets::Precompile do
9
+ include Rack::Test::Methods
10
+
11
+ let(:app) do
12
+ TDiary::Rack::Assets::Precompile.new(lambda{|env| [200, {}, ['Awesome']]}, @environment)
13
+ end
14
+ let(:assets_path) {"#{TDiary::PATH}/tmp/assets"}
15
+
16
+ before do
17
+ FileUtils.mkdir_p assets_path
18
+ @environment = Sprockets::Environment.new
19
+ @environment.append_path assets_path
20
+ end
21
+
22
+ after do
23
+ FileUtils.rm_rf assets_path
24
+ end
25
+
26
+ context "JavaScript が無い場合" do
27
+ before do
28
+ FileUtils.touch "#{assets_path}/foo.coffee"
29
+ get '/'
30
+ end
31
+
32
+ it "JavaScript にコンパイルされる" do
33
+ FileTest.exist?("#{assets_path}/foo.js").should be_true
34
+ end
35
+ end
36
+
37
+ context "JavaScript がある場合" do
38
+ context "CoffeeScript の方が新しい場合" do
39
+ before do
40
+ FileUtils.touch "#{assets_path}/foo.js"
41
+ sleep 1
42
+ FileUtils.touch "#{assets_path}/foo.coffee"
43
+ @jstime = File.mtime("#{assets_path}/foo.js").to_i
44
+
45
+ get '/'
46
+ end
47
+
48
+ it "JavaScript が更新される" do
49
+ @jstime.should < File.mtime("#{assets_path}/foo.js").to_i
50
+ end
51
+ end
52
+
53
+ context "JavaScript の方が新しい場合" do
54
+ before do
55
+ FileUtils.touch "#{assets_path}/foo.coffee"
56
+ sleep 1
57
+ FileUtils.touch "#{assets_path}/foo.js"
58
+ @jstime = File.mtime("#{assets_path}/foo.js").to_i
59
+
60
+ get '/'
61
+ end
62
+
63
+ it "JavaScript は更新されない" do
64
+ @jstime.should == File.mtime("#{assets_path}/foo.js").to_i
65
+ end
66
+ end
67
+ end
68
+ end
69
+ end
70
+
71
+ # Local Variables:
72
+ # mode: ruby
73
+ # indent-tabs-mode: t
74
+ # tab-width: 3
75
+ # ruby-indent-level: 3
76
+ # End:
@@ -0,0 +1,57 @@
1
+ require 'spec_helper'
2
+ require 'rack/test'
3
+ require 'tdiary/rack/html_anchor'
4
+
5
+ describe TDiary::Rack::HtmlAnchor do
6
+ include Rack::Test::Methods
7
+
8
+ describe "html anchor" do
9
+ let(:app) { TDiary::Rack::HtmlAnchor.new(
10
+ lambda{|env| [200, {}, ['Awesome']]} )}
11
+
12
+ it 'should not do anything for root access' do
13
+ get '/'
14
+ last_request.params['date'].should == nil
15
+ last_request.query_string.should == ''
16
+ end
17
+
18
+ it 'should remove the file name from PATH_INFO' do
19
+ get '/20120501.html'
20
+ last_request.env['PATH_INFO'].should == '/'
21
+ get '/diary/20120501.html'
22
+ last_request.env['PATH_INFO'].should == '/diary/'
23
+ end
24
+
25
+ it 'should add date query' do
26
+ get '/diary/0501.html'
27
+ last_request.params['date'].should == "0501"
28
+ get '/0501.html'
29
+ last_request.params['date'].should == "0501"
30
+ get '/201205.html'
31
+ last_request.params['date'].should == "201205"
32
+ get '/20120501.html'
33
+ last_request.params['date'].should == "20120501"
34
+ end
35
+
36
+ it 'should add date query when using section_permalink_anchor plugin' do
37
+ get '/20120501p01.html'
38
+ last_request.params['date'].should == "20120501"
39
+ last_request.params['p'].should == "01"
40
+ end
41
+
42
+ it 'should replace date query' do
43
+ get '/20120501.html?date=20120101'
44
+ last_request.params['date'].should == "20120501"
45
+ end
46
+
47
+ it 'should not break original query' do
48
+ get '/?date=20120501'
49
+ last_request.params['date'].should == "20120501"
50
+ get '/index.rb?date=20120501'
51
+ last_request.params['date'].should == "20120501"
52
+ get '/index.rb?date=20120501&p=01'
53
+ last_request.params['date'].should == "20120501"
54
+ last_request.params['p'].should == "01"
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,67 @@
1
+ require 'spec_helper'
2
+ require 'rack/test'
3
+ require 'tdiary/rack/valid_request_path'
4
+
5
+ describe TDiary::Rack::ValidRequestPath do
6
+ include Rack::Test::Methods
7
+
8
+ describe "valid request" do
9
+ let(:app) { TDiary::Rack::ValidRequestPath.new(
10
+ lambda{|env| [200, {}, ['Awesome']]} )}
11
+
12
+ it 'should return 200 for latest' do
13
+ get '/'
14
+ last_response.should be_ok
15
+ end
16
+
17
+ it 'should return 200 for a nyear' do
18
+ get '/0501.html'
19
+ last_response.should be_ok
20
+ end
21
+
22
+ it 'should return 200 for a month' do
23
+ get '/201205.html'
24
+ last_response.should be_ok
25
+ end
26
+
27
+ it 'should return 200 for a day' do
28
+ get '/20120501.html'
29
+ last_response.should be_ok
30
+ end
31
+
32
+ it 'should return 200 for a day with section_permalink_anchor plugin' do
33
+ get '/20120501p01.html'
34
+ last_response.should be_ok
35
+ end
36
+
37
+ it 'should return 200 for a day with query' do
38
+ get '/?date=20120501'
39
+ last_response.should be_ok
40
+ end
41
+
42
+ it 'should return 200 for a day with query and section_permalink_anchor plugin' do
43
+ get '/?date=20120501&p=01'
44
+ last_response.should be_ok
45
+ end
46
+
47
+ it 'should return 200 for a day with index.rb and query' do
48
+ get '/index.rb?date=20120501'
49
+ last_response.should be_ok
50
+ end
51
+
52
+ it 'should return 404 for access to the invalid file' do
53
+ get '/20120501'
54
+ last_response.status.should be 404
55
+ get '/invalid'
56
+ last_response.status.should be 404
57
+ head '/invalid'
58
+ last_response.status.should be 404
59
+ last_response.body.length.should be 0
60
+ end
61
+
62
+ it 'should return 404 for access to the invalid directory' do
63
+ get '/invalid/'
64
+ last_response.status.should == 404
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,165 @@
1
+ # -*- coding: utf-8; -*-
2
+ require 'spec_helper'
3
+
4
+ require 'tdiary'
5
+ require 'misc/style/emptdiary/emptdiary_style'
6
+
7
+ describe TDiary::EmptdiaryDiary do
8
+ before do
9
+ @diary = TDiary::EmptdiaryDiary.new(Time::at( 1041346800 ), "TITLE", "")
10
+ end
11
+
12
+ describe '#append' do
13
+ before do
14
+ source = <<-'EOF'
15
+ subTitle
16
+ <p>honbun</p>
17
+
18
+ subTitle2
19
+ <p>honbun</p>
20
+ EOF
21
+ @diary.append(source)
22
+ end
23
+
24
+ context 'HTML' do
25
+ before do
26
+ @html = <<-'EOF'
27
+ <div class="section">
28
+ <%=section_enter_proc( Time::at( 1041346800 ) )%>
29
+ <h3><%= subtitle_proc( Time::at( 1041346800 ), "subTitle" ) %></h3>
30
+ <p>honbun</p><%=section_leave_proc( Time::at( 1041346800 ) )%>
31
+ </div><div class="section">
32
+ <%=section_enter_proc( Time::at( 1041346800 ) )%>
33
+ <h3><%= subtitle_proc( Time::at( 1041346800 ), "subTitle2" ) %></h3>
34
+ <p>honbun</p><%=section_leave_proc( Time::at( 1041346800 ) )%>
35
+ </div>
36
+ EOF
37
+ end
38
+ it { @diary.to_html.should eq @html.chomp }
39
+ end
40
+
41
+ context 'CHTML' do
42
+ before do
43
+ @html = <<-'EOF'
44
+ <%=section_enter_proc( Time::at( 1041346800 ) )%>
45
+ <H3><%= subtitle_proc( Time::at( 1041346800 ), "subTitle" ) %></H3>
46
+ <p>honbun</p><%=section_leave_proc( Time::at( 1041346800 ) )%>
47
+ <%=section_enter_proc( Time::at( 1041346800 ) )%>
48
+ <H3><%= subtitle_proc( Time::at( 1041346800 ), "subTitle2" ) %></H3>
49
+ <p>honbun</p><%=section_leave_proc( Time::at( 1041346800 ) )%>
50
+ EOF
51
+ end
52
+ it { @diary.to_html({}, :CHTML).should eq @html }
53
+ end
54
+ end
55
+
56
+ describe '#replace' do
57
+ before do
58
+ source = <<-'EOF'
59
+ subTitle
60
+ <p>honbun</p>
61
+
62
+ subTitle2
63
+ <p>honbun</p>
64
+ EOF
65
+ @diary.append(source)
66
+
67
+ replaced = <<-'EOF'
68
+ replaceTitle
69
+ <p>replace</p>
70
+
71
+ replaceTitle2
72
+ <p>replace</p>
73
+
74
+ EOF
75
+ @diary.replace(Time::at( 1041346800 ), "TITLE", replaced)
76
+
77
+ @html = <<-'EOF'
78
+ <div class="section">
79
+ <%=section_enter_proc( Time::at( 1041346800 ) )%>
80
+ <h3><%= subtitle_proc( Time::at( 1041346800 ), "replaceTitle" ) %></h3>
81
+ <p>replace</p><%=section_leave_proc( Time::at( 1041346800 ) )%>
82
+ </div><div class="section">
83
+ <%=section_enter_proc( Time::at( 1041346800 ) )%>
84
+ <h3><%= subtitle_proc( Time::at( 1041346800 ), "replaceTitle2" ) %></h3>
85
+ <p>replace</p><%=section_leave_proc( Time::at( 1041346800 ) )%>
86
+ </div>
87
+ EOF
88
+ end
89
+ it { @diary.to_html.should eq @html.chomp }
90
+ end
91
+
92
+ describe 'test_emptdiary_style_plugin' do
93
+ before do
94
+ source = <<-'EOF'
95
+ sectionTitle
96
+ <p>body</p>
97
+ <%=pre <<'_PRE'
98
+ #include <stdio.h>
99
+
100
+ /* comment */
101
+ int
102
+ main (int argc, char *argv[])
103
+ {
104
+ puts ("Hello world.");
105
+ }
106
+ _PRE
107
+ %>
108
+ EOF
109
+ @diary.append(source)
110
+ end
111
+
112
+ context 'HTML' do
113
+ before do
114
+ @html = <<-'EOF'
115
+ <div class="section">
116
+ <%=section_enter_proc( Time::at( 1041346800 ) )%>
117
+ <h3><%= subtitle_proc( Time::at( 1041346800 ), "sectionTitle" ) %></h3>
118
+ <p>body</p>
119
+ <%=pre <<'_PRE'
120
+ #include <stdio.h>
121
+
122
+ /* comment */
123
+ int
124
+ main (int argc, char *argv[])
125
+ {
126
+ puts ("Hello world.");
127
+ }
128
+ _PRE
129
+ %><%=section_leave_proc( Time::at( 1041346800 ) )%>
130
+ </div>
131
+ EOF
132
+ end
133
+ it { @diary.to_html.should eq @html.chomp }
134
+ end
135
+
136
+ context 'CHTML' do
137
+ before do
138
+ @html = <<-'EOF'
139
+ <%=section_enter_proc( Time::at( 1041346800 ) )%>
140
+ <H3><%= subtitle_proc( Time::at( 1041346800 ), "sectionTitle" ) %></H3>
141
+ <p>body</p>
142
+ <%=pre <<'_PRE'
143
+ #include <stdio.h>
144
+
145
+ /* comment */
146
+ int
147
+ main (int argc, char *argv[])
148
+ {
149
+ puts ("Hello world.");
150
+ }
151
+ _PRE
152
+ %><%=section_leave_proc( Time::at( 1041346800 ) )%>
153
+ EOF
154
+ end
155
+ it { @diary.to_html({}, :CHTML).should eq @html }
156
+ end
157
+ end
158
+ end
159
+
160
+ # Local Variables:
161
+ # mode: ruby
162
+ # indent-tabs-mode: t
163
+ # tab-width: 3
164
+ # ruby-indent-level: 3
165
+ # End:
@@ -0,0 +1,512 @@
1
+ # -*- coding: utf-8; -*-
2
+ require 'spec_helper'
3
+
4
+ require 'tdiary'
5
+ require 'misc/style/etdiary/etdiary_style'
6
+
7
+ describe TDiary::EtdiaryDiary do
8
+ before do
9
+ @diary = TDiary::EtdiaryDiary.new(Time::at( 1041346800 ), "TITLE", "")
10
+ end
11
+
12
+ describe '#append' do
13
+ before do
14
+ @source = <<-'EOF'
15
+ hogehoge
16
+ fugafuga
17
+
18
+ fugahoge
19
+ hogera
20
+
21
+ <<subTitle>>
22
+ honbun
23
+
24
+ <<<>subTitleH4>>
25
+ honbun
26
+
27
+ <h4>notParagraph</h4>
28
+
29
+ <div>
30
+ Content of block element with blank line.
31
+
32
+ <blockquote>
33
+ hogehoge
34
+ </blockquote>
35
+ </div>
36
+
37
+ <b>Paragraph</b> begin with tag.
38
+
39
+ <pre>
40
+ In <pre>, < and > are automatically escaped.
41
+ </pre>
42
+
43
+ <<>>
44
+ Section without title and anchor.
45
+
46
+ <<<>>>
47
+ Section without title.
48
+ EOF
49
+ @diary.append(@source)
50
+ end
51
+
52
+ context 'HTML' do
53
+ before do
54
+ @html = <<-'EOF'
55
+ <div class="section">
56
+ <%=section_enter_proc( Time::at( 1041346800 ) )%>
57
+ <p>
58
+ hogehoge
59
+ fugafuga
60
+ </p>
61
+ <p>
62
+ fugahoge
63
+ hogera
64
+ </p>
65
+ <%=section_leave_proc( Time::at( 1041346800 ) )%>
66
+ </div>
67
+
68
+ <div class="section">
69
+ <%=section_enter_proc( Time::at( 1041346800 ) )%>
70
+ <h3><%= subtitle_proc( Time::at( 1041346800 ), "subTitle" ) %></h3>
71
+ <p>
72
+ honbun
73
+ </p>
74
+ <h4><%= subtitle_proc( Time::at( 1041346800 ), "subTitleH4" ) %>:</h4>
75
+ <p>
76
+ honbun
77
+ </p>
78
+ <h4>notParagraph</h4>
79
+ <div>
80
+ Content of block element with blank line.
81
+
82
+ <blockquote>
83
+ hogehoge
84
+ </blockquote>
85
+ </div>
86
+ <p>
87
+ <b>Paragraph</b> begin with tag.
88
+ </p>
89
+ <pre>
90
+ In &lt;pre&gt;, &lt; and &gt; are automatically escaped.
91
+ </pre>
92
+ <p><%= subtitle_proc( Time::at( 1041346800 ), nil ) %>
93
+ Section without title and anchor.
94
+ </p>
95
+ <p><a name="p04"></a>
96
+ Section without title.
97
+ </p>
98
+ <%=section_leave_proc( Time::at( 1041346800 ) )%>
99
+ </div>
100
+ EOF
101
+ end
102
+ it { @diary.to_html.should eq @html }
103
+ end
104
+
105
+ context 'CHTML' do
106
+ before do
107
+ @html = <<-'EOF'
108
+ <%=section_enter_proc( Time::at( 1041346800 ) )%>
109
+ <P>
110
+ hogehoge
111
+ fugafuga
112
+ </P>
113
+ <P>
114
+ fugahoge
115
+ hogera
116
+ </P>
117
+ <%=section_leave_proc( Time::at( 1041346800 ) )%>
118
+
119
+ <%=section_enter_proc( Time::at( 1041346800 ) )%>
120
+ <H3><%= subtitle_proc( Time::at( 1041346800 ), "subTitle" ) %></H3>
121
+ <P>
122
+ honbun
123
+ </P>
124
+ <P><%= subtitle_proc( Time::at( 1041346800 ), "subTitleH4" ) %>:
125
+ honbun
126
+ </P>
127
+ <h4>notParagraph</h4>
128
+ <div>
129
+ Content of block element with blank line.
130
+
131
+ <blockquote>
132
+ hogehoge
133
+ </blockquote>
134
+ </div>
135
+ <P>
136
+ <b>Paragraph</b> begin with tag.
137
+ </P>
138
+ <PRE>
139
+ In &lt;pre&gt;, &lt; and &gt; are automatically escaped.
140
+ </PRE>
141
+ <P><%= subtitle_proc( Time::at( 1041346800 ), nil ) %>
142
+ Section without title and anchor.
143
+ </P>
144
+ <P><A NAME="p04"></A>
145
+ Section without title.
146
+ </P>
147
+ <%=section_leave_proc( Time::at( 1041346800 ) )%>
148
+ EOF
149
+ end
150
+ it { @diary.to_html({'anchor' => true, 'index' => true}, :CHTML).should eq @html }
151
+ end
152
+
153
+ context 'to_src' do
154
+ it { @diary.to_src.should eq @source }
155
+ end
156
+ end
157
+
158
+ describe '#add_section' do
159
+ before do
160
+ source = <<-'EOF'
161
+ <<subTitle>>
162
+ honbun
163
+
164
+ <<<>subTitleH4>>
165
+ honbun
166
+
167
+ EOF
168
+ @diary.append(source)
169
+ @diary.add_section('subTitle2', 'honbun')
170
+
171
+ @html = <<-'EOF'
172
+ <div class="section">
173
+ <%=section_enter_proc( Time::at( 1041346800 ) )%>
174
+ <h3><%= subtitle_proc( Time::at( 1041346800 ), "subTitle" ) %></h3>
175
+ <p>
176
+ honbun
177
+ </p>
178
+ <h4><%= subtitle_proc( Time::at( 1041346800 ), "subTitleH4" ) %>:</h4>
179
+ <p>
180
+ honbun
181
+ </p>
182
+ <%=section_leave_proc( Time::at( 1041346800 ) )%>
183
+ </div>
184
+
185
+ <div class="section">
186
+ <%=section_enter_proc( Time::at( 1041346800 ) )%>
187
+ <h3><%= subtitle_proc( Time::at( 1041346800 ), "subTitle2" ) %></h3>
188
+ <p>
189
+ honbun
190
+ </p>
191
+ <%=section_leave_proc( Time::at( 1041346800 ) )%>
192
+ </div>
193
+ EOF
194
+ end
195
+ it { @diary.to_html.should eq @html }
196
+ end
197
+
198
+ describe '#delete_section' do
199
+ before do
200
+ source = <<-'EOF'
201
+ <<subTitle>>
202
+ honbun
203
+
204
+ <<subTitle2>>
205
+ honbun
206
+
207
+ EOF
208
+ @diary.append(source)
209
+ @diary.delete_section(1)
210
+
211
+ @html = <<-'EOF'
212
+ <div class="section">
213
+ <%=section_enter_proc( Time::at( 1041346800 ) )%>
214
+ <h3><%= subtitle_proc( Time::at( 1041346800 ), "subTitle2" ) %></h3>
215
+ <p>
216
+ honbun
217
+ </p>
218
+ <%=section_leave_proc( Time::at( 1041346800 ) )%>
219
+ </div>
220
+ EOF
221
+ end
222
+ it { @diary.to_html.should eq @html }
223
+ end
224
+
225
+ describe '#replace' do
226
+ before do
227
+ source = <<-'EOF'
228
+ <<subTitle>>
229
+ honbun
230
+
231
+ <<<>subTitleH4>>
232
+ honbun
233
+
234
+ EOF
235
+ @diary.append(source)
236
+
237
+ replaced = <<-'EOF'
238
+ <<replaceTitle>>
239
+ replace
240
+
241
+ <<<>replaceTitleH4>>
242
+ replace
243
+
244
+ EOF
245
+ @diary.replace(Time::at( 1041346800 ), "TITLE", replaced)
246
+
247
+ @html = <<-'EOF'
248
+ <div class="section">
249
+ <%=section_enter_proc( Time::at( 1041346800 ) )%>
250
+ <h3><%= subtitle_proc( Time::at( 1041346800 ), "replaceTitle" ) %></h3>
251
+ <p>
252
+ replace
253
+ </p>
254
+ <h4><%= subtitle_proc( Time::at( 1041346800 ), "replaceTitleH4" ) %>:</h4>
255
+ <p>
256
+ replace
257
+ </p>
258
+ <%=section_leave_proc( Time::at( 1041346800 ) )%>
259
+ </div>
260
+ EOF
261
+ end
262
+ it { @diary.to_html.should eq @html }
263
+ end
264
+
265
+ describe 'test_etdiary_unterminated_tag' do
266
+ before do
267
+ source = <<-'EOF'
268
+ <p>
269
+ paragraph
270
+ </q>
271
+ EOF
272
+ @diary.append(source)
273
+ end
274
+
275
+ context 'HTML' do
276
+ before do
277
+ @html = <<-'EOF'
278
+ <div class="section">
279
+ <%=section_enter_proc( Time::at( 1041346800 ) )%>
280
+ <p>
281
+ paragraph
282
+ </q>
283
+
284
+ </p>(tDiary warning: tag &lt;p&gt; is not terminated.)
285
+ <%=section_leave_proc( Time::at( 1041346800 ) )%>
286
+ </div>
287
+ EOF
288
+ end
289
+ it { @diary.to_html.should eq @html }
290
+ end
291
+
292
+ context 'CHTML' do
293
+ before do
294
+ @html = <<-'EOF'
295
+ <%=section_enter_proc( Time::at( 1041346800 ) )%>
296
+ <p>
297
+ paragraph
298
+ </q>
299
+
300
+ </p>(tDiary warning: tag &lt;p&gt; is not terminated.)
301
+ <%=section_leave_proc( Time::at( 1041346800 ) )%>
302
+ EOF
303
+ end
304
+ it { @diary.to_html({'anchor' => true, 'index' => true}, :CHTML).should eq @html }
305
+ end
306
+ end
307
+
308
+ describe 'test_etdiary_null' do
309
+ before do
310
+ source = <<-'EOF'
311
+ EOF
312
+ @diary.append(source)
313
+ end
314
+
315
+ context 'HTML' do
316
+ before do
317
+ @html = <<-'EOF'
318
+ <div class="section">
319
+ <%=section_enter_proc( Time::at( 1041346800 ) )%>
320
+ <p>
321
+ </p>
322
+ <%=section_leave_proc( Time::at( 1041346800 ) )%>
323
+ </div>
324
+ EOF
325
+ end
326
+ it { @diary.to_html.should eq @html }
327
+ end
328
+
329
+ context 'CHTML' do
330
+ before do
331
+ @html = <<-'EOF'
332
+ <%=section_enter_proc( Time::at( 1041346800 ) )%>
333
+ <P>
334
+ </P>
335
+ <%=section_leave_proc( Time::at( 1041346800 ) )%>
336
+ EOF
337
+ end
338
+ it { @diary.to_html({'anchor' => true, 'index' => true}, :CHTML).should eq @html }
339
+ end
340
+ end
341
+
342
+ describe 'test_etdiary_sectionAtBeginning' do
343
+ before do
344
+ source = <<-'EOF'
345
+ <<hoge>>
346
+ fuga
347
+ EOF
348
+ @diary.append(source)
349
+ end
350
+
351
+ context 'HTML' do
352
+ before do
353
+ @html = <<-'EOF'
354
+ <div class="section">
355
+ <%=section_enter_proc( Time::at( 1041346800 ) )%>
356
+ <h3><%= subtitle_proc( Time::at( 1041346800 ), "hoge" ) %></h3>
357
+ <p>
358
+ fuga
359
+ </p>
360
+ <%=section_leave_proc( Time::at( 1041346800 ) )%>
361
+ </div>
362
+ EOF
363
+ end
364
+ it { @diary.to_html.should eq @html }
365
+ end
366
+
367
+ context 'CHTML' do
368
+ before do
369
+ @html = <<-'EOF'
370
+ <%=section_enter_proc( Time::at( 1041346800 ) )%>
371
+ <H3><%= subtitle_proc( Time::at( 1041346800 ), "hoge" ) %></H3>
372
+ <P>
373
+ fuga
374
+ </P>
375
+ <%=section_leave_proc( Time::at( 1041346800 ) )%>
376
+ EOF
377
+ end
378
+ it { @diary.to_html({'anchor' => true, 'index' => true}, :CHTML).should eq @html }
379
+ end
380
+ end
381
+
382
+ describe 'test_etdiary_appending' do
383
+ before do
384
+ source = <<-'EOF'
385
+ <p>para1</p>
386
+ EOF
387
+
388
+ sourceAppended = <<-'EOF'
389
+ <p>para2</p>
390
+ EOF
391
+ @diary.append(source)
392
+ @diary.append(sourceAppended)
393
+ end
394
+
395
+ context 'HTML' do
396
+ before do
397
+ @html = <<-'EOF'
398
+ <div class="section">
399
+ <%=section_enter_proc( Time::at( 1041346800 ) )%>
400
+ <p>para1</p>
401
+ <p>para2</p>
402
+ <%=section_leave_proc( Time::at( 1041346800 ) )%>
403
+ </div>
404
+ EOF
405
+ end
406
+ it { @diary.to_html.should eq @html }
407
+ end
408
+
409
+ context 'CHTML' do
410
+ before do
411
+ @html = <<-'EOF'
412
+ <%=section_enter_proc( Time::at( 1041346800 ) )%>
413
+ <p>para1</p>
414
+ <p>para2</p>
415
+ <%=section_leave_proc( Time::at( 1041346800 ) )%>
416
+ EOF
417
+ end
418
+ it { @diary.to_html({'anchor' => true, 'index' => true}, :CHTML).should eq @html }
419
+ end
420
+ end
421
+
422
+ # 2004.08.12 Reported by Shun-ichi TAHARA, thanks!
423
+ describe 'test_etdiary_subsequentPREtoSectionTitle' do
424
+ before do
425
+ source = <<-'EOF'
426
+ <<hoge>>
427
+ <pre>
428
+ hoge
429
+
430
+ fuga
431
+ </pre>
432
+ EOF
433
+ @diary.append(source)
434
+ end
435
+
436
+ context 'HTML' do
437
+ before do
438
+ @html = <<-'EOF'
439
+ <div class="section">
440
+ <%=section_enter_proc( Time::at( 1041346800 ) )%>
441
+ <h3><%= subtitle_proc( Time::at( 1041346800 ), "hoge" ) %></h3>
442
+ <pre>
443
+ hoge
444
+
445
+ fuga
446
+ </pre>
447
+ <%=section_leave_proc( Time::at( 1041346800 ) )%>
448
+ </div>
449
+ EOF
450
+ end
451
+ it { @diary.to_html.should eq @html }
452
+ end
453
+
454
+ context 'CHTML' do
455
+ before do
456
+ @html = <<-'EOF'
457
+ <%=section_enter_proc( Time::at( 1041346800 ) )%>
458
+ <H3><%= subtitle_proc( Time::at( 1041346800 ), "hoge" ) %></H3>
459
+ <PRE>
460
+ hoge
461
+
462
+ fuga
463
+ </PRE>
464
+ <%=section_leave_proc( Time::at( 1041346800 ) )%>
465
+ EOF
466
+ end
467
+ it { @diary.to_html({'anchor' => true, 'index' => true}, :CHTML).should eq @html }
468
+ end
469
+ end
470
+
471
+ # 2004.08.19 Reported by Shun-ichi TAHARA, thanks!
472
+ describe 'test_etdiary_badAnchorNumber' do
473
+ before do
474
+ source = <<-'EOF'
475
+ sect0-para0
476
+
477
+ <<sect1>>
478
+ sect1-para0
479
+
480
+ sect1-para1
481
+
482
+ sect1-para2
483
+
484
+ <<sect2>>
485
+ sect2-para0
486
+ EOF
487
+
488
+ @diary.append(source)
489
+ sections = []
490
+ @diary.each_section { |sect|
491
+ sections << sect
492
+ }
493
+
494
+ @anchorNumber = 0
495
+ @section = sections.find do |sect|
496
+ @anchorNumber += 1
497
+ (sect.subtitle == "sect2")
498
+ end
499
+ end
500
+ it { @section.should_not be_nil }
501
+ it { @anchorNumber.should eq 2 }
502
+ # github issue #271
503
+ it { @section.body_to_html.should eq "<p>sect2-para0\n</p>\n" }
504
+ end
505
+ end
506
+
507
+ # Local Variables:
508
+ # mode: ruby
509
+ # indent-tabs-mode: t
510
+ # tab-width: 3
511
+ # ruby-indent-level: 3
512
+ # End: