qwikdoc 0.0.1

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. data/.gitignore +5 -0
  2. data/.rspec +2 -0
  3. data/CHANGES +3 -0
  4. data/COPYING +340 -0
  5. data/Gemfile +3 -0
  6. data/README.md +10 -0
  7. data/Rakefile +10 -0
  8. data/TextFormattingRules +137 -0
  9. data/TextFormattingRules.ja +143 -0
  10. data/bin/qwikdoc +34 -0
  11. data/lib/qwik_doc.rb +15 -0
  12. data/lib/qwik_doc/hack.rb +184 -0
  13. data/qwikdoc.gemspec +26 -0
  14. data/spec/qwik_doc_spec.rb +305 -0
  15. data/spec/spec_helper.rb +12 -0
  16. data/vendor/qwik/Makefile +63 -0
  17. data/vendor/qwik/Rakefile +17 -0
  18. data/vendor/qwik/act-aa.rb +83 -0
  19. data/vendor/qwik/act-archive.rb +386 -0
  20. data/vendor/qwik/act-attach.rb +304 -0
  21. data/vendor/qwik/act-backup.rb +236 -0
  22. data/vendor/qwik/act-basic.rb +325 -0
  23. data/vendor/qwik/act-book.rb +161 -0
  24. data/vendor/qwik/act-calc.rb +371 -0
  25. data/vendor/qwik/act-charset.rb +251 -0
  26. data/vendor/qwik/act-christel.rb +112 -0
  27. data/vendor/qwik/act-chronology.rb +149 -0
  28. data/vendor/qwik/act-code.rb +155 -0
  29. data/vendor/qwik/act-comment.rb +554 -0
  30. data/vendor/qwik/act-config.rb +49 -0
  31. data/vendor/qwik/act-counter.rb +125 -0
  32. data/vendor/qwik/act-day.rb +96 -0
  33. data/vendor/qwik/act-describe.rb +135 -0
  34. data/vendor/qwik/act-diary.rb +109 -0
  35. data/vendor/qwik/act-edit.rb +317 -0
  36. data/vendor/qwik/act-embed-html.rb +296 -0
  37. data/vendor/qwik/act-emode.rb +150 -0
  38. data/vendor/qwik/act-event.rb +187 -0
  39. data/vendor/qwik/act-file.rb +303 -0
  40. data/vendor/qwik/act-files.rb +771 -0
  41. data/vendor/qwik/act-getpass.rb +295 -0
  42. data/vendor/qwik/act-history.rb +136 -0
  43. data/vendor/qwik/act-html.rb +204 -0
  44. data/vendor/qwik/act-httpauth.rb +147 -0
  45. data/vendor/qwik/act-include.rb +142 -0
  46. data/vendor/qwik/act-interwiki.rb +189 -0
  47. data/vendor/qwik/act-isearch.rb +109 -0
  48. data/vendor/qwik/act-keywords.rb +137 -0
  49. data/vendor/qwik/act-lang.rb +81 -0
  50. data/vendor/qwik/act-license.rb +63 -0
  51. data/vendor/qwik/act-list.rb +287 -0
  52. data/vendor/qwik/act-login.rb +410 -0
  53. data/vendor/qwik/act-logout.rb +60 -0
  54. data/vendor/qwik/act-mail.rb +159 -0
  55. data/vendor/qwik/act-map.rb +292 -0
  56. data/vendor/qwik/act-md5.rb +42 -0
  57. data/vendor/qwik/act-mdlb.rb +741 -0
  58. data/vendor/qwik/act-media.rb +416 -0
  59. data/vendor/qwik/act-member.rb +157 -0
  60. data/vendor/qwik/act-menu.rb +142 -0
  61. data/vendor/qwik/act-metadata.rb +323 -0
  62. data/vendor/qwik/act-mlsubmitform.rb +49 -0
  63. data/vendor/qwik/act-monitor.rb +167 -0
  64. data/vendor/qwik/act-new.rb +418 -0
  65. data/vendor/qwik/act-pagelist.rb +248 -0
  66. data/vendor/qwik/act-password.rb +145 -0
  67. data/vendor/qwik/act-plan.rb +210 -0
  68. data/vendor/qwik/act-povray.rb +230 -0
  69. data/vendor/qwik/act-presen.rb +380 -0
  70. data/vendor/qwik/act-redirect.rb +133 -0
  71. data/vendor/qwik/act-ring.rb +1071 -0
  72. data/vendor/qwik/act-rrefs.rb +255 -0
  73. data/vendor/qwik/act-ruby.rb +116 -0
  74. data/vendor/qwik/act-sample.rb +170 -0
  75. data/vendor/qwik/act-save.rb +295 -0
  76. data/vendor/qwik/act-schedule.rb +374 -0
  77. data/vendor/qwik/act-search.rb +180 -0
  78. data/vendor/qwik/act-searchwords.rb +51 -0
  79. data/vendor/qwik/act-sendpass.rb +83 -0
  80. data/vendor/qwik/act-site.rb +89 -0
  81. data/vendor/qwik/act-sitebackup.rb +419 -0
  82. data/vendor/qwik/act-sitelog.rb +118 -0
  83. data/vendor/qwik/act-smil.rb +299 -0
  84. data/vendor/qwik/act-status.rb +220 -0
  85. data/vendor/qwik/act-style.rb +608 -0
  86. data/vendor/qwik/act-table.rb +263 -0
  87. data/vendor/qwik/act-tableform.rb +241 -0
  88. data/vendor/qwik/act-tag.rb +103 -0
  89. data/vendor/qwik/act-text.rb +70 -0
  90. data/vendor/qwik/act-textarea.rb +164 -0
  91. data/vendor/qwik/act-theme.rb +346 -0
  92. data/vendor/qwik/act-toc.rb +112 -0
  93. data/vendor/qwik/act-typekey.rb +198 -0
  94. data/vendor/qwik/act-under-const.rb +94 -0
  95. data/vendor/qwik/act-webservice.rb +321 -0
  96. data/vendor/qwik/act-wema.rb +558 -0
  97. data/vendor/qwik/act-wysiwyg.rb +238 -0
  98. data/vendor/qwik/action.rb +325 -0
  99. data/vendor/qwik/autoreload.rb +98 -0
  100. data/vendor/qwik/bench-bench.rb +28 -0
  101. data/vendor/qwik/bench-emode.rb +47 -0
  102. data/vendor/qwik/bench-format-xml.rb +70 -0
  103. data/vendor/qwik/bench-large-table.rb +62 -0
  104. data/vendor/qwik/bench-md5.rb +14 -0
  105. data/vendor/qwik/bench-module-session.rb +19 -0
  106. data/vendor/qwik/bench-page.rb +50 -0
  107. data/vendor/qwik/bench-s-md5.rb +28 -0
  108. data/vendor/qwik/bench-session.rb +25 -0
  109. data/vendor/qwik/bench-textformat.rb +31 -0
  110. data/vendor/qwik/catalog-factory.rb +91 -0
  111. data/vendor/qwik/catalog-ja.rb +479 -0
  112. data/vendor/qwik/catalog-ml-ja.rb +145 -0
  113. data/vendor/qwik/check-act-monitor.rb +112 -0
  114. data/vendor/qwik/check-act-monitor2.rb +46 -0
  115. data/vendor/qwik/check-act-theme.rb +27 -0
  116. data/vendor/qwik/check-event.rb +112 -0
  117. data/vendor/qwik/check-event2.rb +55 -0
  118. data/vendor/qwik/check-htree-rexml.rb +77 -0
  119. data/vendor/qwik/check-htree.rb +51 -0
  120. data/vendor/qwik/check-libxml.rb +135 -0
  121. data/vendor/qwik/check-many-pages.rb +47 -0
  122. data/vendor/qwik/check-monitor.rb +33 -0
  123. data/vendor/qwik/check-observer.rb +67 -0
  124. data/vendor/qwik/check-server.rb +61 -0
  125. data/vendor/qwik/check-uuencode.rb +33 -0
  126. data/vendor/qwik/check-webdav.rb +65 -0
  127. data/vendor/qwik/check-xml-xpath.rb +27 -0
  128. data/vendor/qwik/common-backtrace.rb +94 -0
  129. data/vendor/qwik/common-basic.rb +111 -0
  130. data/vendor/qwik/common-condition.rb +142 -0
  131. data/vendor/qwik/common-error.rb +48 -0
  132. data/vendor/qwik/common-gettext.rb +50 -0
  133. data/vendor/qwik/common-javascript.rb +45 -0
  134. data/vendor/qwik/common-notice.rb +132 -0
  135. data/vendor/qwik/common-plain.rb +105 -0
  136. data/vendor/qwik/common-plugin.rb +111 -0
  137. data/vendor/qwik/common-res.rb +76 -0
  138. data/vendor/qwik/common-resolve.rb +92 -0
  139. data/vendor/qwik/common-send.rb +171 -0
  140. data/vendor/qwik/common-session.rb +139 -0
  141. data/vendor/qwik/common-surface.rb +261 -0
  142. data/vendor/qwik/common-url.rb +90 -0
  143. data/vendor/qwik/compat/Makefile +12 -0
  144. data/vendor/qwik/compat/add_load_path.rb +1 -0
  145. data/vendor/qwik/config.rb +299 -0
  146. data/vendor/qwik/db-b-backup.rb +142 -0
  147. data/vendor/qwik/db-backup.rb +184 -0
  148. data/vendor/qwik/db-berkeley.rb +306 -0
  149. data/vendor/qwik/db-filesystem.rb +305 -0
  150. data/vendor/qwik/db-indexer.rb +154 -0
  151. data/vendor/qwik/db-searchwords.rb +238 -0
  152. data/vendor/qwik/description-ja.rb +267 -0
  153. data/vendor/qwik/description.rb +256 -0
  154. data/vendor/qwik/dev-add-copyright.rb +23 -0
  155. data/vendor/qwik/dev-backup.rb +24 -0
  156. data/vendor/qwik/dev-bench.rb +175 -0
  157. data/vendor/qwik/dev-calctime.rb +52 -0
  158. data/vendor/qwik/dev-css-compressor.rb +60 -0
  159. data/vendor/qwik/dev-extract-catalog.rb +102 -0
  160. data/vendor/qwik/dev-js-compressor.rb +73 -0
  161. data/vendor/qwik/dev-release.rb +235 -0
  162. data/vendor/qwik/dev-replace.rb +353 -0
  163. data/vendor/qwik/dev-sendmail.rb +25 -0
  164. data/vendor/qwik/farm.rb +283 -0
  165. data/vendor/qwik/gettext.rb +56 -0
  166. data/vendor/qwik/group-cond.rb +157 -0
  167. data/vendor/qwik/group-config.rb +247 -0
  168. data/vendor/qwik/group-confirm.rb +147 -0
  169. data/vendor/qwik/group-db.rb +326 -0
  170. data/vendor/qwik/group-mail.rb +195 -0
  171. data/vendor/qwik/group-member.rb +307 -0
  172. data/vendor/qwik/group-sendmail.rb +231 -0
  173. data/vendor/qwik/group-site.rb +374 -0
  174. data/vendor/qwik/group-sweep.rb +63 -0
  175. data/vendor/qwik/group.rb +157 -0
  176. data/vendor/qwik/helper.rb +6 -0
  177. data/vendor/qwik/html-generator.rb +104 -0
  178. data/vendor/qwik/html-to-wabisabi.rb +149 -0
  179. data/vendor/qwik/htree-diff.rb +87 -0
  180. data/vendor/qwik/htree-format-xml.rb +57 -0
  181. data/vendor/qwik/htree-generator.rb +144 -0
  182. data/vendor/qwik/htree-get.rb +251 -0
  183. data/vendor/qwik/htree-html-generator.rb +179 -0
  184. data/vendor/qwik/htree-template.rb +263 -0
  185. data/vendor/qwik/htree-to-wabisabi.rb +171 -0
  186. data/vendor/qwik/loadlib.rb +79 -0
  187. data/vendor/qwik/logger.rb +115 -0
  188. data/vendor/qwik/mail-body.rb +171 -0
  189. data/vendor/qwik/mail-header.rb +474 -0
  190. data/vendor/qwik/mail-multipart.rb +193 -0
  191. data/vendor/qwik/mail-parse.rb +147 -0
  192. data/vendor/qwik/mail.rb +341 -0
  193. data/vendor/qwik/mailaddress.rb +83 -0
  194. data/vendor/qwik/mdlb-model.rb +81 -0
  195. data/vendor/qwik/mdlb-sample.rb +324 -0
  196. data/vendor/qwik/ml-catalog-factory.rb +27 -0
  197. data/vendor/qwik/ml-exception.rb +15 -0
  198. data/vendor/qwik/ml-generator.rb +28 -0
  199. data/vendor/qwik/ml-gettext.rb +137 -0
  200. data/vendor/qwik/ml-logger.rb +82 -0
  201. data/vendor/qwik/ml-memory.rb +65 -0
  202. data/vendor/qwik/ml-msg-validator.rb +86 -0
  203. data/vendor/qwik/ml-processor.rb +609 -0
  204. data/vendor/qwik/ml-quickml-server.rb +122 -0
  205. data/vendor/qwik/ml-sendmail.rb +0 -0
  206. data/vendor/qwik/ml-server.rb +107 -0
  207. data/vendor/qwik/ml-session.rb +348 -0
  208. data/vendor/qwik/ml-sweeper.rb +101 -0
  209. data/vendor/qwik/mock-logger.rb +65 -0
  210. data/vendor/qwik/mock-sendmail.rb +78 -0
  211. data/vendor/qwik/mock-socket.rb +82 -0
  212. data/vendor/qwik/modulobe.rb +406 -0
  213. data/vendor/qwik/mongrel-server.rb +72 -0
  214. data/vendor/qwik/page-files.rb +249 -0
  215. data/vendor/qwik/page-generate.rb +82 -0
  216. data/vendor/qwik/page-get.rb +262 -0
  217. data/vendor/qwik/page-images.rb +168 -0
  218. data/vendor/qwik/page-put.rb +128 -0
  219. data/vendor/qwik/page-rrefs.rb +154 -0
  220. data/vendor/qwik/page-title.rb +0 -0
  221. data/vendor/qwik/page-wikidb.rb +234 -0
  222. data/vendor/qwik/page.rb +67 -0
  223. data/vendor/qwik/pages.rb +444 -0
  224. data/vendor/qwik/parse-plugin.rb +249 -0
  225. data/vendor/qwik/parser-emode.rb +116 -0
  226. data/vendor/qwik/parser-inline.rb +273 -0
  227. data/vendor/qwik/parser.rb +350 -0
  228. data/vendor/qwik/password.rb +183 -0
  229. data/vendor/qwik/periodic.rb +79 -0
  230. data/vendor/qwik/qp.rb +56 -0
  231. data/vendor/qwik/qwik-service.rb +341 -0
  232. data/vendor/qwik/qwik.rb +5 -0
  233. data/vendor/qwik/qwikweb-adduser.rb +34 -0
  234. data/vendor/qwik/qwikweb-catalog-validator.rb +110 -0
  235. data/vendor/qwik/qwikweb-incgen.rb +28 -0
  236. data/vendor/qwik/qwikweb-makesite.rb +41 -0
  237. data/vendor/qwik/qwikweb-server.rb +44 -0
  238. data/vendor/qwik/qwikweb-showpassword.rb +26 -0
  239. data/vendor/qwik/qwikweb-watchlog.rb +67 -0
  240. data/vendor/qwik/request-path.rb +304 -0
  241. data/vendor/qwik/request-ua.rb +76 -0
  242. data/vendor/qwik/request-webrick.rb +81 -0
  243. data/vendor/qwik/request.rb +91 -0
  244. data/vendor/qwik/resolve-tdiary.rb +292 -0
  245. data/vendor/qwik/resolve.rb +121 -0
  246. data/vendor/qwik/response.rb +228 -0
  247. data/vendor/qwik/server-memory.rb +57 -0
  248. data/vendor/qwik/server-webrick.rb +102 -0
  249. data/vendor/qwik/server.rb +252 -0
  250. data/vendor/qwik/site-config.rb +149 -0
  251. data/vendor/qwik/site-db.rb +136 -0
  252. data/vendor/qwik/site-event.rb +162 -0
  253. data/vendor/qwik/site-files.rb +86 -0
  254. data/vendor/qwik/site-group.rb +103 -0
  255. data/vendor/qwik/site-index.rb +47 -0
  256. data/vendor/qwik/site-log.rb +64 -0
  257. data/vendor/qwik/site-member.rb +230 -0
  258. data/vendor/qwik/site-monitor.rb +97 -0
  259. data/vendor/qwik/site-pages.rb +62 -0
  260. data/vendor/qwik/site-plan.rb +139 -0
  261. data/vendor/qwik/site-report.rb +282 -0
  262. data/vendor/qwik/site-resolve.rb +230 -0
  263. data/vendor/qwik/site-rrefs.rb +18 -0
  264. data/vendor/qwik/site-search.rb +180 -0
  265. data/vendor/qwik/site-timeline.rb +153 -0
  266. data/vendor/qwik/site-url.rb +189 -0
  267. data/vendor/qwik/site.rb +76 -0
  268. data/vendor/qwik/smil-time.rb +105 -0
  269. data/vendor/qwik/smtp-session.rb +331 -0
  270. data/vendor/qwik/template-generator.rb +149 -0
  271. data/vendor/qwik/template.rb +85 -0
  272. data/vendor/qwik/test-common.rb +10 -0
  273. data/vendor/qwik/test-ml-info.rb +225 -0
  274. data/vendor/qwik/test-module-ml.rb +142 -0
  275. data/vendor/qwik/test-module-path.rb +110 -0
  276. data/vendor/qwik/test-module-public.rb +70 -0
  277. data/vendor/qwik/test-module-server.rb +98 -0
  278. data/vendor/qwik/test-module-session.rb +264 -0
  279. data/vendor/qwik/test-module-suite.rb +91 -0
  280. data/vendor/qwik/test-ms-applemail.rb +59 -0
  281. data/vendor/qwik/test-ms-attach.rb +174 -0
  282. data/vendor/qwik/test-ms-basic.rb +40 -0
  283. data/vendor/qwik/test-ms-close.rb +35 -0
  284. data/vendor/qwik/test-ms-confirm.rb +75 -0
  285. data/vendor/qwik/test-ms-ignore-spam.rb +57 -0
  286. data/vendor/qwik/test-ms-japanese.rb +97 -0
  287. data/vendor/qwik/test-ms-jfilename.rb +82 -0
  288. data/vendor/qwik/test-ms-large.rb +58 -0
  289. data/vendor/qwik/test-ms-member.rb +103 -0
  290. data/vendor/qwik/test-ms-multipart.rb +84 -0
  291. data/vendor/qwik/test-ms-org.rb +129 -0
  292. data/vendor/qwik/test-ms-plan.rb +130 -0
  293. data/vendor/qwik/test-ms-post.rb +53 -0
  294. data/vendor/qwik/test-ms-quopri.rb +76 -0
  295. data/vendor/qwik/test-sub-quopri.rb +45 -0
  296. data/vendor/qwik/test-submit-base64.rb +59 -0
  297. data/vendor/qwik/test-submit-forward.rb +61 -0
  298. data/vendor/qwik/test-submit-html-mail.rb +52 -0
  299. data/vendor/qwik/test-submit-japanese.rb +135 -0
  300. data/vendor/qwik/test-submit-jfilename.rb +144 -0
  301. data/vendor/qwik/test-submit-uuencode.rb +71 -0
  302. data/vendor/qwik/test-suite-all.rb +8 -0
  303. data/vendor/qwik/test-suite-basic.rb +9 -0
  304. data/vendor/qwik/test-suite-ml.rb +9 -0
  305. data/vendor/qwik/test-typekey.rb +64 -0
  306. data/vendor/qwik/testunit.rb +45 -0
  307. data/vendor/qwik/tokenizer-inline.rb +294 -0
  308. data/vendor/qwik/tokenizer.rb +332 -0
  309. data/vendor/qwik/typekey.rb +160 -0
  310. data/vendor/qwik/util-basic.rb +135 -0
  311. data/vendor/qwik/util-charset.rb +332 -0
  312. data/vendor/qwik/util-css.rb +56 -0
  313. data/vendor/qwik/util-csv-tokenizer.rb +113 -0
  314. data/vendor/qwik/util-filename.rb +112 -0
  315. data/vendor/qwik/util-pathname.rb +202 -0
  316. data/vendor/qwik/util-pid.rb +58 -0
  317. data/vendor/qwik/util-safe.rb +67 -0
  318. data/vendor/qwik/util-sendmail.rb +273 -0
  319. data/vendor/qwik/util-string.rb +203 -0
  320. data/vendor/qwik/util-time.rb +125 -0
  321. data/vendor/qwik/util-webrick.rb +176 -0
  322. data/vendor/qwik/version.rb +11 -0
  323. data/vendor/qwik/wabisabi-basic.rb +163 -0
  324. data/vendor/qwik/wabisabi-diff.rb +130 -0
  325. data/vendor/qwik/wabisabi-format-xml.rb +310 -0
  326. data/vendor/qwik/wabisabi-generator.rb +262 -0
  327. data/vendor/qwik/wabisabi-index.rb +174 -0
  328. data/vendor/qwik/wabisabi-table.rb +212 -0
  329. data/vendor/qwik/wabisabi-template.rb +295 -0
  330. data/vendor/qwik/wabisabi-to-htree.rb +111 -0
  331. data/vendor/qwik/wabisabi-to-wiki.rb +690 -0
  332. data/vendor/qwik/wabisabi-traverse.rb +207 -0
  333. data/vendor/qwik/wabisabi-validator.rb +116 -0
  334. data/vendor/qwik/wabisabi.rb +5 -0
  335. metadata +416 -0
@@ -0,0 +1,48 @@
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/common-notice'
7
+
8
+ module Qwik
9
+ class Action
10
+ def c_nerror(title=_('Error'), url=nil, status=500, &b)
11
+ #status = 200 if @config.test
12
+ msg = title
13
+ msg = yield if block_given?
14
+ generate_notice_page(status, title, url, msg)
15
+ end
16
+
17
+ def c_notfound(title=_('Not found.'), &b)
18
+ return c_nerror(title, nil, 404, &b)
19
+ end
20
+ end
21
+ end
22
+
23
+ if $0 == __FILE__
24
+ require 'qwik/test-common'
25
+ $test = true
26
+ end
27
+
28
+ if defined?($test) && $test
29
+ class TestCommonError < Test::Unit::TestCase
30
+ include TestSession
31
+
32
+ def test_all
33
+ res = session
34
+
35
+ @action.c_nerror('c_notice_error title') { 'msg' }
36
+ ok_eq(500, res.status)
37
+ ok_title('c_notice_error title')
38
+
39
+ @action.c_nerror
40
+ ok_eq(500, res.status)
41
+ ok_title('Error')
42
+
43
+ @action.c_notfound('Not found') { 'msg' }
44
+ ok_eq(404, res.status)
45
+ ok_title('Not found')
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,50 @@
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
+ require 'qwik/gettext'
8
+
9
+ module Qwik
10
+ class Action
11
+ include GetText
12
+
13
+ def init_gettext
14
+ init_catalog(@memory.catalog, @req.accept_language)
15
+ end
16
+
17
+ def init_catalog(catalog_factory, langs)
18
+ langs.each {|lang|
19
+ catalog = catalog_factory.get_catalog(lang)
20
+ if catalog
21
+ set_catalog(catalog) # GetText::set_catalog
22
+ return
23
+ end
24
+ }
25
+ end
26
+ end
27
+ end
28
+
29
+ if $0 == __FILE__
30
+ require 'qwik/test-common'
31
+ $test = true
32
+ end
33
+
34
+ if defined?($test) && $test
35
+ class TestCommonGettext < Test::Unit::TestCase
36
+ include TestSession
37
+
38
+ def test_init_catalog
39
+ res = session
40
+
41
+ accept_languages = ['en']
42
+ @action.init_catalog(@memory.catalog, accept_languages)
43
+ ok_eq('hello', @action._('hello'))
44
+
45
+ accept_languages = ['ja']
46
+ @action.init_catalog(@memory.catalog, accept_languages)
47
+ ok_eq('����ɂ���', @action._('hello'))
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,45 @@
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 Action
9
+ #JAVASCRIPT_FILES = %w(prototype scriptaculous base niftypp debugwindow)
10
+ JAVASCRIPT_FILES = %w(base niftypp se_hilite_jp)
11
+
12
+ def self.generate_js
13
+ return JAVASCRIPT_FILES.map {|f|
14
+ generate_script("js/#{f}")
15
+ }
16
+ end
17
+
18
+ def self.generate_script(f)
19
+ return [:script, {:type=>'text/javascript', :src=>".theme/#{f}.js"}, '']
20
+ end
21
+ end
22
+ end
23
+
24
+ if $0 == __FILE__
25
+ require 'qwik/test-common'
26
+ $test = true
27
+ end
28
+
29
+ if defined?($test) && $test
30
+ class TestCommon < Test::Unit::TestCase
31
+ include TestSession
32
+
33
+ def test_generate_js
34
+ c = Qwik::Action
35
+ eq [:script, {:src=>'.theme/t.js', :type=>'text/javascript'}, ''],
36
+ c.generate_script('t')
37
+ # eq [[:script, {:src=>'.theme/js/base.js', :type=>'text/javascript'}, ''],
38
+ # [:script, {:src=>'.theme/js/niftypp.js', :type=>'text/javascript'},
39
+ # ''],
40
+ # [:script, {:src=>'.theme/js/debugwindow.js',
41
+ # :type=>'text/javascript'}, '']],
42
+ # c.generate_js
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,132 @@
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/common-error'
7
+
8
+ module Qwik
9
+ class Action
10
+ # Method for testing page design.
11
+ def act_test_notice
12
+ w = login_show_login_page('http://example.com/HelloQwik/')
13
+ c_notice('act_test_notice') { w }
14
+ end
15
+
16
+ def c_notice(title, url=nil, status=200, sec=0, &b)
17
+ msg = yield
18
+ generate_notice_page(status, title, url, msg, sec)
19
+ end
20
+
21
+ def c_nredirect(title, url, &b)
22
+ msg = ''
23
+ msg = yield if block_given?
24
+ c_set_location(c_relative_to_absolute(url))
25
+ generate_notice_page(302, title, url, msg)
26
+ end
27
+
28
+ def generate_notice_page(status, title, url=nil, msg='', sec=0)
29
+ #url = nil # for debug
30
+ @res.status = status
31
+ template = @memory.template.get('notice')
32
+ @res.body = Action.notice_generate(template, title, msg, url, false, sec)
33
+ c_set_html
34
+ c_set_no_cache
35
+ return nil
36
+ end
37
+
38
+ def self.notice_generate(template, title, msg, url=nil,
39
+ redirectflag=false, sec=0)
40
+ w = template.get_tag('head')
41
+
42
+ # insert title
43
+ w.insert(1, [:title, title])
44
+
45
+ # insert JavaScript
46
+ js = generate_js
47
+ w.insert(w.length, *js)
48
+
49
+ # insert meta
50
+ w << [:meta, {:name=>'ROBOTS', :content=>'NOINDEX,NOFOLLOW'}]
51
+ if url && ! redirectflag # redirect
52
+ w << [:meta, {'http-equiv'=>'Refresh',
53
+ :content=>"#{sec}; url=#{url}"}]
54
+ end
55
+
56
+ # insert h1
57
+ w = template.get_tag('h1')
58
+ w << title
59
+
60
+ # insert section
61
+ w = template.get_by_class('section')
62
+ w << msg
63
+
64
+ template
65
+ end
66
+ end
67
+ end
68
+
69
+ if $0 == __FILE__
70
+ require 'qwik/test-common'
71
+ $test = true
72
+ end
73
+
74
+ if defined?($test) && $test
75
+ class TestCommonNotice < Test::Unit::TestCase
76
+ include TestSession
77
+
78
+ def test_all
79
+ res = session
80
+
81
+ @action.generate_notice_page(200, 'title') { 'msg' }
82
+ eq 200, res.status
83
+ ok_title 'title'
84
+
85
+ @action.generate_notice_page(200, 'title', 'u') { 'msg' }
86
+ eq 200, res.status
87
+ ok_title 'title'
88
+ ok_xp([:meta, {:content=>'0; url=u', 'http-equiv'=>'Refresh'}],
89
+ 'meta[2]', res)
90
+
91
+ @action.c_notice('c_notice title') { 'msg' }
92
+ eq 200, res.status
93
+ ok_title 'c_notice title'
94
+
95
+ t_add_user
96
+
97
+ res = session('/test/.test_notice')
98
+ ok_title 'act_test_notice'
99
+ end
100
+
101
+ def test_c_nredirect
102
+ res = session
103
+ @action.c_nredirect('t', 't.html')
104
+ eq 'http://example.com/test/t.html', res['Location']
105
+ @action.c_nredirect('t', 'http://e.com/')
106
+ eq 'http://e.com/', res['Location']
107
+ end
108
+
109
+ def test_notice_generate
110
+ template = @memory.template.get('notice')
111
+ eq [:h1], template.get_tag('h1')
112
+ eq [:div, {:class=>'section'}],
113
+ template.get_by_class('section')
114
+
115
+ res = Qwik::Action.notice_generate(template, 'title', 'msg')
116
+ eq [:title, 'title'], res.get_tag('title')
117
+ # eq [:script, {:src=>'.theme/js/base.js',
118
+ # :type=>'text/javascript'}, ''], res.get_tag('script')
119
+ eq [:meta, {:content=>'NOINDEX,NOFOLLOW', :name=>'ROBOTS'}],
120
+ res.get_tag('meta')
121
+ eq [:h1, 'title'], res.get_tag('h1')
122
+ eq [:div, {:class=>'section'}, 'msg'],
123
+ res.get_path('//div[@class="section"]')
124
+ eq nil, res.get_tag('meta[2]') # not redirected
125
+
126
+ template = @memory.template.get('notice')
127
+ res = Qwik::Action.notice_generate(template, 'title', 'msg', 'url')
128
+ eq [:meta, {:content=>'0; url=url', 'http-equiv'=>'Refresh'}],
129
+ res.get_tag('meta[2]') # redirected
130
+ end
131
+ end
132
+ end
@@ -0,0 +1,105 @@
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 Action
9
+ # For page design check.
10
+ def act_test_plain
11
+ w = c_page_res('TextFormat')
12
+ c_plain('act_test_plain') { w }
13
+ end
14
+
15
+ def c_plain(title, status=200, &b)
16
+ msg = yield
17
+ generate_plain_page(status, title, msg)
18
+ end
19
+
20
+ def generate_plain_page(status, title, msg)
21
+ c_set_status(status)
22
+ c_set_html
23
+ c_set_no_cache
24
+ template = @memory.template.get('plain')
25
+ body = Action.plain_generate(template, title, msg)
26
+ c_set_body(body)
27
+ nil
28
+ end
29
+
30
+ def self.plain_generate(template, title, msg)
31
+ w = template.get_tag('head')
32
+
33
+ # insert title
34
+ w.insert(1, [:title, title])
35
+
36
+ # insert JavaScript
37
+ js = generate_js
38
+ w.insert(w.length, *js)
39
+
40
+ # insert meta
41
+ w << [:meta, {:name=>'ROBOTS', :content=>'NOINDEX,NOFOLLOW'}]
42
+
43
+ # insert h1
44
+ w = template.get_tag('h1')
45
+ w << title
46
+
47
+ # insert main
48
+ w = template.get_by_class('main')
49
+ w << msg
50
+
51
+ template
52
+ end
53
+ end
54
+ end
55
+
56
+ if $0 == __FILE__
57
+ require 'qwik/test-common'
58
+ $test = true
59
+ end
60
+
61
+ if defined?($test) && $test
62
+ class TestActPlain < Test::Unit::TestCase
63
+ include TestSession
64
+
65
+ def test_test_plain
66
+ t_add_user
67
+ res = session('/test/.test_plain')
68
+ ok_title 'act_test_plain'
69
+ end
70
+
71
+ def test_all
72
+ res = session
73
+
74
+ @action.generate_plain_page(200, 'title', 'msg')
75
+ ok_eq(200, res.status)
76
+ ok_title 'title'
77
+
78
+ @action.c_plain('c_plain title'){'msg'}
79
+ ok_eq(200, res.status)
80
+ ok_title 'c_plain title'
81
+ end
82
+
83
+ def test_plain_generate
84
+ res = session
85
+
86
+ # test_original_template
87
+ template = @memory.template.get('plain')
88
+ ok_eq([:h1], template.get_tag('h1'))
89
+ ok_eq([:div, {:class=>'main'}],
90
+ template.get_by_class('main'))
91
+
92
+ # test_plain_generate
93
+ res = Qwik::Action.plain_generate(template, 'title', 'msg')
94
+ ok_eq([:title, 'title'], res.get_tag('title'))
95
+ # ok_eq([:script, {:src=>'.theme/js/base.js',
96
+ # :type=>'text/javascript'}, ''], res.get_tag('script'))
97
+ ok_eq([:meta, {:content=>'NOINDEX,NOFOLLOW', :name=>'ROBOTS'}],
98
+ res.get_tag('meta'))
99
+ ok_eq([:h1, 'title'], res.get_tag('h1'))
100
+ ok_eq([:div, {:class=>'main'}, 'msg'],
101
+ res.get_path("//div[@class='main']"))
102
+ ok_eq(nil, res.get_tag('meta[2]')) # not redirected
103
+ end
104
+ end
105
+ end
@@ -0,0 +1,111 @@
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-csv-tokenizer'
7
+
8
+ module Qwik
9
+ class Action
10
+ def c_call_plugin(method, param, &b)
11
+ args = nil
12
+ args = Action.plugin_parse_args(param) if param && !param.empty?
13
+ args ||= []
14
+ args.each {|s|
15
+ s.set_page_charset
16
+ }
17
+ m = "plg_#{method}"
18
+ begin
19
+ return self.send(m, *args, &b) if self.respond_to?(m)
20
+ return [:span, {:class=>'plg_error'}, 'nosuch plugin | ',
21
+ [:strong, method]]
22
+ rescue
23
+ #raise if @config.test || @config.debug
24
+ raise if @config.test
25
+
26
+ h = @req.fromhost
27
+ if Action.from_local?(h)
28
+ return PrettyBacktrace.to_html($!) # common-backtrace
29
+ else
30
+ return [:span, {:class=>'plg_error'}, 'plugin error | ',
31
+ [:strong, method]]
32
+ end
33
+ end
34
+ end
35
+
36
+ def self.plugin_parse_args(param)
37
+ args = CSVTokenizer.csv_split(param)
38
+ args.collect! {|a|
39
+ case a
40
+ when /\A'(.+)'$/, /^"(.+)"\z/
41
+ $1
42
+ else
43
+ a
44
+ end
45
+ }
46
+ args
47
+ end
48
+
49
+ def self.from_local?(h)
50
+ if h == 'localhost' ||
51
+ h == '127.0.0.1' ||
52
+ /\A\w+\z/ =~ h ||
53
+ /\A192\.168\..+\z/ =~ h ||
54
+ /\A150\.29\.151/ =~ h ||
55
+ /\A61\.193\.236/ =~ h
56
+ return true
57
+ end
58
+ return false
59
+ end
60
+ end
61
+ end
62
+
63
+ if $0 == __FILE__
64
+ require 'qwik/test-common'
65
+ $test = true
66
+ end
67
+
68
+ if defined?($test) && $test
69
+ class TestActPlugin < Test::Unit::TestCase
70
+ include TestSession
71
+
72
+ def ok(e, s)
73
+ eq e, Qwik::Action.plugin_parse_args(s)
74
+ end
75
+
76
+ def test_parse_args
77
+ ok ['a'], "'a'"
78
+ ok ['a'], "\"a\""
79
+ ok ['<'], '<'
80
+ ok ['<'], "'<'"
81
+ ok ['a b'], 'a b'
82
+ end
83
+
84
+ def ok_plugin(e, ar)
85
+ eq e, @action.c_call_plugin(*ar)
86
+ end
87
+
88
+ def test_all
89
+ res = session
90
+
91
+ # test_from_local?
92
+ c = Qwik::Action
93
+ eq true, c.from_local?('localhost')
94
+ eq true, c.from_local?('win')
95
+ eq true, c.from_local?('127.0.0.1')
96
+ eq true, c.from_local?('192.168.0.1')
97
+ eq true, c.from_local?('192.168.2.1')
98
+ eq false, c.from_local?('www.example.com')
99
+
100
+ # test_call_plugin
101
+ ok_plugin 'test', ['qwik_test', '']
102
+ ok_plugin [:span, {:class=>'plg_error'}, 'nosuch plugin | ',
103
+ [:strong, 'nosuch']], ['nosuch', '']
104
+
105
+ t_without_testmode {
106
+ res = @action.c_call_plugin('_qwik_test_for_raise_exception', '')
107
+ eq :h3, res[0][0]
108
+ }
109
+ end
110
+ end
111
+ end