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,52 @@
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-path'
7
+
8
+ def die(msg)
9
+ puts msg
10
+ exit 1
11
+ end
12
+
13
+ def main
14
+ #log = 'log'.path
15
+ log = ARGV.shift
16
+ die('Usage: dev-calctime log') if log.nil?
17
+
18
+ log = log.path
19
+ die('log not found.') if ! log.exist?
20
+
21
+ content = log.open {|f| f.read }
22
+
23
+ ar = []
24
+ content.each_line {|line|
25
+ line.chomp!
26
+ if /(\([0-9\.]+\))\z/ =~ line
27
+ time = $1
28
+ time = time.sub(/\A\(/, '').sub(/\)\z/, '').to_f
29
+
30
+ line = line.sub(/(\([0-9\.]+\))\z/, '')
31
+ method, klass = line.split(/[\(\)]/)
32
+ ar << [time, klass, method]
33
+ end
34
+ }
35
+
36
+ newstr = ''
37
+ ar.sort.reverse.each {|time, klass, method|
38
+ if 0.1 < time
39
+ line = "#{time}\t#{klass}\t#{method}\n"
40
+ newstr << line
41
+ end
42
+ }
43
+
44
+ if false
45
+ 'out'.path.open('wb') {|out|
46
+ out.print newstr
47
+ }
48
+ else
49
+ print newstr
50
+ end
51
+ end
52
+ main
@@ -0,0 +1,60 @@
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-pathname'
7
+
8
+ class CSSCompressor
9
+ def self.run
10
+ generate_src
11
+ end
12
+
13
+ def self.generate_src
14
+ src = <<'EOT'
15
+ /*
16
+
17
+ Copyright (C) 2003-2006 Kouichirou Eto
18
+ All rights reserved.
19
+ This is free software with ABSOLUTELY NO WARRANTY.
20
+
21
+ You can redistribute it and/or modify it under the terms of
22
+ the GNU General Public License version 2.
23
+
24
+ This file is automatically generated.
25
+ PLEASE DO NOT EDIT THIS FILE.
26
+
27
+ */
28
+ EOT
29
+ '.'.path.each_entry {|file|
30
+ f = file.to_s
31
+ next unless /\.css\z/ =~ f
32
+ s = ''
33
+ file.open {|f|
34
+ while line = f.gets
35
+ line.sub!(/\/\/.+$/, '')
36
+ line.sub!(/\A\s+/, '')
37
+ line.sub!(/\A([-\w]+:)\s+/) { $1 }
38
+ case line
39
+ when /\A\/\//, /\A\s*$/
40
+ # do nothing
41
+ when /\A\/\*.+\*\/$/
42
+ # do nothing
43
+ else
44
+ s << line
45
+ end
46
+ end
47
+ f.read
48
+ }
49
+ src << s
50
+ }
51
+
52
+ '../all.css'.path.open('wb') {|f|
53
+ f.puts src
54
+ }
55
+ end
56
+ end
57
+
58
+ if $0 == __FILE__
59
+ CSSCompressor.run
60
+ end
@@ -0,0 +1,102 @@
1
+ #! /usr/bin/ruby
2
+ # Copyright (C) 2003-2008 AIST, All rights reserved.
3
+ # This is free software with ABSOLUTELY NO WARRANTY.
4
+ # You can redistribute it and/or modify it under the terms of the GNU GPL 2.
5
+
6
+ require 'pathname'
7
+ require 'pp'
8
+ require 'stringio'
9
+ $KCODE = 'SJIS'
10
+
11
+ class String
12
+ def trim_line!
13
+ self.chomp!
14
+ self.gsub!(/\A\s*/, '')
15
+ self.gsub!(/\s*\z/, '')
16
+ end
17
+
18
+ def strip_metachar!
19
+ self.gsub!(/\\n/, '')
20
+ self.gsub!(/\\"/, '"')
21
+ self.sub!(/\A['"]/, '')
22
+ self.sub!(/['"]\Z/, '')
23
+ end
24
+
25
+ def del!(regexp)
26
+ self.gsub!(regexp) { '' }
27
+ end
28
+ end
29
+
30
+ class ExtractCatalog
31
+ def main
32
+ mypath = Pathname.new(__FILE__)
33
+
34
+ catalog_ja = mypath.parent + 'catalog-ja.rb'
35
+ ar = parse(catalog_ja)
36
+ outpath = Pathname.new '../../interfaces-web.txt'
37
+ output(outpath, ar)
38
+
39
+ catalog_ml_ja = mypath.parent + 'catalog-ml-ja.rb'
40
+ ar = parse(catalog_ml_ja)
41
+ outpath = Pathname.new '../../interfaces-ml.txt'
42
+ output(outpath, ar)
43
+ end
44
+
45
+ def parse(path)
46
+ str = path.read
47
+
48
+ str2 = ''
49
+ str.each_line {|line|
50
+ line.trim_line!
51
+
52
+ next if line.empty?
53
+
54
+ case line
55
+ when /^#/, /^module /, /^class /, /^def /, /^\{/, /^\}/, /^end$/,
56
+ /^:charset/, /^:codeconv/
57
+ next
58
+ end
59
+
60
+ str2 << line
61
+ }
62
+
63
+ ar = []
64
+ lines = str2.split(/['"],['"]/)
65
+ lines.each {|line|
66
+ e, j = line.split(/['"]\s*=>\s*['"]/)
67
+ ar << [e, j]
68
+ }
69
+
70
+ return ar
71
+ end
72
+
73
+ def output(outpath, ar)
74
+ outpath.open('w') {|out|
75
+ ar.each {|e, j|
76
+ next if e.nil?
77
+ next if j.nil?
78
+
79
+ e.del!(/\A'/)
80
+ j.del!(/['"],\z/)
81
+ e.del!(/\\n/)
82
+ j.del!(/\\n/)
83
+
84
+ e.gsub!(/\\\"/) { '"' }
85
+
86
+ next if e.empty?
87
+ next if j.empty?
88
+
89
+ next if e == '->'
90
+ next if e == '<-'
91
+ next if j == '��'
92
+ next if j == '��'
93
+
94
+ out.puts j
95
+ out.puts e
96
+ out.puts
97
+ }
98
+ }
99
+ end
100
+ end
101
+
102
+ ExtractCatalog.new.main
@@ -0,0 +1,73 @@
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-pathname'
7
+
8
+ class JavaScriptCompressor
9
+ def self.run
10
+ generate_src
11
+ end
12
+
13
+ def self.generate_src
14
+ src = <<'EOT'
15
+ //
16
+ // Copyright (C) 2003-2006 Kouichirou Eto
17
+ // All rights reserved.
18
+ // This is free software with ABSOLUTELY NO WARRANTY.
19
+ //
20
+ // You can redistribute it and/or modify it under the terms of
21
+ // the GNU General Public License version 2.
22
+ //
23
+
24
+ // This file is automatically generated.
25
+ // PLEASE DO NOT EDIT THIS FILE.
26
+ EOT
27
+ #add_all_js(src)
28
+ add_some_js(src)
29
+ '../all.js'.path.open('wb') {|f|
30
+ f.puts src
31
+ }
32
+ end
33
+
34
+ def self.add_some_js(src)
35
+ path = '.'.path
36
+ #ar = %w(base history monitor niftypp wysiwyg)
37
+ ar = %w(base niftypp)
38
+ ar.each {|f|
39
+ pa = path+(f+'.js')
40
+ src << read_file(pa)
41
+ }
42
+ end
43
+
44
+ def self.add_all_js(src)
45
+ path = '.'.path
46
+ path.each_entry {|file|
47
+ f = file.to_s
48
+ next unless /\.js\z/ =~ f
49
+ src << read_file(file)
50
+ }
51
+ end
52
+
53
+ def self.read_file(file)
54
+ s = ''
55
+ file.open {|f|
56
+ while line = f.gets
57
+ line.sub!(/\/\/.+$/, "")
58
+ case line
59
+ when /\A\/\//, /\A\s*$/
60
+ # do nothing
61
+ else
62
+ s << line
63
+ end
64
+ end
65
+ f.read
66
+ }
67
+ s
68
+ end
69
+ end
70
+
71
+ if $0 == __FILE__
72
+ JavaScriptCompressor.run
73
+ end
@@ -0,0 +1,235 @@
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
+ require 'optparse'
6
+ require 'time'
7
+ require 'fileutils'
8
+ include FileUtils
9
+
10
+ $LOAD_PATH.unshift '..' unless $LOAD_PATH.include? '..'
11
+ require 'qwik/config'
12
+ require 'qwik/util-time'
13
+ require 'qwik/util-pathname'
14
+
15
+ module Qwik
16
+ class MakeRelease
17
+ LIBDIR = File.dirname(__FILE__)
18
+
19
+ def self.main(argv)
20
+ type = MakeRelease.parse_args(argv)
21
+
22
+ config = Config.new
23
+ libdir = LIBDIR
24
+ date = Time.now.ymd_s
25
+ version = VERSION
26
+ ml_version = QuickML::VERSION
27
+ base = "qwik-#{version}"
28
+ targz = "#{base}.tar.gz"
29
+ upload_dest = 'eto.com:/var/www/2004/qwikWeb/'
30
+
31
+ case type
32
+ when :generate_version
33
+ GenerateVersion.generate(libdir, version, ml_version, date)
34
+ when :generate_manifest
35
+ GenerateManifest.generate('.')
36
+ when :generate_dist
37
+ GenerateDist.generate(base, targz)
38
+ when :upload
39
+ Upload.upload(targz, upload_dest)
40
+ end
41
+ end
42
+
43
+ def self.parse_args(args)
44
+ type = nil
45
+ optionparser = OptionParser.new {|opts|
46
+ opts.banner = 'Usage: dev-release.rb [options]'
47
+ opts.separator ''
48
+ opts.separator 'Specific options:'
49
+ opts.on('--generate-vesrion', 'Generate version file.') {|a|
50
+ type = :generate_version
51
+ }
52
+ opts.on('--generate-manifest', 'Generate MANIFEST file.') {|a|
53
+ type = :generate_manifest
54
+ }
55
+ opts.on('--generate-dist', 'Generate dist archive.') {|a|
56
+ type = :generate_dist
57
+ }
58
+ opts.on('--upload', 'Upload dist file.') {|a|
59
+ type = :upload
60
+ }
61
+ opts.separator ''
62
+ opts.separator 'Common options:'
63
+ opts.on_tail('-h', '--help', 'Show this message') {
64
+ puts opts
65
+ exit
66
+ }
67
+ }
68
+ optionparser.parse!(args)
69
+
70
+ if type.nil?
71
+ puts 'To show usage, type like this
72
+
73
+ % ruby dev-release.rb -h
74
+
75
+ '
76
+ exit
77
+ end
78
+ return type
79
+ end
80
+ end
81
+
82
+ class GenerateVersion
83
+ def self.generate(libdir, version, ml_version, date)
84
+ version_str = "# Automatically generated.
85
+ # DO NOT EDIT!
86
+
87
+ module Qwik
88
+ VERSION = '#{version}'
89
+ RELEASE_DATE = '#{date}'
90
+ end
91
+
92
+ module QuickML
93
+ VERSION = '#{ml_version}'
94
+ end
95
+ "
96
+ "#{libdir}/version.rb".path.write(version_str)
97
+ end
98
+ end
99
+
100
+ class GenerateManifest
101
+ def self.generate(cwd)
102
+ ar = []
103
+ cwd.path.find {|f|
104
+ ar << f.to_s if public_file?(f)
105
+ }
106
+ ar += %w(etc/ log/)
107
+
108
+ open('MANIFEST', 'wb'){|out|
109
+ ar.sort.each {|f|
110
+ out.puts f
111
+ }
112
+ }
113
+ end
114
+
115
+ IGNORE_DIR = %w(backup cache data etc grave log work .svn)
116
+ IGNORE_PATTERN = %w(
117
+ CVS sfcring memo.txt tar.gz .rm .MP4 .cvsignore
118
+ .stackdump
119
+ .o
120
+ .so
121
+ testlog.txt
122
+ .#
123
+ #
124
+ qwik-0.
125
+ charts.swf
126
+ charts_library
127
+ .config
128
+ lib/qwik/dev-
129
+ .bak
130
+ )
131
+
132
+ #album.swf
133
+ #lib/qwik/mock-
134
+ #lib/qwik/test-
135
+
136
+ def self.public_file?(file)
137
+ return false if file.directory?
138
+ s = file.to_s
139
+ IGNORE_DIR.each {|dir| # ignore dir
140
+ return false if /^#{dir}/ =~ s
141
+ return false if /\/#{dir}\// =~ s
142
+ }
143
+ IGNORE_PATTERN.each {|pat| # ignore pattern
144
+ return false if s.include?(pat)
145
+ }
146
+ return false if /~$/ =~ s
147
+ return true
148
+ end
149
+ end
150
+
151
+ class GenerateDist
152
+ def self.generate(base, targz)
153
+ opt = {} # dummy
154
+ files = open('MANIFEST'){|f| f.read }.split
155
+ rm_rf(base, opt)
156
+ rm_f(targz, opt)
157
+ mkdir(base, opt)
158
+ cp_all(files, base, opt)
159
+ make_default_siteconfig(base)
160
+ make_default_password(base)
161
+ system_p("tar zcf #{targz} #{base}", opt)
162
+ rm_rf(base, opt)
163
+ end
164
+
165
+ def self.cp_all(src, dest, opt={})
166
+ src.each {|file|
167
+ dir = File.dirname(file)
168
+ dir = file.chop if file =~ /\/$/
169
+ destdir = dest+'/'+dir
170
+ mkdir_p(destdir, opt) unless FileTest.directory? destdir
171
+ cp_p(file, destdir, opt) unless file =~ /\/$/
172
+ }
173
+ end
174
+
175
+ def self.cp_p(src, dest, options={})
176
+ opt = options.dup
177
+ opt[:preserve] = true
178
+ cp(src, dest, opt)
179
+ end
180
+
181
+ def self.system_p(cmd, options={})
182
+ print "#{cmd}\n" if options[:verbose]
183
+ return if options[:noop]
184
+ system cmd
185
+ end
186
+
187
+ def self.make_default_siteconfig(base)
188
+ Dir.mkdir(base+'/data') unless File.exist?(base+'/data')
189
+ Dir.mkdir(base+'/data/www') unless File.exist?(base+'/data/www')
190
+ open(base+'/data/www/_GroupForward.txt', 'wb'){|out|
191
+ out.print "\n"
192
+ }
193
+ open(base+'/data/www/_SiteMember.txt', 'wb'){|out|
194
+ out.print ",guest@qwik\n"
195
+ }
196
+ open(base+'/share/super/_SiteConfig.txt', 'rb'){|f|
197
+ open(base+'/data/www/_SiteConfig.txt', 'wb'){|out|
198
+ while line = f.gets
199
+ line = line.sub(/:open:false/, ':open:true')
200
+ out.print line
201
+ end
202
+ }
203
+ }
204
+ end
205
+
206
+ def self.make_default_password(base)
207
+ etc_copy_file(base, 'etc/config.txt')
208
+ etc_copy_file(base, 'etc/config-debug.txt')
209
+ end
210
+
211
+ def self.etc_copy_file(base, file)
212
+ str = read_file(file)
213
+ write_file(base+'/'+file, str)
214
+ end
215
+
216
+ def self.read_file(file)
217
+ open(file){|f| f.read }
218
+ end
219
+
220
+ def self.write_file(file, str)
221
+ open(file, 'wb'){|f| f.print str }
222
+ end
223
+ end
224
+
225
+ class Upload
226
+ def self.upload(targz, upload_dest)
227
+ opt = {} # dummy
228
+ GenerateDist.system_p("scp #{targz} #{upload_dest}", opt)
229
+ end
230
+ end
231
+ end
232
+
233
+ if $0 == __FILE__
234
+ Qwik::MakeRelease.main(ARGV)
235
+ end