tdiary-contrib 3.2.2.20130518

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 (393) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +1 -0
  3. data/.travis.yml +7 -0
  4. data/Gemfile +13 -0
  5. data/Gemfile.lock +35 -0
  6. data/README.en.md +12 -0
  7. data/README.md +13 -0
  8. data/Rakefile +41 -0
  9. data/doc/en/filter/spambayes.txt +3 -0
  10. data/doc/en/plugin.txt +1 -0
  11. data/doc/en/style/hatena.txt +10 -0
  12. data/doc/en/style/markdown.txt +16 -0
  13. data/doc/en/util.txt +1 -0
  14. data/doc/ja/filter/antirefspam.history.txt +59 -0
  15. data/doc/ja/filter/antirefspam.txt +86 -0
  16. data/doc/ja/filter/comment_key.ja.html +182 -0
  17. data/doc/ja/filter/spambayes.txt +3 -0
  18. data/doc/ja/plugin/add_bookmark.txt +50 -0
  19. data/doc/ja/plugin/category_to_tag.txt +21 -0
  20. data/doc/ja/plugin/cocoment.txt +31 -0
  21. data/doc/ja/plugin/google_adsense.txt +25 -0
  22. data/doc/ja/plugin/google_analytics.txt +7 -0
  23. data/doc/ja/plugin/image_detail.txt +69 -0
  24. data/doc/ja/plugin/image_gps.txt +36 -0
  25. data/doc/ja/plugin/image_gps2.txt +41 -0
  26. data/doc/ja/plugin/livedoor_weather.txt +105 -0
  27. data/doc/ja/plugin/opensearch_ad.txt +16 -0
  28. data/doc/ja/plugin/section_footer.txt +84 -0
  29. data/doc/ja/plugin/select_theme.txt +1 -0
  30. data/doc/ja/plugin.txt +13 -0
  31. data/doc/ja/style/hatena.txt +10 -0
  32. data/doc/ja/style/markdown.txt +13 -0
  33. data/doc/ja/util.txt +12 -0
  34. data/filter/antirefspam.rb +263 -0
  35. data/filter/commentkey.rb +29 -0
  36. data/filter/commentsize.rb +18 -0
  37. data/filter/hidecomment.rb +13 -0
  38. data/filter/iplookup.rb +55 -0
  39. data/filter/plugin/antirefspam.rb +59 -0
  40. data/filter/plugin/commentkey.rb +58 -0
  41. data/filter/plugin/commentsize.rb +12 -0
  42. data/filter/plugin/en/iplookup.rb +9 -0
  43. data/filter/plugin/en/spambayes.rb +123 -0
  44. data/filter/plugin/iplookup.rb +39 -0
  45. data/filter/plugin/ja/antirefspam.rb +91 -0
  46. data/filter/plugin/ja/commentkey.rb +17 -0
  47. data/filter/plugin/ja/commentsize.rb +6 -0
  48. data/filter/plugin/ja/iplookup.rb +9 -0
  49. data/filter/plugin/ja/spambayes.rb +124 -0
  50. data/filter/plugin/spambayes.rb +501 -0
  51. data/filter/plugin/zh/iplookup.rb +9 -0
  52. data/filter/rblcheck.rb +36 -0
  53. data/filter/spambayes.rb +535 -0
  54. data/filter/spamlookup.rb +37 -0
  55. data/io/dbi_io/ChangeLog +19 -0
  56. data/io/dbi_io/README.ja +39 -0
  57. data/io/dbi_io/dbi_io.rb +181 -0
  58. data/io/dbi_io/plugin/refererDbiIO.rb +76 -0
  59. data/io/dbi_io/tdiary_table.sql +42 -0
  60. data/js/appstore.js +109 -0
  61. data/js/datepicker.js +69 -0
  62. data/js/editor.js +82 -0
  63. data/js/flickr.js +157 -0
  64. data/js/image_ex.js +79 -0
  65. data/js/jquery.socialbutton.js +842 -0
  66. data/js/nicovideo.js +17 -0
  67. data/js/picasa.js +322 -0
  68. data/js/plugin_checker.js +71 -0
  69. data/js/prettify/lang-apollo.js +2 -0
  70. data/js/prettify/lang-clj.js +18 -0
  71. data/js/prettify/lang-css.js +2 -0
  72. data/js/prettify/lang-go.js +1 -0
  73. data/js/prettify/lang-hs.js +2 -0
  74. data/js/prettify/lang-lisp.js +3 -0
  75. data/js/prettify/lang-lua.js +2 -0
  76. data/js/prettify/lang-ml.js +2 -0
  77. data/js/prettify/lang-n.js +4 -0
  78. data/js/prettify/lang-proto.js +1 -0
  79. data/js/prettify/lang-scala.js +2 -0
  80. data/js/prettify/lang-sql.js +2 -0
  81. data/js/prettify/lang-tex.js +1 -0
  82. data/js/prettify/lang-vb.js +2 -0
  83. data/js/prettify/lang-vhdl.js +3 -0
  84. data/js/prettify/lang-wiki.js +2 -0
  85. data/js/prettify/lang-xq.js +3 -0
  86. data/js/prettify/lang-yaml.js +2 -0
  87. data/js/prettify/prettify.css +1 -0
  88. data/js/prettify/prettify.js +28 -0
  89. data/js/referer.js +17 -0
  90. data/js/show_and_hide.js +39 -0
  91. data/js/socialbutton.js +126 -0
  92. data/js/twitter_anywhere.js +28 -0
  93. data/js/yahoo_kousei.js +21 -0
  94. data/lib/bayes/convert.rb +34 -0
  95. data/lib/bayes.rb +232 -0
  96. data/lib/exifparser/BUGS +1 -0
  97. data/lib/exifparser/ChangeLog +169 -0
  98. data/lib/exifparser/README +15 -0
  99. data/lib/exifparser/install.rb +1015 -0
  100. data/lib/exifparser/lib/exifparser/makernote/canon.rb +502 -0
  101. data/lib/exifparser/lib/exifparser/makernote/fujifilm.rb +415 -0
  102. data/lib/exifparser/lib/exifparser/makernote/minolta.rb +84 -0
  103. data/lib/exifparser/lib/exifparser/makernote/mk_nikonflensname.rb +39 -0
  104. data/lib/exifparser/lib/exifparser/makernote/nikon.rb +267 -0
  105. data/lib/exifparser/lib/exifparser/makernote/nikon2.rb +581 -0
  106. data/lib/exifparser/lib/exifparser/makernote/nikonflensname.rb +438 -0
  107. data/lib/exifparser/lib/exifparser/makernote/olympus.rb +225 -0
  108. data/lib/exifparser/lib/exifparser/makernote/prove.rb +84 -0
  109. data/lib/exifparser/lib/exifparser/makernote/sigma.rb +237 -0
  110. data/lib/exifparser/lib/exifparser/pre-setup.rb +1 -0
  111. data/lib/exifparser/lib/exifparser/scan.rb +278 -0
  112. data/lib/exifparser/lib/exifparser/tag.rb +2298 -0
  113. data/lib/exifparser/lib/exifparser/thumbnail.rb +76 -0
  114. data/lib/exifparser/lib/exifparser/utils.rb +88 -0
  115. data/lib/exifparser/lib/exifparser.rb +265 -0
  116. data/lib/exifparser/sample/exifview.rb +279 -0
  117. data/lib/tdiary-contrib.rb +19 -0
  118. data/lib/wgs2tky.rb +93 -0
  119. data/misc/section_footer2/buzzurl.yaml +6 -0
  120. data/misc/section_footer2/fc2.yaml +6 -0
  121. data/misc/section_footer2/ldc.yaml +6 -0
  122. data/misc/section_footer2/retweet.yaml +7 -0
  123. data/misc/section_footer2/twitter.yaml +7 -0
  124. data/misc/section_footer2/yahoo.yaml +6 -0
  125. data/misc/tdiarygraph/tdiarygraph120x90e.swf +0 -0
  126. data/misc/tdiarygraph/tdiarygraph125x125e.swf +0 -0
  127. data/misc/tdiarygraph/tdiarygraph240x180e.swf +0 -0
  128. data/misc/tdiarygraph/tdiarygraph468x60e.swf +0 -0
  129. data/misc/tdiarygraph/tdiarygraph728x90e.swf +0 -0
  130. data/misc/tdiarytimes/tdiarytimes125x125r.swf +0 -0
  131. data/misc/tdiarytimes/tdiarytimes125x125r7.swf +0 -0
  132. data/misc/tdiarytimes/tdiarytimes125x125s.swf +0 -0
  133. data/misc/tdiarytimes/tdiarytimes125x30.swf +0 -0
  134. data/misc/tdiarytimes/tdiarytimes234x30.swf +0 -0
  135. data/misc/tdiarytimes/tdiarytimes468x30.swf +0 -0
  136. data/plugin/add_bookmark.rb +89 -0
  137. data/plugin/apple_webclip.rb +26 -0
  138. data/plugin/appstore.rb +47 -0
  139. data/plugin/bigpresen.rb +86 -0
  140. data/plugin/bitly.rb +39 -0
  141. data/plugin/bootstrap-navi.rb +54 -0
  142. data/plugin/canonical.rb +9 -0
  143. data/plugin/category_similar.rb +73 -0
  144. data/plugin/category_to_tag.rb +60 -0
  145. data/plugin/category_to_tagcloud.rb +172 -0
  146. data/plugin/cocomment.rb +37 -0
  147. data/plugin/code-prettify.rb +23 -0
  148. data/plugin/coderwall.rb +34 -0
  149. data/plugin/datepicker.rb +28 -0
  150. data/plugin/day2section.rb +20 -0
  151. data/plugin/del_footer.rb +111 -0
  152. data/plugin/description_from_body.rb +23 -0
  153. data/plugin/development.rb +16 -0
  154. data/plugin/editor.rb +11 -0
  155. data/plugin/en/add_bookmark.rb +20 -0
  156. data/plugin/en/del_footer.rb +10 -0
  157. data/plugin/en/git-register.rb +3 -0
  158. data/plugin/en/livedoor_weather.rb +25 -0
  159. data/plugin/en/microsummary.rb +18 -0
  160. data/plugin/en/nicovideo.rb +38 -0
  161. data/plugin/en/openid.rb +8 -0
  162. data/plugin/en/section_footer.rb +6 -0
  163. data/plugin/en/section_footer2.rb +3 -0
  164. data/plugin/en/socialbutton.rb +5 -0
  165. data/plugin/everytrail.rb +39 -0
  166. data/plugin/facebook_comments.rb +59 -0
  167. data/plugin/flickr.rb +209 -0
  168. data/plugin/gist.rb +16 -0
  169. data/plugin/git-register.rb +240 -0
  170. data/plugin/github_badge.rb +27 -0
  171. data/plugin/github_link.rb +9 -0
  172. data/plugin/goo_gl.rb +42 -0
  173. data/plugin/google_adsense.rb +132 -0
  174. data/plugin/google_analytics.rb +39 -0
  175. data/plugin/google_map.rb +168 -0
  176. data/plugin/google_sitemaps.rb +60 -0
  177. data/plugin/google_webmaster.rb +22 -0
  178. data/plugin/hatena_bookmark_nocomment.rb +9 -0
  179. data/plugin/hatena_star.rb +66 -0
  180. data/plugin/hb_footer.rb +255 -0
  181. data/plugin/hb_footer4sec.rb +244 -0
  182. data/plugin/hb_footer4sec_js.rb +30 -0
  183. data/plugin/hide_comment_form.rb +4 -0
  184. data/plugin/hide_sidebar_iphone.rb +21 -0
  185. data/plugin/iddy.rb +81 -0
  186. data/plugin/image_detail.rb +143 -0
  187. data/plugin/image_ex.rb +462 -0
  188. data/plugin/image_gps.rb +128 -0
  189. data/plugin/inline_wiki.rb +6 -0
  190. data/plugin/instagr.rb +64 -0
  191. data/plugin/ja/add_bookmark.rb +20 -0
  192. data/plugin/ja/del_footer.rb +10 -0
  193. data/plugin/ja/flickr.rb +62 -0
  194. data/plugin/ja/git-register.rb +3 -0
  195. data/plugin/ja/google_sitemaps.rb +35 -0
  196. data/plugin/ja/livedoor_weather.rb +25 -0
  197. data/plugin/ja/microsummary.rb +18 -0
  198. data/plugin/ja/nicovideo.rb +41 -0
  199. data/plugin/ja/openid.rb +7 -0
  200. data/plugin/ja/section_footer.rb +6 -0
  201. data/plugin/ja/section_footer2.rb +4 -0
  202. data/plugin/ja/socialbutton.rb +6 -0
  203. data/plugin/jdate.rb +20 -0
  204. data/plugin/jholiday.rb +16 -0
  205. data/plugin/jmonth.rb +20 -0
  206. data/plugin/jquery_ui_theme.rb +55 -0
  207. data/plugin/jroku.rb +28 -0
  208. data/plugin/jyear.rb +37 -0
  209. data/plugin/latlonglab_route.rb +25 -0
  210. data/plugin/lazy_referer.rb +38 -0
  211. data/plugin/livedoor_weather.rb +180 -0
  212. data/plugin/make_link.rb +44 -0
  213. data/plugin/makerss_category.rb +43 -0
  214. data/plugin/makerss_comment.rb +35 -0
  215. data/plugin/microsummary.rb +62 -0
  216. data/plugin/mm_footer.rb +215 -0
  217. data/plugin/monthly_autopagerize.rb +67 -0
  218. data/plugin/my_hotentry.rb +132 -0
  219. data/plugin/navi_day.rb +118 -0
  220. data/plugin/navi_this_month.rb +15 -0
  221. data/plugin/nicovideo.rb +115 -0
  222. data/plugin/notify_miniblog.rb +134 -0
  223. data/plugin/ogp.rb +55 -0
  224. data/plugin/ohmsha_estore.rb +71 -0
  225. data/plugin/openid.rb +90 -0
  226. data/plugin/opensearch_ad.rb +33 -0
  227. data/plugin/picasa.rb +56 -0
  228. data/plugin/plugin_checker.rb +41 -0
  229. data/plugin/popit.rb +22 -0
  230. data/plugin/prettify.rb +19 -0
  231. data/plugin/prezi.rb +10 -0
  232. data/plugin/profile.rb +222 -0
  233. data/plugin/puboo.rb +93 -0
  234. data/plugin/pygments_css.rb +76 -0
  235. data/plugin/rating.rb +419 -0
  236. data/plugin/recent_estraier.rb +50 -0
  237. data/plugin/recent_tweet.rb +71 -0
  238. data/plugin/retweet.rb +86 -0
  239. data/plugin/rubykaigi.rb +99 -0
  240. data/plugin/search-bing.rb +87 -0
  241. data/plugin/search-default.rb +264 -0
  242. data/plugin/search-google-custom.rb +60 -0
  243. data/plugin/search-yahoo-websearch.rb +121 -0
  244. data/plugin/search-yahoo.rb +109 -0
  245. data/plugin/section_footer.rb +195 -0
  246. data/plugin/section_footer2.rb +278 -0
  247. data/plugin/section_permalink.rb +73 -0
  248. data/plugin/section_permalink_anchor.rb +39 -0
  249. data/plugin/select_style.rb +42 -0
  250. data/plugin/select_theme.rb +90 -0
  251. data/plugin/show_and_hide.rb +77 -0
  252. data/plugin/slideshare.rb +10 -0
  253. data/plugin/socialbutton.rb +60 -0
  254. data/plugin/tatsu_zine.rb +93 -0
  255. data/plugin/tdiarygraph_flashstyle.rb +296 -0
  256. data/plugin/tdiarytimes.rb +166 -0
  257. data/plugin/tdiarytimes2.rb +406 -0
  258. data/plugin/tdiarytimes_flashstyle.rb +263 -0
  259. data/plugin/tdiarytimes_textstyle.rb +290 -0
  260. data/plugin/title_anchor.rb +16 -0
  261. data/plugin/tweet_quote.rb +106 -0
  262. data/plugin/twitpic.rb +10 -0
  263. data/plugin/twitter.rb +46 -0
  264. data/plugin/twitter_anywhere.rb +209 -0
  265. data/plugin/twitter_badge.rb +42 -0
  266. data/plugin/twitter_js.rb +59 -0
  267. data/plugin/ustream.rb +19 -0
  268. data/plugin/vimeo.rb +14 -0
  269. data/plugin/volatile.rb +89 -0
  270. data/plugin/vote.rb +100 -0
  271. data/plugin/wikiloc.rb +27 -0
  272. data/plugin/windex.rb +512 -0
  273. data/plugin/yahoo_kousei.rb +79 -0
  274. data/plugin/yahoo_map.rb +97 -0
  275. data/plugin/youtube.rb +33 -0
  276. data/plugin/yshop.rb +189 -0
  277. data/plugin/zenback.rb +46 -0
  278. data/spec/apple_webclip_spec.rb +46 -0
  279. data/spec/fixtures/friendfeed.xml +2 -0
  280. data/spec/fixtures/github.json +1 -0
  281. data/spec/fixtures/twitter.xml +73 -0
  282. data/spec/gist_spec.rb +16 -0
  283. data/spec/github_link_spec.rb +39 -0
  284. data/spec/google_analytics_spec.rb +60 -0
  285. data/spec/jdate_spec.rb +23 -0
  286. data/spec/jmonth_spec.rb +28 -0
  287. data/spec/jyear_spec.rb +21 -0
  288. data/spec/my_hotentry_spec.rb +78 -0
  289. data/spec/openid_spec.rb +246 -0
  290. data/spec/opensearch_ad_spec.rb +50 -0
  291. data/spec/profile_spec.rb +88 -0
  292. data/spec/rcov.opts +2 -0
  293. data/spec/spec_helper.rb +223 -0
  294. data/spec/title_anchor_spec.rb +39 -0
  295. data/spec/twitter_js_spec.rb +116 -0
  296. data/spec/youtube_spec.rb +20 -0
  297. data/style/hatena_style.rb +1011 -0
  298. data/style/markdown_style.rb +239 -0
  299. data/style/wikiext_style.rb +21 -0
  300. data/tdiary-contrib.gemspec +25 -0
  301. data/util/clean-spam/README.ja +1 -0
  302. data/util/clean-spam/tdiary-comment-clean +46 -0
  303. data/util/clean-spam/tdiary-comment-clean2 +81 -0
  304. data/util/clean-spam/tdiary-referer-clean +46 -0
  305. data/util/convert_pstore.rb +82 -0
  306. data/util/estraier-search/ChangeLog +36 -0
  307. data/util/estraier-search/README.ja +114 -0
  308. data/util/estraier-search/en/estraier-register.rb +3 -0
  309. data/util/estraier-search/estraier-register.rb +298 -0
  310. data/util/estraier-search/estraier-search.rb +273 -0
  311. data/util/estraier-search/estraier.rhtml +73 -0
  312. data/util/estraier-search/estraier.rxml +23 -0
  313. data/util/estraier-search/i.estraier.rhtml +31 -0
  314. data/util/estraier-search/ja/estraier-register.rb +3 -0
  315. data/util/image-gallery/README.ja +27 -0
  316. data/util/image-gallery/image-gallery.rb +523 -0
  317. data/util/image-gallery/image-gallery.rb.euc-jp +523 -0
  318. data/util/image-gallery/js/SmoothGallery/Changelog +52 -0
  319. data/util/image-gallery/js/SmoothGallery/css/ReMooz.css +186 -0
  320. data/util/image-gallery/js/SmoothGallery/css/img/carrow1.gif +0 -0
  321. data/util/image-gallery/js/SmoothGallery/css/img/carrow2.gif +0 -0
  322. data/util/image-gallery/js/SmoothGallery/css/img/closebox.gif +0 -0
  323. data/util/image-gallery/js/SmoothGallery/css/img/closebox.png +0 -0
  324. data/util/image-gallery/js/SmoothGallery/css/img/fleche1.gif +0 -0
  325. data/util/image-gallery/js/SmoothGallery/css/img/fleche1.png +0 -0
  326. data/util/image-gallery/js/SmoothGallery/css/img/fleche2.gif +0 -0
  327. data/util/image-gallery/js/SmoothGallery/css/img/fleche2.png +0 -0
  328. data/util/image-gallery/js/SmoothGallery/css/img/loading-bar-black.gif +0 -0
  329. data/util/image-gallery/js/SmoothGallery/css/img/open.gif +0 -0
  330. data/util/image-gallery/js/SmoothGallery/css/img/open.png +0 -0
  331. data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_e.png +0 -0
  332. data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_n.png +0 -0
  333. data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_ne.png +0 -0
  334. data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_nw.png +0 -0
  335. data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_s.png +0 -0
  336. data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_se.png +0 -0
  337. data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_sw.png +0 -0
  338. data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_w.png +0 -0
  339. data/util/image-gallery/js/SmoothGallery/css/img/spinner.gif +0 -0
  340. data/util/image-gallery/js/SmoothGallery/css/jd.gallery.css +371 -0
  341. data/util/image-gallery/js/SmoothGallery/css/layout.css +91 -0
  342. data/util/image-gallery/js/SmoothGallery/license.txt +621 -0
  343. data/util/image-gallery/js/SmoothGallery/resizer.php +113 -0
  344. data/util/image-gallery/js/SmoothGallery/scripts/Changelog +52 -0
  345. data/util/image-gallery/js/SmoothGallery/scripts/History.Routing.js +126 -0
  346. data/util/image-gallery/js/SmoothGallery/scripts/History.js +109 -0
  347. data/util/image-gallery/js/SmoothGallery/scripts/ReMooz.js +364 -0
  348. data/util/image-gallery/js/SmoothGallery/scripts/jd.gallery.js +843 -0
  349. data/util/image-gallery/js/SmoothGallery/scripts/jd.gallery.set.js +183 -0
  350. data/util/image-gallery/js/SmoothGallery/scripts/jd.gallery.transitions.js +90 -0
  351. data/util/image-gallery/js/SmoothGallery/scripts/jdgalleryresize.js +828 -0
  352. data/util/image-gallery/js/SmoothGallery/scripts/license.txt +621 -0
  353. data/util/image-gallery/js/SmoothGallery/scripts/mootools-1.2-more.js +103 -0
  354. data/util/image-gallery/js/SmoothGallery/scripts/mootools-1.2.1-core-yc.js +349 -0
  355. data/util/image-gallery/js/SmoothGallery/scripts/resizer.php +113 -0
  356. data/util/image-gallery/misc/plugin/recent_image.rb +406 -0
  357. data/util/image-gallery/skel/gallery.rhtml +154 -0
  358. data/util/image-gallery/skel/gallery.rhtml.euc-jp +154 -0
  359. data/util/image-gallery/tdiary.conf.igsample +8 -0
  360. data/util/image-gallery/theme/image-gallery.css +85 -0
  361. data/util/image2flickr.rb +282 -0
  362. data/util/posttdiary/README.ja +12 -0
  363. data/util/posttdiary/posttdiary-ex.rb +1155 -0
  364. data/util/posttdiary/posttdiary.rb +245 -0
  365. data/util/rast-search/ChangeLog +55 -0
  366. data/util/rast-search/README.ja +99 -0
  367. data/util/rast-search/en/rast-register.rb +3 -0
  368. data/util/rast-search/i.rast.rhtml +33 -0
  369. data/util/rast-search/ja/rast-register.rb +3 -0
  370. data/util/rast-search/rast-register.rb +326 -0
  371. data/util/rast-search/rast-search.rb +249 -0
  372. data/util/rast-search/rast.rhtml +66 -0
  373. data/util/rast-search/rast.rxml +21 -0
  374. data/util/section_link/README +11 -0
  375. data/util/section_link/misc/plugin/section_link.rb +68 -0
  376. data/util/section_link/misc/plugin/section_link_anchor.rb +38 -0
  377. data/util/section_link/tdiary/tdiary_day_ext.rb +21 -0
  378. data/util/section_link/tdiary/tdiaryext_style.rb +36 -0
  379. data/util/section_link/tdiary/wikiext_style.rb +36 -0
  380. data/util/tdiary-for-ruby1.9/compatible.rb +97 -0
  381. data/util/tdiary-for-ruby1.9/tdiary-2.2.0.patch +98 -0
  382. data/util/tdiary-for-ruby1.9/tdiary-2.3.1.patch +212 -0
  383. data/util/tdiary-grep/README +4 -0
  384. data/util/tdiary-grep/grep.rb +445 -0
  385. data/util/tdiary-mode/http.el +130 -0
  386. data/util/tdiary-mode/tdiary-mode.el +613 -0
  387. data/util/tdiary-vim/ChangeLog +25 -0
  388. data/util/tdiary-vim/README +60 -0
  389. data/util/tdiary-vim/tdiary.vim +350 -0
  390. data/util/tdiarysearch/README.en +53 -0
  391. data/util/tdiarysearch/README.ja +99 -0
  392. data/util/tdiarysearch/search.rb +504 -0
  393. metadata +497 -0
@@ -0,0 +1,88 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ require 'spec_helper'
4
+ require 'profile'
5
+
6
+ describe "Profile::Service" do
7
+ describe "GitHub" do
8
+ before do
9
+ require 'json'
10
+ Profile::Service::GitHub.any_instance.stub(:fetch).and_return(JSON.parse(File.read("spec/fixtures/github.json")))
11
+
12
+ # workaround for run spec on various environment.
13
+ require 'openssl'
14
+ OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE
15
+
16
+ # http://develop.github.com/p/general.html
17
+ @profile = Profile::Service::GitHub.new("schacon", :size => 40)
18
+ end
19
+
20
+ it "should include name, mail, image properties" do
21
+ @profile.name.should == "Scott Chacon"
22
+ @profile.mail.should == "schacon@gmail.com"
23
+ @profile.image.should == "http://www.gravatar.com/avatar/9375a9529679f1b42b567a640d775e7d.jpg?s=40"
24
+ end
25
+ end
26
+
27
+ describe "Twitter" do
28
+ before do
29
+ Profile::Service::Twitter.any_instance.stub(:fetch).and_return(REXML::Document.new(File.read("spec/fixtures/twitter.xml")))
30
+
31
+ # http://twitter.com/tdiary
32
+ @profile = Profile::Service::Twitter.new("tdiary")
33
+ end
34
+
35
+ it "should include name, description, image properties" do
36
+ @profile.name.should == "tDiary.org"
37
+ @profile.description.should == "tDiaryオフィシャルアカウント"
38
+ @profile.image.should match(%r{^http://.*\.(png|jpg)$})
39
+ end
40
+ end
41
+
42
+ describe "FriendFeed" do
43
+ before do
44
+ Profile::Service::FriendFeed.any_instance.stub(:fetch).and_return(REXML::Document.new(File.read("spec/fixtures/friendfeed.xml")))
45
+
46
+ # http://friendfeed.com/api/documentation#summary
47
+ @profile = Profile::Service::FriendFeed.new("bret")
48
+ end
49
+
50
+ it "should include name, description, image properties" do
51
+ @profile.name.should == "Bret Taylor"
52
+ @profile.description.should == "Ex-CTO of Facebook. Previously co-founder and CEO of FriendFeed. Programmer, food lover."
53
+ @profile.image.should == "http://friendfeed-api.com/v2/picture/bret"
54
+ end
55
+ end
56
+
57
+ describe "Gravatar" do
58
+ # http://ja.gravatar.com/site/implement/url
59
+
60
+ before do
61
+ @profile = Profile::Service::Gravatar.new("iHaveAn@email.com")
62
+ end
63
+
64
+ it "should include image property" do
65
+ @profile.image.should == "http://www.gravatar.com/avatar/3b3be63a4c2a439b013787725dfce802.jpg"
66
+ end
67
+
68
+ context 'with options' do
69
+ before do
70
+ @profile = Profile::Service::Gravatar.new("iHaveAn@email.com", :size => 40)
71
+ end
72
+
73
+ it "should specify size option" do
74
+ @profile.image.should == "http://www.gravatar.com/avatar/3b3be63a4c2a439b013787725dfce802.jpg?s=40"
75
+ end
76
+ end
77
+ end
78
+
79
+ describe "Hatena" do
80
+ before do
81
+ @profile = Profile::Service::Hatena.new("kmachu")
82
+ end
83
+
84
+ it "should include image property" do
85
+ @profile.image.should == "http://www.hatena.ne.jp/users/km/kmachu/profile.gif"
86
+ end
87
+ end
88
+ end
data/spec/rcov.opts ADDED
@@ -0,0 +1,2 @@
1
+ -x /var/lib/gem
2
+ -x spec/spec_helper.rb
@@ -0,0 +1,223 @@
1
+ # -*- coding: utf-8 -*-
2
+ $:.unshift(File.expand_path(File.join(File.dirname(__FILE__), "..", "plugin")))
3
+
4
+ if ENV['COVERAGE'] == 'simplecov'
5
+ require 'simplecov'
6
+ SimpleCov.start do
7
+ add_filter '/spec/'
8
+ add_filter '/vendor/'
9
+ end
10
+ end
11
+
12
+ require 'erb'
13
+ # FIXME PluginFake in under construction.
14
+ class PluginFake
15
+ include ERB::Util
16
+
17
+ attr_reader :conf
18
+ attr_accessor :mode, :date
19
+
20
+ def initialize
21
+ @conf = Config.new
22
+ @mode = ""
23
+ @date = nil
24
+ @header_procs = []
25
+ @footer_procs = []
26
+ @update_procs = []
27
+ @conf_procs = []
28
+ @body_enter_procs = []
29
+ @body_leave_procs = []
30
+ end
31
+
32
+ def add_conf_proc( key, label, genre=nil, &block )
33
+ @conf_procs << block
34
+ end
35
+
36
+ def add_header_proc( block = Proc::new )
37
+ @header_procs << block
38
+ end
39
+
40
+ def add_footer_proc( block = Proc::new )
41
+ @footer_procs << block
42
+ end
43
+
44
+ def add_update_proc( block = Proc::new )
45
+ @update_procs << block
46
+ end
47
+
48
+ def conf_proc
49
+ r = []
50
+ @conf_procs.each do |proc|
51
+ r << proc.call
52
+ end
53
+ r.join.chomp
54
+ end
55
+
56
+ def header_proc
57
+ r = []
58
+ @header_procs.each do |proc|
59
+ r << proc.call
60
+ end
61
+ r.join.chomp
62
+ end
63
+
64
+ def footer_proc
65
+ r = []
66
+ @footer_procs.each do |proc|
67
+ r << proc.call
68
+ end
69
+ r.join.chomp
70
+ end
71
+
72
+ def add_body_enter_proc( block = Proc::new )
73
+ @body_enter_procs << block
74
+ end
75
+
76
+ def body_enter_proc( date )
77
+ r = []
78
+ @body_enter_procs.each do |proc|
79
+ r << proc.call( date )
80
+ end
81
+ r.join.chomp
82
+ end
83
+
84
+ def add_body_leave_proc( block = Proc::new )
85
+ @body_leave_procs << block
86
+ end
87
+
88
+ def body_leave_proc( date )
89
+ r = []
90
+ @body_leave_procs.each do |proc|
91
+ r << proc.call( date )
92
+ end
93
+ r.join.chomp
94
+ end
95
+
96
+ class Config
97
+
98
+ attr_accessor :index, :html_title, :cgi
99
+
100
+ def initialize
101
+ @cgi = CGIFake.new
102
+ @options = {}
103
+ @options2 = {}
104
+ @index = './'
105
+ @html_title = ''
106
+
107
+ bot = ["bot", "spider", "antenna", "crawler", "moget", "slurp"]
108
+ bot += @options['bot'] || []
109
+ @bot = Regexp::new( "(#{bot.uniq.join( '|' )})", true )
110
+ end
111
+
112
+ def []( key )
113
+ @options[key]
114
+ end
115
+
116
+ def []=( key, val )
117
+ @options2[key] = @options[key] = val
118
+ end
119
+
120
+ def delete( key )
121
+ @options.delete( key )
122
+ @options2.delete( key )
123
+ end
124
+
125
+ def base_url
126
+ begin
127
+ if @options['base_url'].length > 0 then
128
+ return @options['base_url']
129
+ end
130
+ rescue
131
+ end
132
+ end
133
+
134
+ def mobile_agent?
135
+ @cgi.mobile_agent?
136
+ end
137
+
138
+ def smartphone?
139
+ @cgi.iphone?
140
+ end
141
+
142
+ def bot?
143
+ @bot =~ @cgi.user_agent
144
+ end
145
+ end
146
+
147
+ def feed?
148
+ false
149
+ end
150
+
151
+ def iphone?
152
+ @conf.cgi.iphone?
153
+ end
154
+ alias ipod? iphone?
155
+ end
156
+
157
+ class CGIFake
158
+ attr_accessor :user_agent
159
+
160
+ def initialize
161
+ @user_agent = ""
162
+ end
163
+
164
+ def mobile_agent?
165
+ self.user_agent =~ %r[
166
+ ^DoCoMo|
167
+ ^(?:KDDI|UP\.Browser)|
168
+ ^(?:J-(?:PHONE|EMULATOR)|Vodafone|SoftBank|MOT-|[VS]emulator)|
169
+ WILLCOM|DDIPOCKET|
170
+ PDXGW|ASTEL|Palmscape|Xiino|sharp\ pda\ browser|Windows\ CE|L-mode
171
+ ]x
172
+ end
173
+
174
+ def iphone?
175
+ self.user_agent =~ /iP(?:hone|od)/
176
+ end
177
+ end
178
+
179
+ def fake_plugin( name_sym, cgi=nil, base=nil, &block )
180
+ plugin = PluginFake.new
181
+ yield plugin if block_given?
182
+
183
+ file_path = plugin_path( name_sym, base )
184
+ plugin_name = File.basename( file_path, ".rb" )
185
+
186
+ plugin.instance_eval do
187
+ eval( File.read( file_path ), binding,
188
+ "(#{File.basename(file_path)})", 1 )
189
+ end
190
+ plugin_sym = plugin_name.to_sym
191
+ if plugin.class.private_method_defined?( plugin_sym )
192
+ plugin.__send__( :public, plugin_sym )
193
+ end
194
+
195
+ plugin
196
+ end
197
+
198
+ def plugin_path( plugin_sym, base=nil )
199
+ paths = []
200
+ paths << ( base ? base : "plugin" )
201
+ paths << "#{plugin_sym.to_s}.rb"
202
+ File.expand_path( File.join( paths ))
203
+ end
204
+
205
+ def anchor( s )
206
+ if /^([\-\d]+)#?([pct]\d*)?$/ =~ s then
207
+ if $2 then
208
+ "?date=#$1##$2"
209
+ else
210
+ "?date=#$1"
211
+ end
212
+ else
213
+ ""
214
+ end
215
+ end
216
+
217
+ # Local Variables:
218
+ # mode: ruby
219
+ # indent-tabs-mode: t
220
+ # tab-width: 3
221
+ # ruby-indent-level: 3
222
+ # End:
223
+ # vim: ts=3
@@ -0,0 +1,39 @@
1
+ $:.unshift(File.dirname(__FILE__))
2
+ require 'spec_helper'
3
+
4
+ describe "title_anchor plugin" do
5
+ def setup_title_anchor_plugin(mode)
6
+ fake_plugin(:title_anchor) { |plugin|
7
+ plugin.mode = mode
8
+ plugin.conf.index = ''
9
+ plugin.conf.html_title = "HsbtDiary"
10
+ }
11
+ end
12
+
13
+ describe "in day mode" do
14
+ before do
15
+ @plugin = setup_title_anchor_plugin('day')
16
+ end
17
+
18
+ it { @plugin.title_anchor.should == expected_html_title_in_day(
19
+ :index => '',
20
+ :html_title => 'HsbtDiary')}
21
+ end
22
+
23
+ describe "in latest mode" do
24
+ before do
25
+ @plugin = setup_title_anchor_plugin('latest')
26
+ end
27
+
28
+ it { @plugin.title_anchor.should == expected_html_title_in_latest(
29
+ :html_title => 'HsbtDiary')}
30
+ end
31
+
32
+ def expected_html_title_in_day(options)
33
+ expected = %{<h1><a href="#{options[:index]}">#{options[:html_title]}</a></h1>}
34
+ end
35
+
36
+ def expected_html_title_in_latest(options)
37
+ expected = %{<h1>#{options[:html_title]}</h1>}
38
+ end
39
+ end
@@ -0,0 +1,116 @@
1
+ $:.unshift(File.dirname(__FILE__))
2
+ require 'spec_helper'
3
+ require 'time'
4
+
5
+ describe "twitter_js plugin" do
6
+ def setup_twitter_js_plugin(mode, user_id)
7
+ fake_plugin(:twitter_js) { |plugin|
8
+ plugin.mode = mode
9
+ plugin.conf['twitter.user'] = user_id
10
+ plugin.date = Time.parse("20080124")
11
+ }
12
+ end
13
+
14
+ describe "should render javascript and div tag in day" do
15
+ before do
16
+ @plugin = setup_twitter_js_plugin("day", "123456789")
17
+ end
18
+
19
+ it "for header" do
20
+ snippet = @plugin.header_proc
21
+ snippet.should == expected_html_header_snippet("123456789")
22
+ end
23
+
24
+ it "for body leave" do
25
+ snippet = @plugin.body_leave_proc(Time.parse("20080124"))
26
+ snippet.should == expected_html_body_snippet
27
+ end
28
+ end
29
+
30
+ describe "should render javascript and div tag in latest" do
31
+ before do
32
+ @plugin = setup_twitter_js_plugin("latest", "123456789")
33
+ end
34
+
35
+ it "for header" do
36
+ snippet = @plugin.header_proc
37
+ snippet.should == expected_html_header_snippet("123456789")
38
+ end
39
+
40
+ it "for body leave" do
41
+ snippet = @plugin.body_leave_proc(Time.parse("20080124"))
42
+ snippet.should == expected_html_body_snippet
43
+ end
44
+ end
45
+
46
+ describe "should not render in edit" do
47
+ before do
48
+ @plugin = setup_twitter_js_plugin("edit", "123456789")
49
+ end
50
+
51
+ it "for header" do
52
+ snippet = @plugin.header_proc
53
+ snippet.should be_empty
54
+ end
55
+
56
+ it "for body leave" do
57
+ snippet = @plugin.body_leave_proc(Time.parse("20080124"))
58
+ snippet.should be_empty
59
+ end
60
+ end
61
+
62
+ describe "should not render when user_id is empty" do
63
+ before do
64
+ @plugin = setup_twitter_js_plugin("edit", "")
65
+ end
66
+
67
+ it "for header" do
68
+ snippet = @plugin.header_proc
69
+ snippet.should be_empty
70
+ end
71
+
72
+ it "for body leave" do
73
+ snippet = @plugin.body_leave_proc(Time.parse("20080124"))
74
+ snippet.should be_empty
75
+ end
76
+ end
77
+
78
+ def expected_html_header_snippet(user_id)
79
+ expected = <<-EXPECTED
80
+ <script type="text/javascript"><!--
81
+ function twitter_cb(a){
82
+ var f=function(n){return (n<10?'0':'')+n};
83
+ for(var i=0,l=a.length;i<l;i++){
84
+ var d=new Date(a[i]['created_at'].replace('+0000','UTC'));
85
+ var id='twitter_statuses_'+f(d.getFullYear())+f(d.getMonth()+1)+f(d.getDate());
86
+ var e=document.getElementById(id);
87
+ if(!e) continue;
88
+ if(!e.innerHTML) e.innerHTML='<h3><a href="http://twitter.com/#{user_id}">Twitter statuses</a></h3>';
89
+ e.innerHTML+='<p><strong>'+a[i]['text']+'</strong> ('+f(d.getHours())+':'+f(d.getMinutes())+':'+f(d.getSeconds())+')</p>';
90
+ }
91
+ }
92
+ function twitter_js(){
93
+ var e=document.createElement('script');
94
+ e.type='text/javascript';
95
+ e.src='http://twitter.com/statuses/user_timeline/#{user_id}.json?callback=twitter_cb&amp;count=20';
96
+ document.documentElement.appendChild(e);
97
+ }
98
+ if(window.addEventListener){
99
+ window.addEventListener('load',twitter_js,false);
100
+ }else if(window.attachEvent){
101
+ window.attachEvent('onload',twitter_js);
102
+ }else{
103
+ window.onload=twitter_js;
104
+ }
105
+ // --></script>
106
+ EXPECTED
107
+ expected.gsub(/^\t/, '').chomp
108
+ end
109
+
110
+ def expected_html_body_snippet
111
+ expected = <<-HTML
112
+ <div id="twitter_statuses_20080124" class="section"></div>
113
+ HTML
114
+ expected.gsub( /^\t/, '' ).chomp
115
+ end
116
+ end
@@ -0,0 +1,20 @@
1
+ $:.unshift(File.dirname(__FILE__))
2
+ require 'spec_helper'
3
+
4
+ describe "youtube plugin" do
5
+ DUMMY_YOUTUBE_VIDEO_ID = 1234567890
6
+
7
+ {
8
+ 'DoCoMo' => %|<div class="youtube"><a href="http://www.youtube.com/watch?v=#{DUMMY_YOUTUBE_VIDEO_ID}">YouTube (#{DUMMY_YOUTUBE_VIDEO_ID})</a></div>|,
9
+ 'iPhone' => %|\t\t<iframe class="youtube-player" type="text/html" width="240" height="194" src="http://www.youtube.com/embed/#{DUMMY_YOUTUBE_VIDEO_ID}" frameborder="0">\n\t\t</iframe>\n\t\t<div class="youtube"><a href="http://www.youtube.com/watch?v=#{DUMMY_YOUTUBE_VIDEO_ID}">YouTube (#{DUMMY_YOUTUBE_VIDEO_ID})</a></div>\n|,
10
+ 'Mozilla' => %|\t\t<iframe class="youtube-player" type="text/html" width="425" height="350" src="http://www.youtube.com/embed/#{DUMMY_YOUTUBE_VIDEO_ID}" frameborder="0">\n\t\t</iframe>\n|
11
+ }.each do |k,v|
12
+ it 'should render object tag in :user_agent' do
13
+ plugin = fake_plugin(:youtube)
14
+ cgi = CGIFake.new
15
+ cgi.user_agent = k
16
+ plugin.conf.cgi = cgi
17
+ plugin.youtube(DUMMY_YOUTUBE_VIDEO_ID).should == v
18
+ end
19
+ end
20
+ end