qwik2md 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (335) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/.travis.yml +4 -0
  4. data/Gemfile +4 -0
  5. data/README.md +36 -0
  6. data/Rakefile +10 -0
  7. data/bin/console +14 -0
  8. data/bin/setup +8 -0
  9. data/exe/qwik2md +17 -0
  10. data/lib/qwik2md/version.rb +3 -0
  11. data/lib/qwik2md.rb +39 -0
  12. data/qwik2md.gemspec +30 -0
  13. data/vendor/qwik/AUTHORS +10 -0
  14. data/vendor/qwik/COPYING +340 -0
  15. data/vendor/qwik/COPYRIGHT +346 -0
  16. data/vendor/qwik/lib/qwik/Makefile +63 -0
  17. data/vendor/qwik/lib/qwik/Rakefile +17 -0
  18. data/vendor/qwik/lib/qwik/act-aa.rb +83 -0
  19. data/vendor/qwik/lib/qwik/act-archive.rb +386 -0
  20. data/vendor/qwik/lib/qwik/act-attach.rb +304 -0
  21. data/vendor/qwik/lib/qwik/act-backup.rb +236 -0
  22. data/vendor/qwik/lib/qwik/act-basic.rb +325 -0
  23. data/vendor/qwik/lib/qwik/act-book.rb +161 -0
  24. data/vendor/qwik/lib/qwik/act-calc.rb +371 -0
  25. data/vendor/qwik/lib/qwik/act-charset.rb +251 -0
  26. data/vendor/qwik/lib/qwik/act-christel.rb +112 -0
  27. data/vendor/qwik/lib/qwik/act-chronology.rb +149 -0
  28. data/vendor/qwik/lib/qwik/act-code.rb +155 -0
  29. data/vendor/qwik/lib/qwik/act-comment.rb +554 -0
  30. data/vendor/qwik/lib/qwik/act-config.rb +49 -0
  31. data/vendor/qwik/lib/qwik/act-counter.rb +125 -0
  32. data/vendor/qwik/lib/qwik/act-day.rb +96 -0
  33. data/vendor/qwik/lib/qwik/act-describe.rb +135 -0
  34. data/vendor/qwik/lib/qwik/act-diary.rb +109 -0
  35. data/vendor/qwik/lib/qwik/act-edit.rb +317 -0
  36. data/vendor/qwik/lib/qwik/act-embed-html.rb +296 -0
  37. data/vendor/qwik/lib/qwik/act-emode.rb +150 -0
  38. data/vendor/qwik/lib/qwik/act-event.rb +187 -0
  39. data/vendor/qwik/lib/qwik/act-file.rb +303 -0
  40. data/vendor/qwik/lib/qwik/act-files.rb +771 -0
  41. data/vendor/qwik/lib/qwik/act-getpass.rb +295 -0
  42. data/vendor/qwik/lib/qwik/act-history.rb +136 -0
  43. data/vendor/qwik/lib/qwik/act-html.rb +204 -0
  44. data/vendor/qwik/lib/qwik/act-httpauth.rb +147 -0
  45. data/vendor/qwik/lib/qwik/act-include.rb +142 -0
  46. data/vendor/qwik/lib/qwik/act-interwiki.rb +189 -0
  47. data/vendor/qwik/lib/qwik/act-isearch.rb +109 -0
  48. data/vendor/qwik/lib/qwik/act-keywords.rb +137 -0
  49. data/vendor/qwik/lib/qwik/act-lang.rb +81 -0
  50. data/vendor/qwik/lib/qwik/act-license.rb +63 -0
  51. data/vendor/qwik/lib/qwik/act-list.rb +287 -0
  52. data/vendor/qwik/lib/qwik/act-login.rb +410 -0
  53. data/vendor/qwik/lib/qwik/act-logout.rb +60 -0
  54. data/vendor/qwik/lib/qwik/act-mail.rb +159 -0
  55. data/vendor/qwik/lib/qwik/act-map.rb +292 -0
  56. data/vendor/qwik/lib/qwik/act-md5.rb +42 -0
  57. data/vendor/qwik/lib/qwik/act-mdlb.rb +741 -0
  58. data/vendor/qwik/lib/qwik/act-media.rb +416 -0
  59. data/vendor/qwik/lib/qwik/act-member.rb +157 -0
  60. data/vendor/qwik/lib/qwik/act-menu.rb +142 -0
  61. data/vendor/qwik/lib/qwik/act-metadata.rb +323 -0
  62. data/vendor/qwik/lib/qwik/act-mlsubmitform.rb +49 -0
  63. data/vendor/qwik/lib/qwik/act-monitor.rb +167 -0
  64. data/vendor/qwik/lib/qwik/act-new.rb +418 -0
  65. data/vendor/qwik/lib/qwik/act-pagelist.rb +248 -0
  66. data/vendor/qwik/lib/qwik/act-password.rb +145 -0
  67. data/vendor/qwik/lib/qwik/act-plan.rb +210 -0
  68. data/vendor/qwik/lib/qwik/act-povray.rb +230 -0
  69. data/vendor/qwik/lib/qwik/act-presen.rb +380 -0
  70. data/vendor/qwik/lib/qwik/act-redirect.rb +133 -0
  71. data/vendor/qwik/lib/qwik/act-ring.rb +1071 -0
  72. data/vendor/qwik/lib/qwik/act-rrefs.rb +255 -0
  73. data/vendor/qwik/lib/qwik/act-ruby.rb +116 -0
  74. data/vendor/qwik/lib/qwik/act-sample.rb +170 -0
  75. data/vendor/qwik/lib/qwik/act-save.rb +295 -0
  76. data/vendor/qwik/lib/qwik/act-schedule.rb +374 -0
  77. data/vendor/qwik/lib/qwik/act-search.rb +180 -0
  78. data/vendor/qwik/lib/qwik/act-searchwords.rb +51 -0
  79. data/vendor/qwik/lib/qwik/act-sendpass.rb +83 -0
  80. data/vendor/qwik/lib/qwik/act-site.rb +89 -0
  81. data/vendor/qwik/lib/qwik/act-sitebackup.rb +419 -0
  82. data/vendor/qwik/lib/qwik/act-sitelog.rb +118 -0
  83. data/vendor/qwik/lib/qwik/act-smil.rb +299 -0
  84. data/vendor/qwik/lib/qwik/act-status.rb +220 -0
  85. data/vendor/qwik/lib/qwik/act-style.rb +608 -0
  86. data/vendor/qwik/lib/qwik/act-table.rb +263 -0
  87. data/vendor/qwik/lib/qwik/act-tableform.rb +241 -0
  88. data/vendor/qwik/lib/qwik/act-tag.rb +103 -0
  89. data/vendor/qwik/lib/qwik/act-text.rb +70 -0
  90. data/vendor/qwik/lib/qwik/act-textarea.rb +164 -0
  91. data/vendor/qwik/lib/qwik/act-theme.rb +346 -0
  92. data/vendor/qwik/lib/qwik/act-toc.rb +112 -0
  93. data/vendor/qwik/lib/qwik/act-typekey.rb +198 -0
  94. data/vendor/qwik/lib/qwik/act-under-const.rb +94 -0
  95. data/vendor/qwik/lib/qwik/act-webservice.rb +321 -0
  96. data/vendor/qwik/lib/qwik/act-wema.rb +558 -0
  97. data/vendor/qwik/lib/qwik/act-wysiwyg.rb +238 -0
  98. data/vendor/qwik/lib/qwik/action.rb +325 -0
  99. data/vendor/qwik/lib/qwik/autoreload.rb +98 -0
  100. data/vendor/qwik/lib/qwik/bench-bench.rb +28 -0
  101. data/vendor/qwik/lib/qwik/bench-emode.rb +47 -0
  102. data/vendor/qwik/lib/qwik/bench-format-xml.rb +70 -0
  103. data/vendor/qwik/lib/qwik/bench-large-table.rb +62 -0
  104. data/vendor/qwik/lib/qwik/bench-md5.rb +14 -0
  105. data/vendor/qwik/lib/qwik/bench-module-session.rb +19 -0
  106. data/vendor/qwik/lib/qwik/bench-page.rb +50 -0
  107. data/vendor/qwik/lib/qwik/bench-s-md5.rb +28 -0
  108. data/vendor/qwik/lib/qwik/bench-session.rb +25 -0
  109. data/vendor/qwik/lib/qwik/bench-textformat.rb +31 -0
  110. data/vendor/qwik/lib/qwik/catalog-factory.rb +91 -0
  111. data/vendor/qwik/lib/qwik/catalog-ja.rb +479 -0
  112. data/vendor/qwik/lib/qwik/catalog-ml-ja.rb +145 -0
  113. data/vendor/qwik/lib/qwik/check-act-monitor.rb +112 -0
  114. data/vendor/qwik/lib/qwik/check-act-monitor2.rb +46 -0
  115. data/vendor/qwik/lib/qwik/check-act-theme.rb +27 -0
  116. data/vendor/qwik/lib/qwik/check-event.rb +112 -0
  117. data/vendor/qwik/lib/qwik/check-event2.rb +55 -0
  118. data/vendor/qwik/lib/qwik/check-htree-rexml.rb +77 -0
  119. data/vendor/qwik/lib/qwik/check-htree.rb +51 -0
  120. data/vendor/qwik/lib/qwik/check-libxml.rb +135 -0
  121. data/vendor/qwik/lib/qwik/check-many-pages.rb +47 -0
  122. data/vendor/qwik/lib/qwik/check-monitor.rb +33 -0
  123. data/vendor/qwik/lib/qwik/check-observer.rb +67 -0
  124. data/vendor/qwik/lib/qwik/check-server.rb +61 -0
  125. data/vendor/qwik/lib/qwik/check-uuencode.rb +33 -0
  126. data/vendor/qwik/lib/qwik/check-webdav.rb +65 -0
  127. data/vendor/qwik/lib/qwik/check-xml-xpath.rb +27 -0
  128. data/vendor/qwik/lib/qwik/common-backtrace.rb +94 -0
  129. data/vendor/qwik/lib/qwik/common-basic.rb +111 -0
  130. data/vendor/qwik/lib/qwik/common-condition.rb +142 -0
  131. data/vendor/qwik/lib/qwik/common-error.rb +48 -0
  132. data/vendor/qwik/lib/qwik/common-gettext.rb +50 -0
  133. data/vendor/qwik/lib/qwik/common-javascript.rb +45 -0
  134. data/vendor/qwik/lib/qwik/common-notice.rb +132 -0
  135. data/vendor/qwik/lib/qwik/common-plain.rb +105 -0
  136. data/vendor/qwik/lib/qwik/common-plugin.rb +111 -0
  137. data/vendor/qwik/lib/qwik/common-res.rb +76 -0
  138. data/vendor/qwik/lib/qwik/common-resolve.rb +92 -0
  139. data/vendor/qwik/lib/qwik/common-send.rb +171 -0
  140. data/vendor/qwik/lib/qwik/common-session.rb +139 -0
  141. data/vendor/qwik/lib/qwik/common-surface.rb +261 -0
  142. data/vendor/qwik/lib/qwik/common-url.rb +90 -0
  143. data/vendor/qwik/lib/qwik/compat/Makefile +12 -0
  144. data/vendor/qwik/lib/qwik/compat/add_load_path.rb +1 -0
  145. data/vendor/qwik/lib/qwik/config.rb +299 -0
  146. data/vendor/qwik/lib/qwik/db-b-backup.rb +142 -0
  147. data/vendor/qwik/lib/qwik/db-backup.rb +184 -0
  148. data/vendor/qwik/lib/qwik/db-berkeley.rb +306 -0
  149. data/vendor/qwik/lib/qwik/db-filesystem.rb +305 -0
  150. data/vendor/qwik/lib/qwik/db-indexer.rb +154 -0
  151. data/vendor/qwik/lib/qwik/db-searchwords.rb +238 -0
  152. data/vendor/qwik/lib/qwik/description-ja.rb +267 -0
  153. data/vendor/qwik/lib/qwik/description.rb +256 -0
  154. data/vendor/qwik/lib/qwik/dev-add-copyright.rb +23 -0
  155. data/vendor/qwik/lib/qwik/dev-backup.rb +24 -0
  156. data/vendor/qwik/lib/qwik/dev-bench.rb +175 -0
  157. data/vendor/qwik/lib/qwik/dev-calctime.rb +52 -0
  158. data/vendor/qwik/lib/qwik/dev-css-compressor.rb +60 -0
  159. data/vendor/qwik/lib/qwik/dev-extract-catalog.rb +102 -0
  160. data/vendor/qwik/lib/qwik/dev-js-compressor.rb +73 -0
  161. data/vendor/qwik/lib/qwik/dev-release.rb +235 -0
  162. data/vendor/qwik/lib/qwik/dev-replace.rb +353 -0
  163. data/vendor/qwik/lib/qwik/dev-sendmail.rb +25 -0
  164. data/vendor/qwik/lib/qwik/farm.rb +283 -0
  165. data/vendor/qwik/lib/qwik/gettext.rb +56 -0
  166. data/vendor/qwik/lib/qwik/group-cond.rb +157 -0
  167. data/vendor/qwik/lib/qwik/group-config.rb +247 -0
  168. data/vendor/qwik/lib/qwik/group-confirm.rb +147 -0
  169. data/vendor/qwik/lib/qwik/group-db.rb +326 -0
  170. data/vendor/qwik/lib/qwik/group-mail.rb +195 -0
  171. data/vendor/qwik/lib/qwik/group-member.rb +307 -0
  172. data/vendor/qwik/lib/qwik/group-sendmail.rb +231 -0
  173. data/vendor/qwik/lib/qwik/group-site.rb +374 -0
  174. data/vendor/qwik/lib/qwik/group-sweep.rb +63 -0
  175. data/vendor/qwik/lib/qwik/group.rb +157 -0
  176. data/vendor/qwik/lib/qwik/helper.rb +6 -0
  177. data/vendor/qwik/lib/qwik/html-generator.rb +104 -0
  178. data/vendor/qwik/lib/qwik/html-to-wabisabi.rb +148 -0
  179. data/vendor/qwik/lib/qwik/htree-diff.rb +87 -0
  180. data/vendor/qwik/lib/qwik/htree-format-xml.rb +57 -0
  181. data/vendor/qwik/lib/qwik/htree-generator.rb +144 -0
  182. data/vendor/qwik/lib/qwik/htree-get.rb +251 -0
  183. data/vendor/qwik/lib/qwik/htree-html-generator.rb +179 -0
  184. data/vendor/qwik/lib/qwik/htree-template.rb +263 -0
  185. data/vendor/qwik/lib/qwik/htree-to-wabisabi.rb +171 -0
  186. data/vendor/qwik/lib/qwik/loadlib.rb +79 -0
  187. data/vendor/qwik/lib/qwik/logger.rb +115 -0
  188. data/vendor/qwik/lib/qwik/mail-body.rb +171 -0
  189. data/vendor/qwik/lib/qwik/mail-header.rb +474 -0
  190. data/vendor/qwik/lib/qwik/mail-multipart.rb +193 -0
  191. data/vendor/qwik/lib/qwik/mail-parse.rb +147 -0
  192. data/vendor/qwik/lib/qwik/mail.rb +341 -0
  193. data/vendor/qwik/lib/qwik/mailaddress.rb +83 -0
  194. data/vendor/qwik/lib/qwik/mdlb-model.rb +81 -0
  195. data/vendor/qwik/lib/qwik/mdlb-sample.rb +324 -0
  196. data/vendor/qwik/lib/qwik/ml-catalog-factory.rb +27 -0
  197. data/vendor/qwik/lib/qwik/ml-exception.rb +15 -0
  198. data/vendor/qwik/lib/qwik/ml-generator.rb +28 -0
  199. data/vendor/qwik/lib/qwik/ml-gettext.rb +137 -0
  200. data/vendor/qwik/lib/qwik/ml-logger.rb +82 -0
  201. data/vendor/qwik/lib/qwik/ml-memory.rb +65 -0
  202. data/vendor/qwik/lib/qwik/ml-msg-validator.rb +86 -0
  203. data/vendor/qwik/lib/qwik/ml-processor.rb +609 -0
  204. data/vendor/qwik/lib/qwik/ml-quickml-server.rb +122 -0
  205. data/vendor/qwik/lib/qwik/ml-sendmail.rb +0 -0
  206. data/vendor/qwik/lib/qwik/ml-server.rb +107 -0
  207. data/vendor/qwik/lib/qwik/ml-session.rb +348 -0
  208. data/vendor/qwik/lib/qwik/ml-sweeper.rb +101 -0
  209. data/vendor/qwik/lib/qwik/mock-logger.rb +65 -0
  210. data/vendor/qwik/lib/qwik/mock-sendmail.rb +78 -0
  211. data/vendor/qwik/lib/qwik/mock-socket.rb +82 -0
  212. data/vendor/qwik/lib/qwik/modulobe.rb +406 -0
  213. data/vendor/qwik/lib/qwik/mongrel-server.rb +72 -0
  214. data/vendor/qwik/lib/qwik/page-files.rb +249 -0
  215. data/vendor/qwik/lib/qwik/page-generate.rb +82 -0
  216. data/vendor/qwik/lib/qwik/page-get.rb +262 -0
  217. data/vendor/qwik/lib/qwik/page-images.rb +168 -0
  218. data/vendor/qwik/lib/qwik/page-put.rb +128 -0
  219. data/vendor/qwik/lib/qwik/page-rrefs.rb +154 -0
  220. data/vendor/qwik/lib/qwik/page-title.rb +0 -0
  221. data/vendor/qwik/lib/qwik/page-wikidb.rb +234 -0
  222. data/vendor/qwik/lib/qwik/page.rb +67 -0
  223. data/vendor/qwik/lib/qwik/pages.rb +444 -0
  224. data/vendor/qwik/lib/qwik/parse-plugin.rb +249 -0
  225. data/vendor/qwik/lib/qwik/parser-emode.rb +116 -0
  226. data/vendor/qwik/lib/qwik/parser-inline.rb +272 -0
  227. data/vendor/qwik/lib/qwik/parser.rb +349 -0
  228. data/vendor/qwik/lib/qwik/password.rb +183 -0
  229. data/vendor/qwik/lib/qwik/periodic.rb +79 -0
  230. data/vendor/qwik/lib/qwik/qp.rb +56 -0
  231. data/vendor/qwik/lib/qwik/qwik-service.rb +341 -0
  232. data/vendor/qwik/lib/qwik/qwik.rb +5 -0
  233. data/vendor/qwik/lib/qwik/qwikweb-adduser.rb +34 -0
  234. data/vendor/qwik/lib/qwik/qwikweb-catalog-validator.rb +110 -0
  235. data/vendor/qwik/lib/qwik/qwikweb-incgen.rb +28 -0
  236. data/vendor/qwik/lib/qwik/qwikweb-makesite.rb +41 -0
  237. data/vendor/qwik/lib/qwik/qwikweb-server.rb +44 -0
  238. data/vendor/qwik/lib/qwik/qwikweb-showpassword.rb +26 -0
  239. data/vendor/qwik/lib/qwik/qwikweb-watchlog.rb +67 -0
  240. data/vendor/qwik/lib/qwik/request-path.rb +304 -0
  241. data/vendor/qwik/lib/qwik/request-ua.rb +76 -0
  242. data/vendor/qwik/lib/qwik/request-webrick.rb +81 -0
  243. data/vendor/qwik/lib/qwik/request.rb +91 -0
  244. data/vendor/qwik/lib/qwik/resolve-tdiary.rb +292 -0
  245. data/vendor/qwik/lib/qwik/resolve.rb +121 -0
  246. data/vendor/qwik/lib/qwik/response.rb +228 -0
  247. data/vendor/qwik/lib/qwik/server-memory.rb +57 -0
  248. data/vendor/qwik/lib/qwik/server-webrick.rb +102 -0
  249. data/vendor/qwik/lib/qwik/server.rb +252 -0
  250. data/vendor/qwik/lib/qwik/site-config.rb +149 -0
  251. data/vendor/qwik/lib/qwik/site-db.rb +136 -0
  252. data/vendor/qwik/lib/qwik/site-event.rb +162 -0
  253. data/vendor/qwik/lib/qwik/site-files.rb +86 -0
  254. data/vendor/qwik/lib/qwik/site-group.rb +103 -0
  255. data/vendor/qwik/lib/qwik/site-index.rb +47 -0
  256. data/vendor/qwik/lib/qwik/site-log.rb +64 -0
  257. data/vendor/qwik/lib/qwik/site-member.rb +230 -0
  258. data/vendor/qwik/lib/qwik/site-monitor.rb +97 -0
  259. data/vendor/qwik/lib/qwik/site-pages.rb +62 -0
  260. data/vendor/qwik/lib/qwik/site-plan.rb +139 -0
  261. data/vendor/qwik/lib/qwik/site-report.rb +282 -0
  262. data/vendor/qwik/lib/qwik/site-resolve.rb +230 -0
  263. data/vendor/qwik/lib/qwik/site-rrefs.rb +18 -0
  264. data/vendor/qwik/lib/qwik/site-search.rb +180 -0
  265. data/vendor/qwik/lib/qwik/site-timeline.rb +153 -0
  266. data/vendor/qwik/lib/qwik/site-url.rb +189 -0
  267. data/vendor/qwik/lib/qwik/site.rb +76 -0
  268. data/vendor/qwik/lib/qwik/smil-time.rb +105 -0
  269. data/vendor/qwik/lib/qwik/smtp-session.rb +331 -0
  270. data/vendor/qwik/lib/qwik/template-generator.rb +149 -0
  271. data/vendor/qwik/lib/qwik/template.rb +85 -0
  272. data/vendor/qwik/lib/qwik/test-common.rb +10 -0
  273. data/vendor/qwik/lib/qwik/test-ml-info.rb +225 -0
  274. data/vendor/qwik/lib/qwik/test-module-ml.rb +142 -0
  275. data/vendor/qwik/lib/qwik/test-module-path.rb +110 -0
  276. data/vendor/qwik/lib/qwik/test-module-public.rb +70 -0
  277. data/vendor/qwik/lib/qwik/test-module-server.rb +98 -0
  278. data/vendor/qwik/lib/qwik/test-module-session.rb +264 -0
  279. data/vendor/qwik/lib/qwik/test-module-suite.rb +91 -0
  280. data/vendor/qwik/lib/qwik/test-ms-applemail.rb +59 -0
  281. data/vendor/qwik/lib/qwik/test-ms-attach.rb +174 -0
  282. data/vendor/qwik/lib/qwik/test-ms-basic.rb +40 -0
  283. data/vendor/qwik/lib/qwik/test-ms-close.rb +35 -0
  284. data/vendor/qwik/lib/qwik/test-ms-confirm.rb +75 -0
  285. data/vendor/qwik/lib/qwik/test-ms-ignore-spam.rb +57 -0
  286. data/vendor/qwik/lib/qwik/test-ms-japanese.rb +97 -0
  287. data/vendor/qwik/lib/qwik/test-ms-jfilename.rb +82 -0
  288. data/vendor/qwik/lib/qwik/test-ms-large.rb +58 -0
  289. data/vendor/qwik/lib/qwik/test-ms-member.rb +103 -0
  290. data/vendor/qwik/lib/qwik/test-ms-multipart.rb +84 -0
  291. data/vendor/qwik/lib/qwik/test-ms-org.rb +129 -0
  292. data/vendor/qwik/lib/qwik/test-ms-plan.rb +130 -0
  293. data/vendor/qwik/lib/qwik/test-ms-post.rb +53 -0
  294. data/vendor/qwik/lib/qwik/test-ms-quopri.rb +76 -0
  295. data/vendor/qwik/lib/qwik/test-sub-quopri.rb +45 -0
  296. data/vendor/qwik/lib/qwik/test-submit-base64.rb +59 -0
  297. data/vendor/qwik/lib/qwik/test-submit-forward.rb +61 -0
  298. data/vendor/qwik/lib/qwik/test-submit-html-mail.rb +52 -0
  299. data/vendor/qwik/lib/qwik/test-submit-japanese.rb +135 -0
  300. data/vendor/qwik/lib/qwik/test-submit-jfilename.rb +144 -0
  301. data/vendor/qwik/lib/qwik/test-submit-uuencode.rb +71 -0
  302. data/vendor/qwik/lib/qwik/test-suite-all.rb +8 -0
  303. data/vendor/qwik/lib/qwik/test-suite-basic.rb +9 -0
  304. data/vendor/qwik/lib/qwik/test-suite-ml.rb +9 -0
  305. data/vendor/qwik/lib/qwik/test-typekey.rb +64 -0
  306. data/vendor/qwik/lib/qwik/testunit.rb +45 -0
  307. data/vendor/qwik/lib/qwik/tokenizer-inline.rb +288 -0
  308. data/vendor/qwik/lib/qwik/tokenizer.rb +331 -0
  309. data/vendor/qwik/lib/qwik/typekey.rb +160 -0
  310. data/vendor/qwik/lib/qwik/util-basic.rb +135 -0
  311. data/vendor/qwik/lib/qwik/util-charset.rb +331 -0
  312. data/vendor/qwik/lib/qwik/util-css.rb +56 -0
  313. data/vendor/qwik/lib/qwik/util-csv-tokenizer.rb +113 -0
  314. data/vendor/qwik/lib/qwik/util-filename.rb +112 -0
  315. data/vendor/qwik/lib/qwik/util-pathname.rb +202 -0
  316. data/vendor/qwik/lib/qwik/util-pid.rb +58 -0
  317. data/vendor/qwik/lib/qwik/util-safe.rb +67 -0
  318. data/vendor/qwik/lib/qwik/util-sendmail.rb +273 -0
  319. data/vendor/qwik/lib/qwik/util-string.rb +202 -0
  320. data/vendor/qwik/lib/qwik/util-time.rb +125 -0
  321. data/vendor/qwik/lib/qwik/util-webrick.rb +176 -0
  322. data/vendor/qwik/lib/qwik/version.rb +11 -0
  323. data/vendor/qwik/lib/qwik/wabisabi-basic.rb +163 -0
  324. data/vendor/qwik/lib/qwik/wabisabi-diff.rb +130 -0
  325. data/vendor/qwik/lib/qwik/wabisabi-format-xml.rb +310 -0
  326. data/vendor/qwik/lib/qwik/wabisabi-generator.rb +262 -0
  327. data/vendor/qwik/lib/qwik/wabisabi-index.rb +174 -0
  328. data/vendor/qwik/lib/qwik/wabisabi-table.rb +212 -0
  329. data/vendor/qwik/lib/qwik/wabisabi-template.rb +295 -0
  330. data/vendor/qwik/lib/qwik/wabisabi-to-htree.rb +111 -0
  331. data/vendor/qwik/lib/qwik/wabisabi-to-wiki.rb +690 -0
  332. data/vendor/qwik/lib/qwik/wabisabi-traverse.rb +207 -0
  333. data/vendor/qwik/lib/qwik/wabisabi-validator.rb +116 -0
  334. data/vendor/qwik/lib/qwik/wabisabi.rb +5 -0
  335. metadata +492 -0
@@ -0,0 +1,324 @@
1
+ # Copyright (C) 2003-2006 Kouichirou Eto, All rights reserved.
2
+ # This is free software with ABSOLUTELY NO WARRANTY.
3
+ # You can redistribute it and/or modify it under the terms of the GNU GPL 2.
4
+
5
+ $LOAD_PATH.unshift '..' unless $LOAD_PATH.include? '..'
6
+ require 'qwik/util-charset'
7
+
8
+ module Modulobe
9
+ module Sample
10
+ MODEL1 =
11
+ '<?xml version="1.0" encoding="utf-8"?>
12
+ <modulobe version="1.1" generator="Modulobe ver 0.2.1">
13
+ <world><speed>0</speed></world>
14
+
15
+ <model>
16
+ <info>
17
+ <name>test model</name>
18
+
19
+ <author>test author</author>
20
+
21
+ <comment>test comment.
22
+ </comment>
23
+ </info>
24
+
25
+ <core ref="m0"><angle><x>0</x><y>0</y><z>0</z></angle></core>
26
+
27
+ <body><module id="m0"><tie dir="0"><angle><x>0</x><y>0</y><z>180</z></angle></tie>
28
+ <tie ref="m1" dir="1"><angle><x>0</x><y>0</y><z>0</z></angle></tie>
29
+ <tie dir="2"><angle><x>0</x><y>0</y><z>-90</z></angle></tie>
30
+ <tie dir="3"><angle><x>0</x><y>0</y><z>90</z></angle></tie>
31
+ </module><module id="m1"><tie ref="m0" dir="0"><angle><x>0</x><y>0</y><z>180</z></angle></tie>
32
+ <tie ref="m2" dir="1"><angle><x>0</x><y>0</y><z>0</z></angle></tie>
33
+ <tie dir="2"><angle><x>0</x><y>0</y><z>-90</z></angle></tie>
34
+ <tie dir="3"><angle><x>0</x><y>0</y><z>90</z></angle></tie>
35
+ </module><module id="m2"><tie ref="m1" dir="0"><angle><x>0</x><y>0</y><z>180</z></angle></tie>
36
+ <tie ref="m3" dir="1"><angle><x>0</x><y>0</y><z>0</z></angle></tie>
37
+ <link type="8" cycle="1"><cycle angle="0" power="1"/>
38
+ <cycle angle="0" power="1"/>
39
+ <cycle angle="0" power="1"/>
40
+ <cycle angle="90" power="1"/>
41
+ <cycle angle="0" power="1"/>
42
+ <cycle angle="0" power="1"/>
43
+ <cycle angle="0" power="1"/>
44
+ <cycle angle="0" power="1"/>
45
+ <cycle angle="0" power="1"/>
46
+ <cycle angle="0" power="1"/>
47
+ <cycle angle="0" power="1"/>
48
+ <cycle angle="0" power="1"/>
49
+ </link>
50
+ </module><module id="m3"><tie ref="m2" dir="0"><angle><x>0</x><y>0</y><z>180</z></angle></tie>
51
+ <tie dir="1"><angle><x>0</x><y>0</y><z>0</z></angle></tie>
52
+ <tie dir="2"><angle><x>0</x><y>0</y><z>-90</z></angle></tie>
53
+ <tie dir="3"><angle><x>0</x><y>0</y><z>90</z></angle></tie>
54
+ </module></body>
55
+ </model>
56
+
57
+ <view>
58
+ <camera><angle><x>15</x><y>0</y><z>0</z></angle><distance>18.000000</distance></camera>
59
+
60
+ <focus ref="m2"/>
61
+ </view>
62
+ </modulobe>
63
+ '
64
+
65
+ MODULOBE_TEST_MODEL =
66
+ '<?xml version="1.0" encoding="utf-8"?>
67
+ <modulobe version="0">
68
+ <world><speed>0</speed></world>
69
+
70
+ <model>
71
+ <core ref="m0">
72
+ <angle><x>0</x><y>0</y><z>0</z></angle>
73
+ </core>
74
+
75
+ <body><module id="m0"><tie dir="0">
76
+ <angle><x>0</x><y>0</y><z>180</z></angle>
77
+ </tie>
78
+ <tie ref="m1" dir="1">
79
+ <angle><x>0</x><y>0</y><z>0</z></angle>
80
+ </tie>
81
+ <tie dir="2">
82
+ <angle><x>0</x><y>0</y><z>-90</z></angle>
83
+ </tie>
84
+ <tie dir="3">
85
+ <angle><x>0</x><y>0</y><z>90</z></angle>
86
+ </tie>
87
+ </module><module id="m1"><tie ref="m0" dir="0">
88
+ <angle><x>0</x><y>0</y><z>180</z></angle>
89
+ </tie>
90
+ <tie ref="m2" dir="1">
91
+ <angle><x>0</x><y>0</y><z>0</z></angle>
92
+ </tie>
93
+ <tie dir="2">
94
+ <angle><x>0</x><y>0</y><z>-90</z></angle>
95
+ </tie>
96
+ <tie dir="3">
97
+ <angle><x>0</x><y>0</y><z>90</z></angle>
98
+ </tie>
99
+ </module><module id="m2"><tie ref="m1" dir="0">
100
+ <angle><x>0</x><y>0</y><z>180</z></angle>
101
+ </tie>
102
+ <tie ref="m3" dir="1">
103
+ <angle><x>0</x><y>0</y><z>0</z></angle>
104
+ </tie>
105
+ <link type="8" cycle="1"><cycle angle="0" power="1"/>
106
+ <cycle angle="90" power="1"/>
107
+ <cycle angle="0" power="1"/>
108
+ <cycle angle="0" power="1"/>
109
+ <cycle angle="0" power="1"/>
110
+ <cycle angle="0" power="1"/>
111
+ <cycle angle="0" power="1"/>
112
+ <cycle angle="0" power="1"/>
113
+ <cycle angle="0" power="1"/>
114
+ <cycle angle="0" power="1"/>
115
+ <cycle angle="0" power="1"/>
116
+ <cycle angle="0" power="1"/>
117
+ </link>
118
+ </module><module id="m3"><tie ref="m2" dir="0">
119
+ <angle><x>0</x><y>0</y><z>180</z></angle>
120
+ </tie>
121
+ <tie dir="1">
122
+ <angle><x>0</x><y>0</y><z>0</z></angle>
123
+ </tie>
124
+ <tie dir="2">
125
+ <angle><x>0</x><y>0</y><z>-90</z></angle>
126
+ </tie>
127
+ <tie dir="3">
128
+ <angle><x>0</x><y>0</y><z>90</z></angle>
129
+ </tie>
130
+ </module></body>
131
+ </model>
132
+ </modulobe>'
133
+
134
+ MODULOBE_TEST_MODEL1 =
135
+ '<?xml version="1.0" encoding="utf-8"?>
136
+ <modulobe version="0">
137
+ <world><speed>0</speed></world>
138
+ <model>
139
+ <info>
140
+ <name>t1 model</name>
141
+ <author>Alice</author>
142
+ <comment>This is a comment.
143
+ </comment>
144
+ </info>
145
+ <core ref="m0"><angle><x>0</x><y>0</y><z>0</z></angle></core>
146
+ <body><module id="m0"><tie dir="0"><angle><x>0</x><y>0</y><z>180</z></angle></tie>
147
+ <tie dir="1"><angle><x>0</x><y>0</y><z>0</z></angle></tie>
148
+ <tie dir="2"><angle><x>0</x><y>0</y><z>-90</z></angle></tie>
149
+ <tie dir="3"><angle><x>0</x><y>0</y><z>90</z></angle></tie>
150
+ </module></body>
151
+ </model>
152
+ </modulobe>'
153
+
154
+ MODULOBE_TEST_MODEL2 =
155
+ '<?xml version="1.0" encoding="utf-8"?>
156
+ <modulobe version="0">
157
+ <world><speed>0</speed></world>
158
+ <model>
159
+ <info>
160
+ <name>t2 model</name>
161
+ <author>Bob</author>
162
+ <comment>This is a comment, too.
163
+ </comment>
164
+ </info>
165
+ <core ref="m0"><angle><x>0</x><y>0</y><z>0</z></angle></core>
166
+ <body><module id="m0"><tie dir="0"><angle><x>0</x><y>0</y><z>180</z></angle></tie>
167
+ <tie ref="m1" dir="1"><angle><x>0</x><y>0</y><z>0</z></angle></tie>
168
+ <tie dir="2"><angle><x>0</x><y>0</y><z>-90</z></angle></tie>
169
+ <tie dir="3"><angle><x>0</x><y>0</y><z>90</z></angle></tie>
170
+ </module><module id="m1"><tie ref="m0" dir="0"><angle><x>0</x><y>0</y><z>180</z></angle></tie>
171
+ <tie ref="m2" dir="1"><angle><x>0</x><y>0</y><z>0</z></angle></tie>
172
+ <link type="8" cycle="1"><cycle angle="0" power="1"/>
173
+ <cycle angle="0" power="1"/>
174
+ <cycle angle="90" power="1"/>
175
+ <cycle angle="0" power="1"/>
176
+ <cycle angle="0" power="1"/>
177
+ <cycle angle="0" power="1"/>
178
+ <cycle angle="0" power="1"/>
179
+ <cycle angle="0" power="1"/>
180
+ <cycle angle="0" power="1"/>
181
+ <cycle angle="0" power="1"/>
182
+ <cycle angle="0" power="1"/>
183
+ <cycle angle="0" power="1"/>
184
+ </link>
185
+ </module><module id="m2"><tie ref="m1" dir="0"><angle><x>0</x><y>0</y><z>180</z></angle></tie>
186
+ <tie dir="1"><angle><x>0</x><y>0</y><z>0</z></angle></tie>
187
+ <tie dir="2"><angle><x>0</x><y>0</y><z>-90</z></angle></tie>
188
+ <tie dir="3"><angle><x>0</x><y>0</y><z>90</z></angle></tie>
189
+ </module></body>
190
+ </model>
191
+ </modulobe>'
192
+
193
+ RSS_IN_UTF8 =
194
+ '<?xml version="1.0" encoding="utf-8"?>
195
+ <rss version="2.0" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule">
196
+ <channel>
197
+ <title>Modulobe Collection</title>
198
+ <link>http://www.modulobe.com/model.html</link>
199
+ <description>modulobe.comにアップロードされたmodelのリストです。</description>
200
+ <language>ja</language>
201
+ <managingEditor>modulobe@qwik.jp</managingEditor>
202
+ <webMaster>modulobe@qwik.jp</webMaster>
203
+ <lastBuildDate>*Sat, 9 Jul 2005 13:09:31 GMT*</lastBuildDate>
204
+ <ttl>60</ttl>
205
+ <item>
206
+ <title>蛇、長すぎる</title>
207
+ <link>http://www.modulobe.com/model.files/hebi-nagasugiru.mdlb</link>
208
+ <description>長すぎます。</description>
209
+ <author>Kouichirou Eto</author>
210
+ <pubDate>Sat, 9 Jul 2005 12:56:44 GMT</pubDate>
211
+ <enclosure url="http://www.modulobe.com/model.files/hebi-nagasugiru.mdlb" length="87928" type="application/xml"/>
212
+ <creativeCommons:license>http://creativecommons.org/licenses/by/2.1/jp/</creativeCommons:license>
213
+ </item>
214
+ <item>
215
+ <title>*name*</title>
216
+ <link>http://www.modulobe.com/model.files/*filename.mdlb*</link>
217
+ <description>*comment*</description>
218
+ <author>*author*</author>
219
+ <pubDate>*Sun, 3 Jul 2005 14:29:26 GMT*</pubDate>
220
+ <enclosure url="http://www.modulobe.com/model.files/*filename.mdlb*" length="*11922960*" type="application/xml"/>
221
+ <creativeCommons:license>http://creativecommons.org/licenses/by/2.1/jp/</creativeCommons:license>
222
+ </item>
223
+ </channel>
224
+ </rss>'.set_sourcecode_charset.to_xml_charset
225
+
226
+ # ============================== Simple models
227
+ MODEL_CORE =
228
+ '<?xml version="1.0" encoding="utf-8"?>
229
+ <modulobe version="1.1" generator="Modulobe ver 0.2.1">
230
+ <world><speed>0</speed></world>
231
+
232
+ <model>
233
+ <info>
234
+ <name></name>
235
+
236
+ <author></author>
237
+
238
+ <comment></comment>
239
+ </info>
240
+
241
+ <core ref="m0"><angle><x>0</x><y>0</y><z>0</z></angle></core>
242
+
243
+ <body><module id="m0"><tie dir="0"><angle><x>0</x><y>0</y><z>180</z></angle></tie>
244
+ <tie dir="1"><angle><x>0</x><y>0</y><z>0</z></angle></tie>
245
+ <tie dir="2"><angle><x>0</x><y>0</y><z>-90</z></angle></tie>
246
+ <tie dir="3"><angle><x>0</x><y>0</y><z>90</z></angle></tie>
247
+ </module></body>
248
+ </model>
249
+
250
+ <view>
251
+ <camera><angle><x>15</x><y>0</y><z>0</z></angle><distance>18.000000</distance></camera>
252
+
253
+ <focus ref="m0"/>
254
+ </view>
255
+ </modulobe>
256
+ '
257
+
258
+ MODEL_WITH_NAME =
259
+ '<?xml version="1.0" encoding="utf-8"?>
260
+ <modulobe version="1.1" generator="Modulobe ver 0.2.1">
261
+ <world><speed>0</speed></world>
262
+
263
+ <model>
264
+ <info>
265
+ <name>n</name>
266
+
267
+ <author>a</author>
268
+
269
+ <comment>c
270
+ </comment>
271
+ </info>
272
+
273
+ <core ref="m0"><angle><x>0</x><y>0</y><z>0</z></angle></core>
274
+
275
+ <body><module id="m0"><tie dir="0"><angle><x>0</x><y>0</y><z>180</z></angle></tie>
276
+ <tie dir="1"><angle><x>0</x><y>0</y><z>0</z></angle></tie>
277
+ <tie dir="2"><angle><x>0</x><y>0</y><z>-90</z></angle></tie>
278
+ <tie dir="3"><angle><x>0</x><y>0</y><z>90</z></angle></tie>
279
+ </module></body>
280
+ </model>
281
+
282
+ <view>
283
+ <camera><angle><x>15</x><y>0</y><z>0</z></angle><distance>18.000000</distance></camera>
284
+
285
+ <focus ref="m0"/>
286
+ </view>
287
+ </modulobe>
288
+ '
289
+
290
+ MODEL_WITH_JNAME =
291
+ '<?xml version="1.0" encoding="utf-8"?>
292
+ <modulobe version="1.1" generator="Modulobe ver 0.2.1">
293
+ <world><speed>0</speed></world>
294
+
295
+ <model>
296
+ <info>
297
+ <name>あ </name>
298
+
299
+ <author>い </author>
300
+
301
+ <comment>う
302
+ </comment>
303
+ </info>
304
+
305
+ <core ref="m0"><angle><x>0</x><y>0</y><z>0</z></angle></core>
306
+
307
+ <body><module id="m0"><tie dir="0"><angle><x>0</x><y>0</y><z>180</z></angle></tie>
308
+ <tie dir="1"><angle><x>0</x><y>0</y><z>0</z></angle></tie>
309
+ <tie dir="2"><angle><x>0</x><y>0</y><z>-90</z></angle></tie>
310
+ <tie dir="3"><angle><x>0</x><y>0</y><z>90</z></angle></tie>
311
+ </module></body>
312
+ </model>
313
+
314
+ <view>
315
+ <camera><angle><x>15</x><y>0</y><z>0</z></angle><distance>18.000000</distance></camera>
316
+
317
+ <focus ref="m0"/>
318
+ </view>
319
+ </modulobe>
320
+ '.set_sourcecode_charset.to_xml_charset
321
+
322
+
323
+ end
324
+ end
@@ -0,0 +1,27 @@
1
+ # Copyright (C) 2003-2006 Kouichirou Eto, All rights reserved.
2
+ # This is free software with ABSOLUTELY NO WARRANTY.
3
+ # You can redistribute it and/or modify it under the terms of the GNU GPL 2.
4
+
5
+ $LOAD_PATH.unshift '..' unless $LOAD_PATH.include? '..'
6
+ require 'qwik/catalog-factory'
7
+
8
+ module QuickML
9
+ class CatalogFactory < Qwik::CatalogFactory
10
+ end
11
+ end
12
+
13
+ if $0 == __FILE__
14
+ require 'test/unit'
15
+ $test = true
16
+ end
17
+
18
+ if defined?($test) && $test
19
+ class TestMLCatalogFactory < Test::Unit::TestCase
20
+ def test_all
21
+ cf = QuickML::CatalogFactory.new
22
+ cf.load_all_here('catalog-ml-??.rb')
23
+ catalog_ja = cf.get_catalog('ja')
24
+ assert_equal true, catalog_ja != nil
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,15 @@
1
+ #
2
+ # Copyright (C) 2002-2004 Satoru Takabayashi <satoru@namazu.org>
3
+ # Copyright (C) 2003-2006 Kouichirou Eto
4
+ # All rights reserved.
5
+ # This is free software with ABSOLUTELY NO WARRANTY.
6
+ #
7
+ # You can redistribute it and/or modify it under the terms of
8
+ # the GNU General Public License version 2.
9
+ #
10
+
11
+ module QuickML
12
+ class QuickMLException < StandardError; end
13
+ class TooManyMembers < QuickMLException; end
14
+ class InvalidMLName < QuickMLException; end
15
+ end
@@ -0,0 +1,28 @@
1
+ #
2
+ # Copyright (C) 2002-2004 Satoru Takabayashi <satoru@namazu.org>
3
+ # Copyright (C) 2003-2006 Kouichirou Eto
4
+ # All rights reserved.
5
+ # This is free software with ABSOLUTELY NO WARRANTY.
6
+ #
7
+ # You can redistribute it and/or modify it under the terms of
8
+ # the GNU General Public License version 2.
9
+ #
10
+
11
+ $LOAD_PATH.unshift '..' unless $LOAD_PATH.include? '..'
12
+
13
+ module QuickML
14
+ class Generator
15
+ end
16
+ end
17
+
18
+ if $0 == __FILE__
19
+ require 'qwik/mail'
20
+ $test = true
21
+ end
22
+
23
+ if defined?($test) && $test
24
+ class TestMLGenerator < Test::Unit::TestCase
25
+ def test_all
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,137 @@
1
+ #
2
+ # Copyright (C) 2002-2004 Satoru Takabayashi <satoru@namazu.org>
3
+ # Copyright (C) 2003-2006 Kouichirou Eto
4
+ # All rights reserved.
5
+ # This is free software with ABSOLUTELY NO WARRANTY.
6
+ #
7
+ # You can redistribute it and/or modify it under the terms of
8
+ # the GNU General Public License version 2.
9
+ #
10
+
11
+ $LOAD_PATH.unshift '..' unless $LOAD_PATH.include? '..'
12
+
13
+ module QuickML
14
+ module GetText
15
+ def set_catalog (catalog)
16
+ @catalog = nil
17
+ @gettext_catalog = catalog
18
+ end
19
+
20
+ def set_charset(charset)
21
+ @message_charset = nil
22
+ @gettext_charset = charset
23
+ end
24
+
25
+ # Used in group-sendmail.rb, ml-processor.rb, ml-session.rb
26
+ def codeconv (text)
27
+ return text if @gettext_catalog.nil?
28
+ method = @gettext_catalog[:codeconv_method]
29
+ return text if method.nil?
30
+ return text.send(method)
31
+ end
32
+
33
+ def gettext (text, *args)
34
+ @gettext_catalog = nil if ! defined?(@gettext_catalog)
35
+ @catalog = nil if ! defined?(@catalog)
36
+ @message_charset = nil if ! defined?(@message_charset)
37
+ @gettext_charset = nil if ! defined?(@gettext_charset)
38
+ @gettext_catalog = @catalog if @catalog && @gettext_catalog.nil?
39
+ if @message_charset && @gettext_charset.nil?
40
+ @gettext_charset = @message_charset
41
+ end
42
+ unless @gettext_catalog && @gettext_catalog[:charset] == @gettext_charset
43
+ return sprintf(text, *args)
44
+ end
45
+ translated_message = @gettext_catalog[text]
46
+ if translated_message
47
+ text = sprintf(translated_message, *args)
48
+ method = @gettext_catalog[:codeconv_method]
49
+ return text.send(method) if method
50
+ return text
51
+ end
52
+ return sprintf(text, *args)
53
+ end
54
+ alias :_ :gettext
55
+
56
+ def gettext2 (text)
57
+ @gettext_catalog = nil if ! defined?(@gettext_catalog)
58
+ @catalog = nil if ! defined?(@catalog)
59
+ @message_charset = nil if ! defined?(@message_charset)
60
+ @gettext_charset = nil if ! defined?(@gettext_charset)
61
+ @gettext_catalog = @catalog if @catalog && @gettext_catalog.nil?
62
+ if @message_charset && @gettext_charset.nil?
63
+ @gettext_charset = @message_charset
64
+ end
65
+ unless @gettext_catalog && @gettext_catalog[:charset] == @gettext_charset
66
+ return text
67
+ end
68
+ translated_message = @gettext_catalog[text]
69
+ if translated_message
70
+ text = translated_message
71
+ method = @gettext_catalog[:codeconv_method]
72
+ return text.send(method) if method
73
+ return text
74
+ end
75
+ return text
76
+ end
77
+ alias :__ :gettext2
78
+ end
79
+ end
80
+
81
+ if $0 == __FILE__
82
+ require 'qwik/testunit'
83
+ require 'qwik/ml-catalog-factory'
84
+ require 'qwik/util-charset'
85
+ $test = true
86
+ end
87
+
88
+ if defined?($test) && $test
89
+ class MockMLGetText
90
+ include QuickML::GetText
91
+
92
+ def test_all(t)
93
+ # $KCODE = 's'
94
+
95
+ # test_set_catalog
96
+ cf = QuickML::CatalogFactory.new
97
+ cf.load_all_here('catalog-ml-??.rb')
98
+ catalog_ja = cf.get_catalog('ja')
99
+ set_catalog(catalog_ja)
100
+
101
+ # test before set catalog
102
+ @catalog = nil
103
+ @message_charset = nil
104
+ set_catalog(nil)
105
+ set_charset(nil)
106
+ t.is 'hello', gettext('hello')
107
+ t.is "Info: a\n", gettext("Info: %s\n", 'a')
108
+ t.is "If you agree, then,\n", gettext("If you agree, then,\n")
109
+
110
+ # test_codeconv
111
+ t.is 'あ', codeconv('あ')
112
+
113
+ # test after set catalog
114
+ @catalog = catalog_ja
115
+ @message_charset = 'iso-2022-jp'
116
+ set_catalog(catalog_ja)
117
+ set_charset('iso-2022-jp')
118
+ t.is 'こんにちは'.set_sourcecode_charset.to_mail_charset, gettext('hello')
119
+ t.is 'こんにちは'.set_sourcecode_charset.to_mail_charset, _('hello')
120
+ t.is 'こんにちは'.set_sourcecode_charset.to_mail_charset, gettext2('hello')
121
+ t.is 'こんにちは'.set_sourcecode_charset.to_mail_charset, gettext('hello')
122
+ t.is "使い方: a\n".set_sourcecode_charset.to_mail_charset, gettext("Info: %s\n", 'a')
123
+ t.is "もし承認する場合、\n".set_sourcecode_charset.to_mail_charset,
124
+ gettext("If you agree, then,\n")
125
+
126
+ # test_codeconv_ja
127
+ t.is "\e$B$\"\e(B", codeconv('あ')
128
+ end
129
+ end
130
+
131
+ class TestMockMLGetText < Test::Unit::TestCase
132
+ def test_all
133
+ mock = MockMLGetText.new
134
+ mock.test_all(self)
135
+ end
136
+ end
137
+ end
@@ -0,0 +1,82 @@
1
+ #
2
+ # Copyright (C) 2002-2004 Satoru Takabayashi <satoru@namazu.org>
3
+ # Copyright (C) 2003-2006 Kouichirou Eto
4
+ # All rights reserved.
5
+ # This is free software with ABSOLUTELY NO WARRANTY.
6
+ #
7
+ # You can redistribute it and/or modify it under the terms of
8
+ # the GNU General Public License version 2.
9
+ #
10
+
11
+ require 'thread'
12
+
13
+ $LOAD_PATH.unshift '..' unless $LOAD_PATH.include? '..'
14
+ require 'qwik/util-safe'
15
+ require 'qwik/util-pathname'
16
+
17
+ module QuickML
18
+ class Logger
19
+ ML_LOG_FILE = 'quickml.log'
20
+
21
+ def initialize (log_filename, verbose_mode = nil)
22
+ @mutex = Mutex.new
23
+ log_path = log_filename.path
24
+ log_path.parent.check_directory
25
+ @log_file = log_path.open('a')
26
+ @log_file.sync = true
27
+ @verbose_mode = verbose_mode
28
+ end
29
+
30
+ def log (msg)
31
+ puts_log(msg)
32
+ end
33
+
34
+ def vlog (msg)
35
+ puts_log(msg) if @verbose_mode
36
+ end
37
+
38
+ def reopen
39
+ @mutex.synchronize {
40
+ log_filename = @log_file.path
41
+ @log_file.close
42
+ @log_file = File.open(log_filename, 'a')
43
+ }
44
+ end
45
+
46
+ private
47
+
48
+ def puts_log (msg)
49
+ @mutex.synchronize {
50
+ time = Time.now.strftime('%Y-%m-%dT%H:%M:%S')
51
+ str = "#{time}: #{msg}"
52
+ @log_file.puts str
53
+ $stdout.puts str if $ml_debug
54
+ }
55
+ end
56
+ end
57
+ end
58
+
59
+ if $0 == __FILE__
60
+ require 'qwik/testunit'
61
+ $test = true
62
+ end
63
+
64
+ if defined?($test) && $test
65
+ class TestMLLogger < Test::Unit::TestCase
66
+ def test_all
67
+ file = '.test/testlog.txt'
68
+ logger = QuickML::Logger.new(file)
69
+
70
+ # test_log
71
+ logger.log('t')
72
+ str = open(file) {|f| f.read }
73
+ assert_match(/: t\n/, str)
74
+ file.path.unlink
75
+
76
+ # TODO
77
+ # test_vlog
78
+ # test_reopen
79
+ # test_puts_log
80
+ end
81
+ end
82
+ end
@@ -0,0 +1,65 @@
1
+ # Copyright (C) 2003-2006 Kouichirou Eto, All rights reserved.
2
+ # This is free software with ABSOLUTELY NO WARRANTY.
3
+ # You can redistribute it and/or modify it under the terms of the GNU GPL 2.
4
+
5
+ $LOAD_PATH.unshift '..' unless $LOAD_PATH.include? '..'
6
+ require 'qwik/config'
7
+ require 'qwik/ml-logger'
8
+ require 'qwik/ml-catalog-factory'
9
+ require 'qwik/util-safe'
10
+
11
+ module QuickML
12
+ class ServerMemory
13
+ def self.init_logger(memory, config)
14
+ ml_log_file = (config[:log_dir].path + Logger::ML_LOG_FILE).to_s
15
+ memory[:logger] = Logger.new(ml_log_file, config[:verbose_mode])
16
+ end
17
+
18
+ def self.init_mutex(memory)
19
+ memory[:ml_mutexes] = Hash.new
20
+ end
21
+
22
+ def self.ml_mutex(memory, address)
23
+ hash = memory[:ml_mutexes]
24
+ return hash.fetch(address) {|x| hash[x] = Mutex.new }
25
+ end
26
+
27
+ def self.init_catalog(memory)
28
+ memory[:catalog] = nil
29
+ if memory[:message_catalog]
30
+ cf = CatalogFactory.new
31
+ cf.load_all_here('catalog-ml-??.rb')
32
+ memory[:catalog] = cf.get_catalog('ja')
33
+ end
34
+ end
35
+ end
36
+ end
37
+
38
+ if $0 == __FILE__
39
+ require 'qwik/testunit'
40
+ $test = true
41
+ end
42
+
43
+ if defined?($test) && $test
44
+ class TestMLMemory < Test::Unit::TestCase
45
+ def test_all
46
+ c = QuickML::ServerMemory
47
+
48
+ # test_init_logger
49
+ memory = {}
50
+ config = {:log_dir=>'.'}
51
+ c.init_logger(memory, config)
52
+ assert_instance_of(QuickML::Logger, memory[:logger])
53
+
54
+ # test_init_mutex
55
+ memory = {}
56
+ c.init_mutex(memory)
57
+ eq({:ml_mutexes=>{}}, memory)
58
+
59
+ # test_init_catalog
60
+ memory = {:message_catalog=>'something'}
61
+ c.init_catalog(memory)
62
+ assert_instance_of(Hash, memory[:catalog])
63
+ end
64
+ end
65
+ end