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,304 @@
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
+
7
+ module Qwik
8
+ class UnknownPathException < Exception; end
9
+
10
+ class Request
11
+ attr_reader :sitename
12
+ attr_accessor :base
13
+ attr_reader :ext
14
+ attr_accessor :plugin
15
+ attr_reader :ext_args
16
+ attr_accessor :path_args
17
+ attr_reader :path_query
18
+ attr_reader :unparsed_uri
19
+
20
+ def parse_path(path)
21
+ if @unparsed_uri.nil?
22
+ @unparsed_uri = path # for test
23
+ end
24
+
25
+ @sitename, @base, @ext, @plugin, @path_args, @path_query, @ext_args =
26
+ Request.parse_path(path, @config.default_sitename)
27
+
28
+ return [@sitename, @base, @ext] # only for test
29
+ end
30
+
31
+ def self.parse_path(path, default_sitename)
32
+ raise "first character must be '/'" unless path[0] == ?/
33
+
34
+ path = remove_quote(path)
35
+
36
+ path = normalize_path(path) # for security
37
+
38
+ # OBSOLETE: Patch for redirect plugin (old format).
39
+ if /\A\/((?:http|https|ftp|file):\/.+)\z/ =~ path
40
+ return [default_sitename, '', '', 'redirect', [$1], {}, []]
41
+ end
42
+
43
+ pas = path.split('/')
44
+ pas.shift # Drop the first null element.
45
+
46
+ # Ad hoc: Error handling.
47
+ if pas.length == 1
48
+ if ! pas.first.include?('.') && /\/\z/ !~ path
49
+ return [default_sitename, pas.first, '', nil, [], {}, []]
50
+ end
51
+ end
52
+
53
+ sitename = base = ext = plugin = nil
54
+ path_args = []
55
+ path_query = {}
56
+ ext_args = []
57
+
58
+ pas.each_with_index {|pa, i|
59
+ if plugin || ext
60
+ # path_args is catch all.
61
+ path_args << pa
62
+ next
63
+ end
64
+
65
+ # Maybe sitename.
66
+ if i == 0
67
+ if Request.sitename?(pa)
68
+ sitename = pa
69
+ end
70
+ next if sitename # Skip.
71
+ end
72
+
73
+ ff = pa.split('.')
74
+
75
+ # No end with dot.
76
+ if ff[1].nil? || ff[1].empty?
77
+ if ff[0] == 'theme' || ff[0] == 'attach'
78
+ ff = ['', ff[0]]
79
+ else
80
+ base = ''
81
+ ext = ''
82
+ return [sitename, base, ext, plugin, path_args, path_query, ext_args]
83
+ end
84
+ end
85
+
86
+ # Start with dot -> Action plugin.
87
+ if ff[0].empty?
88
+ raise 'no two action' unless plugin.nil? # No two plugins.
89
+ plugin = ff[1]
90
+ next
91
+ end
92
+
93
+ # Accept only two.
94
+ if 2 < ff.length
95
+ base = ff.shift
96
+ ext = ff.pop
97
+ ext_args = ff
98
+ next
99
+ end
100
+
101
+ raise 'base should be one.' if base # base should be one.
102
+ base = ff[0]
103
+ ext = ff[1]
104
+ }
105
+
106
+ # sitename is not specified.
107
+ sitename = default_sitename if sitename.nil?
108
+
109
+ if base.nil?
110
+ base, ext = ['FrontPage', 'html']
111
+ end
112
+
113
+ path_args.each {|pa|
114
+ ff = pa.split('=')
115
+ if ff.length == 2
116
+ path_query[ff.first] = ff.last
117
+ end
118
+ }
119
+
120
+ base.set_url_charset
121
+
122
+ return [sitename, base, ext, plugin, path_args, path_query, ext_args]
123
+ end
124
+
125
+ private
126
+
127
+ def init_path
128
+ @sitename = nil
129
+ @base = nil
130
+ @ext = nil
131
+ @plugin = nil
132
+ @ext_args = []
133
+ @path_args = []
134
+ @path_query = {}
135
+ @unparsed_uri = nil
136
+ end
137
+
138
+ # For Excite Translate Bug.
139
+ def self.remove_quote(path)
140
+ if /\A(.+)\"(.+)\"\z/ =~ path
141
+ return $1+$2
142
+ end
143
+ return path
144
+ end
145
+
146
+ # copied from webrick/httputils.rb
147
+ def self.normalize_path(path)
148
+ raise "abnormal path `#{path}'" if path[0] != ?/
149
+ ret = path.dup
150
+
151
+ ret.gsub!(%r{/+}o, '/') # // => /
152
+ while ret.sub!(%r:/\.(/|\z):o, '/'); end # /. => /
153
+ begin # /foo/.. => /foo
154
+ match = ret.sub!(%r{/([^/]+)/\.\.(/|\z)}o){
155
+ if $1 == '..'
156
+ raise "abnormal path `#{path}'"
157
+ else
158
+ '/'
159
+ end
160
+ }
161
+ end while match
162
+
163
+ raise "abnormal path `#{path}'" if %r{/\.\.(/|\z)} =~ ret
164
+ return ret
165
+ end
166
+
167
+ def self.sitename?(pa)
168
+ ff = pa.split('.')
169
+ return false if ff.first.empty? # action
170
+ len = ff.length
171
+ return true if len == 1
172
+ # contain dot, and last is com or jp is external site
173
+ return true if 1 < len && %w(com jp).include?(ff.last)
174
+ return false
175
+ end
176
+ end
177
+ end
178
+
179
+ if $0 == __FILE__
180
+ require 'qwik/testunit'
181
+ require 'qwik/config'
182
+ require 'qwik/request'
183
+ $test = true
184
+ end
185
+
186
+ if defined?($test) && $test
187
+ require 'qwik/test-module-public'
188
+
189
+ class TestRequestPath < Test::Unit::TestCase
190
+ include TestModulePublic
191
+
192
+ def test_class_method
193
+ c = Qwik::Request
194
+ ok_eq('a', c.remove_quote('a'))
195
+ ok_eq("\"a\"", c.remove_quote("\"a\""))
196
+ ok_eq('ab', c.remove_quote("a\"b\""))
197
+ ok_eq("'a'", c.remove_quote("'a'"))
198
+ end
199
+
200
+ def test_all
201
+ config = Qwik::Config.new
202
+ req = Qwik::Request.new(config)
203
+
204
+ # test_parse_path
205
+ # t_make_public(Qwik::Request, :parse_path)
206
+ ok_eq(['www', 'FrontPage', 'html'], req.parse_path('/'))
207
+ ok_eq(['www', 'FrontPage', 'html'],
208
+ req.parse_path('/FrontPage.html'))
209
+ ok_eq(['test', 't', 'html'], req.parse_path('/test/t.html'))
210
+ ok_eq(['test', 'FrontPage', 'html'], req.parse_path('/test/'))
211
+ ok_eq(['www', 'test', ''], req.parse_path('/test'))
212
+ ok_eq(['test', 'FrontPage', 'html'],
213
+ req.parse_path('/test/FrontPage.html'))
214
+ ok_eq(['example.com', 'FrontPage', 'html'],
215
+ req.parse_path('/example.com/'))
216
+ ok_eq(['www.example.com', 'FrontPage', 'html'],
217
+ req.parse_path('/www.example.com/'))
218
+
219
+ # test_theme_plugin
220
+ req.parse_path('/.theme/all.css')
221
+ ok_eq(['theme', ['all.css']], [req.plugin, req.path_args])
222
+ ok_eq(['www', 'FrontPage', 'html'],
223
+ req.parse_path('/.theme/all.css'))
224
+
225
+ req.parse_path('/.theme/qwikgreen/qwikgreen.css')
226
+ ok_eq(['theme', ['qwikgreen', 'qwikgreen.css']],
227
+ [req.plugin, req.path_args])
228
+
229
+ req.parse_path('/.login')
230
+ ok_eq(['login', []], [req.plugin, req.path_args])
231
+
232
+ req.parse_path('/.login/user@e.com/44484125/')
233
+ ok_eq(['login', ['user@e.com', '44484125']],
234
+ [req.plugin, req.path_args])
235
+
236
+ ok_eq(['www', 'FrontPage', 'html'],
237
+ req.parse_path('/FrontPage.html/sid=000/'))
238
+ ok_eq(['sid=000'], req.path_args)
239
+ ok_eq({'sid'=>'000'}, req.path_query)
240
+
241
+ # test_parse_plugin
242
+ assert_raise(RuntimeError){ req.parse_path('test/') }
243
+ ok_eq(['test', 'FrontPage', 'html'],
244
+ req.parse_path('/test/.attach/t.txt'))
245
+ ok_eq(['attach', ['t.txt']], [req.plugin, req.path_args])
246
+ ok_eq(['www', 'FrontPage', 'html'],
247
+ req.parse_path('/.attach/s.jpg'))
248
+ ok_eq(['attach', ['s.jpg']], [req.plugin, req.path_args])
249
+
250
+ ok_eq(['www', 'FrontPage', 'html'], req.parse_path('/.new'))
251
+ ok_eq(['new', []], [req.plugin, req.path_args])
252
+
253
+ ok_eq(['test', 'test', 'zip'], req.parse_path('/test/test.zip'))
254
+ ok_eq('zip', req.ext)
255
+
256
+ ok_eq(['www', 'test', 'zip'], req.parse_path('/test.zip'))
257
+ ok_eq('zip', req.ext)
258
+
259
+ ok_eq(['e.com', 'FrontPage', 'html'],
260
+ req.parse_path('/e.com/.attach/t.png'))
261
+ ok_eq(['attach', ['t.png']],
262
+ [req.plugin, req.path_args])
263
+
264
+ ok_eq(['www', 'www', 'zip'], req.parse_path('/www.zip'))
265
+ ok_eq(['www', 'www', 'rss'], req.parse_path('/www.rss'))
266
+
267
+ ok_eq(['www', 'favicon', 'ico'], req.parse_path('/favicon.ico'))
268
+
269
+ # test_attach
270
+ ok_eq(['www', 'FrontPage', 'html'],
271
+ req.parse_path('/.attach/s.jpg'))
272
+ ok_eq(['attach', ['s.jpg']], [req.plugin, req.path_args])
273
+
274
+ ok_eq(['www', 'FrontPage', 'html'],
275
+ req.parse_path('/.attach/thumb/s.jpg'))
276
+ ok_eq(['attach', ['thumb', 's.jpg']],
277
+ [req.plugin, req.path_args])
278
+
279
+ # test_parse_sitename
280
+ c = Qwik::Request
281
+ ok_eq(true, c.sitename?('test'))
282
+ ok_eq(true, c.sitename?('e.com'))
283
+ ok_eq(true, c.sitename?('www.e.com'))
284
+ ok_eq(false, c.sitename?('www.new'))
285
+ ok_eq(false, c.sitename?('www.zip'))
286
+ ok_eq(false, c.sitename?('www.rss'))
287
+ ok_eq(false, c.sitename?('hoge.1.backup'))
288
+
289
+ # test_ext_args
290
+ ok_eq(['www', 'hoge', 'backup'],
291
+ req.parse_path('/hoge.backup'))
292
+ ok_eq([], req.ext_args)
293
+
294
+ ok_eq(['www', 'hoge', 'backup'],
295
+ req.parse_path('/hoge.1.backup'))
296
+ ok_eq(['1'], req.ext_args)
297
+
298
+ ok_eq(['test', 'hoge', 'backup'],
299
+ req.parse_path('/test/hoge.1.backup'))
300
+ ok_eq(['1'], req.ext_args)
301
+
302
+ end
303
+ end
304
+ end
@@ -0,0 +1,76 @@
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
+
7
+ module Qwik
8
+ class UserAgent
9
+ def initialize(req)
10
+ @req = req
11
+ @mobile = @serial = nil
12
+ parse(@req)
13
+ end
14
+ attr_reader :mobile, :serial
15
+
16
+ def parse(req)
17
+ @mobile, @serial = UserAgent.parse(req)
18
+ end
19
+
20
+ def self.parse(req)
21
+ ua = req['user-agent']
22
+ mobile = serial = nil
23
+ case ua
24
+ when /\ADoCoMo/ # docomo
25
+ mobile = 'docomo'
26
+ serial = $1 if /\/ser(...........)/ =~ ua
27
+ when /\AKDDI\-/, /\AUP\.Browser/ # ezweb
28
+ mobile = 'ezweb'
29
+ serial = req['x-up-subno']
30
+ end
31
+ return mobile, serial
32
+ end
33
+ end
34
+ end
35
+
36
+ if $0 == __FILE__
37
+ require 'qwik/testunit'
38
+ require 'qwik/config'
39
+ require 'qwik/request'
40
+ $test = true
41
+ end
42
+
43
+ if defined?($test) && $test
44
+ class TestRequestUserAgent < Test::Unit::TestCase
45
+ def test_class_method
46
+ c = Qwik::UserAgent
47
+ ok_eq(['docomo', nil],
48
+ c.parse({'user-agent'=>'DoCoMo/1.0/N504i/c10/TB'}))
49
+ ok_eq(['docomo', 'NMAIA000001'],
50
+ c.parse({'user-agent'=>'DoCoMo/1.0/N504i/c10/TB/serNMAIA000001'}))
51
+ ok_eq(['ezweb', nil],
52
+ c.parse({'user-agent'=>"KDDI-TS23 UP.Browser/6.0.7.2 (GUI) MMP/1.1"}))
53
+ ok_eq(['ezweb', 'XXXXXXXXXXXXXXXXX.ezweb.ne.jp'],
54
+ c.parse({'user-agent'=>"KDDI-TS23 UP.Browser/6.0.7.2 (GUI) MMP/1.1",
55
+ 'x-up-subno'=>'XXXXXXXXXXXXXXXXX.ezweb.ne.jp'}))
56
+ end
57
+
58
+ def test_user_agent
59
+ config = Qwik::Config.new
60
+ req = Qwik::Request.new(config)
61
+
62
+ req.instance_eval {
63
+ @header['user-agent'] = ['DoCoMo/1.0/N504i/c10/TB']
64
+ }
65
+ ua = Qwik::UserAgent.new(req)
66
+ ok_eq('docomo', ua.mobile)
67
+ ok_eq(nil, ua.serial)
68
+ req.instance_eval {
69
+ @header['user-agent'] = ['DoCoMo/1.0/N504i/c10/TB/serNMAIA000001']
70
+ }
71
+ ua = Qwik::UserAgent.new(req)
72
+ ok_eq('docomo', ua.mobile)
73
+ ok_eq('NMAIA000001', ua.serial)
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,81 @@
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/request'
7
+ require 'qwik/util-charset'
8
+
9
+ module Qwik
10
+ class Request
11
+ # request is a WEBrick::HTTPRequest
12
+ def parse_webrick(request)
13
+ host = ''
14
+ host = request.request_uri.host if request.request_uri
15
+
16
+ @unparsed_uri = request.unparsed_uri
17
+
18
+ begin
19
+ parse_path(request.path)
20
+ rescue
21
+ end
22
+
23
+ @header = request.header.dup if request.header
24
+
25
+ @useragent = UserAgent.new(self)
26
+
27
+ if request.accept_language && ! request.accept_language.empty?
28
+ @accept_language = request.accept_language
29
+ elsif @useragent.mobile
30
+ @accept_language = ['ja']
31
+ end
32
+
33
+ @request_method = request.request_method
34
+ request.cookies.each {|c| @cookies[c.name] = c.value }
35
+ @query = request.query.dup
36
+ @query.each {|k, v|
37
+ v.set_url_charset
38
+ }
39
+
40
+ @user = @pass = nil
41
+
42
+ @fromhost = Request.get_fromhost(request, self['x-forwarded-for'])
43
+ @request_line = Request.get_request_line(request)
44
+ end
45
+
46
+ def self.get_fromhost(request, forwarded_from)
47
+ if forwarded_from
48
+ forwarded_from.gsub!(/, /, ',')
49
+ return forwarded_from
50
+ end
51
+ peer = request.peeraddr
52
+ return peer[2] if peer
53
+ return '127.0.0.1'
54
+ end
55
+
56
+ def self.get_request_line(request)
57
+ return '' if request.request_line.nil?
58
+ request_line = request.request_line.sub(/\x0d?\x0a\z/o, '')
59
+ request_line = request_line.sub(/ HTTP\/1\..\z/o, '')
60
+ return request_line
61
+ end
62
+ end
63
+ end
64
+
65
+ if $0 == __FILE__
66
+ require 'qwik/testunit'
67
+ $test = true
68
+ end
69
+
70
+ if defined?($test) && $test
71
+ class TestRequestWEBrick < Test::Unit::TestCase
72
+ def test_all
73
+ config = Qwik::Config.new
74
+ req = Qwik::Request.new(config)
75
+
76
+ c = Qwik::Request
77
+
78
+ # not yet
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,91 @@
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/request-path'
8
+ require 'qwik/request-ua'
9
+ require 'qwik/request-webrick'
10
+
11
+ module Qwik
12
+ class Request
13
+ DEFAULT_ACCEPT_LANGUAGE = ['en']
14
+
15
+ def initialize(config)
16
+ @config = config
17
+
18
+ @start_time = Time.now
19
+ @start_time = Time.at(0) if defined?($test) && $test
20
+
21
+ init_path
22
+
23
+ # init_host
24
+ @fromhost = nil
25
+
26
+ @request_method = nil
27
+ @cookies = {}
28
+ @header = {}
29
+ @query = {}
30
+ @user = @pass = nil
31
+ @auth = nil
32
+ @useragent = UserAgent.new(self)
33
+ @sessionid = nil
34
+ @accept_language = DEFAULT_ACCEPT_LANGUAGE
35
+ @request_line = nil
36
+ end
37
+
38
+ attr_accessor :start_time # For test.
39
+ attr_reader :request_method
40
+ attr_reader :cookies
41
+ attr_reader :header # For test.
42
+ attr_reader :query
43
+ attr_accessor :user
44
+ attr_reader :pass
45
+ attr_accessor :auth
46
+ attr_reader :useragent
47
+ attr_accessor :sessionid
48
+ attr_accessor :accept_language
49
+ attr_reader :request_line
50
+ attr_reader :fromhost
51
+
52
+ def is_post?
53
+ return @request_method == 'POST'
54
+ end
55
+
56
+ def [](key)
57
+ return nil if @header.nil?
58
+ value = @header[key.downcase]
59
+ return nil if value.nil? || value.empty?
60
+ return value.join(', ')
61
+ end
62
+ end
63
+ end
64
+
65
+ if $0 == __FILE__
66
+ require 'qwik/testunit'
67
+ $test = true
68
+ end
69
+
70
+ if defined?($test) && $test
71
+ class TestRequest < Test::Unit::TestCase
72
+ def test_all
73
+ config = Qwik::Config.new
74
+ req = Qwik::Request.new(config)
75
+
76
+ # test_start_time
77
+ ok_eq(0, req.start_time.to_i)
78
+
79
+ # test_[]
80
+ req.instance_eval {
81
+ @header['k'] = ['v']
82
+ }
83
+ eq('v', req['k'])
84
+
85
+ req.instance_eval {
86
+ @header['k'] = ['v1', 'v2']
87
+ }
88
+ eq('v1, v2', req['k'])
89
+ end
90
+ end
91
+ end