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.
- data/.gitignore +5 -0
- data/.rspec +2 -0
- data/CHANGES +3 -0
- data/COPYING +340 -0
- data/Gemfile +3 -0
- data/README.md +10 -0
- data/Rakefile +10 -0
- data/TextFormattingRules +137 -0
- data/TextFormattingRules.ja +143 -0
- data/bin/qwikdoc +34 -0
- data/lib/qwik_doc.rb +15 -0
- data/lib/qwik_doc/hack.rb +184 -0
- data/qwikdoc.gemspec +26 -0
- data/spec/qwik_doc_spec.rb +305 -0
- data/spec/spec_helper.rb +12 -0
- data/vendor/qwik/Makefile +63 -0
- data/vendor/qwik/Rakefile +17 -0
- data/vendor/qwik/act-aa.rb +83 -0
- data/vendor/qwik/act-archive.rb +386 -0
- data/vendor/qwik/act-attach.rb +304 -0
- data/vendor/qwik/act-backup.rb +236 -0
- data/vendor/qwik/act-basic.rb +325 -0
- data/vendor/qwik/act-book.rb +161 -0
- data/vendor/qwik/act-calc.rb +371 -0
- data/vendor/qwik/act-charset.rb +251 -0
- data/vendor/qwik/act-christel.rb +112 -0
- data/vendor/qwik/act-chronology.rb +149 -0
- data/vendor/qwik/act-code.rb +155 -0
- data/vendor/qwik/act-comment.rb +554 -0
- data/vendor/qwik/act-config.rb +49 -0
- data/vendor/qwik/act-counter.rb +125 -0
- data/vendor/qwik/act-day.rb +96 -0
- data/vendor/qwik/act-describe.rb +135 -0
- data/vendor/qwik/act-diary.rb +109 -0
- data/vendor/qwik/act-edit.rb +317 -0
- data/vendor/qwik/act-embed-html.rb +296 -0
- data/vendor/qwik/act-emode.rb +150 -0
- data/vendor/qwik/act-event.rb +187 -0
- data/vendor/qwik/act-file.rb +303 -0
- data/vendor/qwik/act-files.rb +771 -0
- data/vendor/qwik/act-getpass.rb +295 -0
- data/vendor/qwik/act-history.rb +136 -0
- data/vendor/qwik/act-html.rb +204 -0
- data/vendor/qwik/act-httpauth.rb +147 -0
- data/vendor/qwik/act-include.rb +142 -0
- data/vendor/qwik/act-interwiki.rb +189 -0
- data/vendor/qwik/act-isearch.rb +109 -0
- data/vendor/qwik/act-keywords.rb +137 -0
- data/vendor/qwik/act-lang.rb +81 -0
- data/vendor/qwik/act-license.rb +63 -0
- data/vendor/qwik/act-list.rb +287 -0
- data/vendor/qwik/act-login.rb +410 -0
- data/vendor/qwik/act-logout.rb +60 -0
- data/vendor/qwik/act-mail.rb +159 -0
- data/vendor/qwik/act-map.rb +292 -0
- data/vendor/qwik/act-md5.rb +42 -0
- data/vendor/qwik/act-mdlb.rb +741 -0
- data/vendor/qwik/act-media.rb +416 -0
- data/vendor/qwik/act-member.rb +157 -0
- data/vendor/qwik/act-menu.rb +142 -0
- data/vendor/qwik/act-metadata.rb +323 -0
- data/vendor/qwik/act-mlsubmitform.rb +49 -0
- data/vendor/qwik/act-monitor.rb +167 -0
- data/vendor/qwik/act-new.rb +418 -0
- data/vendor/qwik/act-pagelist.rb +248 -0
- data/vendor/qwik/act-password.rb +145 -0
- data/vendor/qwik/act-plan.rb +210 -0
- data/vendor/qwik/act-povray.rb +230 -0
- data/vendor/qwik/act-presen.rb +380 -0
- data/vendor/qwik/act-redirect.rb +133 -0
- data/vendor/qwik/act-ring.rb +1071 -0
- data/vendor/qwik/act-rrefs.rb +255 -0
- data/vendor/qwik/act-ruby.rb +116 -0
- data/vendor/qwik/act-sample.rb +170 -0
- data/vendor/qwik/act-save.rb +295 -0
- data/vendor/qwik/act-schedule.rb +374 -0
- data/vendor/qwik/act-search.rb +180 -0
- data/vendor/qwik/act-searchwords.rb +51 -0
- data/vendor/qwik/act-sendpass.rb +83 -0
- data/vendor/qwik/act-site.rb +89 -0
- data/vendor/qwik/act-sitebackup.rb +419 -0
- data/vendor/qwik/act-sitelog.rb +118 -0
- data/vendor/qwik/act-smil.rb +299 -0
- data/vendor/qwik/act-status.rb +220 -0
- data/vendor/qwik/act-style.rb +608 -0
- data/vendor/qwik/act-table.rb +263 -0
- data/vendor/qwik/act-tableform.rb +241 -0
- data/vendor/qwik/act-tag.rb +103 -0
- data/vendor/qwik/act-text.rb +70 -0
- data/vendor/qwik/act-textarea.rb +164 -0
- data/vendor/qwik/act-theme.rb +346 -0
- data/vendor/qwik/act-toc.rb +112 -0
- data/vendor/qwik/act-typekey.rb +198 -0
- data/vendor/qwik/act-under-const.rb +94 -0
- data/vendor/qwik/act-webservice.rb +321 -0
- data/vendor/qwik/act-wema.rb +558 -0
- data/vendor/qwik/act-wysiwyg.rb +238 -0
- data/vendor/qwik/action.rb +325 -0
- data/vendor/qwik/autoreload.rb +98 -0
- data/vendor/qwik/bench-bench.rb +28 -0
- data/vendor/qwik/bench-emode.rb +47 -0
- data/vendor/qwik/bench-format-xml.rb +70 -0
- data/vendor/qwik/bench-large-table.rb +62 -0
- data/vendor/qwik/bench-md5.rb +14 -0
- data/vendor/qwik/bench-module-session.rb +19 -0
- data/vendor/qwik/bench-page.rb +50 -0
- data/vendor/qwik/bench-s-md5.rb +28 -0
- data/vendor/qwik/bench-session.rb +25 -0
- data/vendor/qwik/bench-textformat.rb +31 -0
- data/vendor/qwik/catalog-factory.rb +91 -0
- data/vendor/qwik/catalog-ja.rb +479 -0
- data/vendor/qwik/catalog-ml-ja.rb +145 -0
- data/vendor/qwik/check-act-monitor.rb +112 -0
- data/vendor/qwik/check-act-monitor2.rb +46 -0
- data/vendor/qwik/check-act-theme.rb +27 -0
- data/vendor/qwik/check-event.rb +112 -0
- data/vendor/qwik/check-event2.rb +55 -0
- data/vendor/qwik/check-htree-rexml.rb +77 -0
- data/vendor/qwik/check-htree.rb +51 -0
- data/vendor/qwik/check-libxml.rb +135 -0
- data/vendor/qwik/check-many-pages.rb +47 -0
- data/vendor/qwik/check-monitor.rb +33 -0
- data/vendor/qwik/check-observer.rb +67 -0
- data/vendor/qwik/check-server.rb +61 -0
- data/vendor/qwik/check-uuencode.rb +33 -0
- data/vendor/qwik/check-webdav.rb +65 -0
- data/vendor/qwik/check-xml-xpath.rb +27 -0
- data/vendor/qwik/common-backtrace.rb +94 -0
- data/vendor/qwik/common-basic.rb +111 -0
- data/vendor/qwik/common-condition.rb +142 -0
- data/vendor/qwik/common-error.rb +48 -0
- data/vendor/qwik/common-gettext.rb +50 -0
- data/vendor/qwik/common-javascript.rb +45 -0
- data/vendor/qwik/common-notice.rb +132 -0
- data/vendor/qwik/common-plain.rb +105 -0
- data/vendor/qwik/common-plugin.rb +111 -0
- data/vendor/qwik/common-res.rb +76 -0
- data/vendor/qwik/common-resolve.rb +92 -0
- data/vendor/qwik/common-send.rb +171 -0
- data/vendor/qwik/common-session.rb +139 -0
- data/vendor/qwik/common-surface.rb +261 -0
- data/vendor/qwik/common-url.rb +90 -0
- data/vendor/qwik/compat/Makefile +12 -0
- data/vendor/qwik/compat/add_load_path.rb +1 -0
- data/vendor/qwik/config.rb +299 -0
- data/vendor/qwik/db-b-backup.rb +142 -0
- data/vendor/qwik/db-backup.rb +184 -0
- data/vendor/qwik/db-berkeley.rb +306 -0
- data/vendor/qwik/db-filesystem.rb +305 -0
- data/vendor/qwik/db-indexer.rb +154 -0
- data/vendor/qwik/db-searchwords.rb +238 -0
- data/vendor/qwik/description-ja.rb +267 -0
- data/vendor/qwik/description.rb +256 -0
- data/vendor/qwik/dev-add-copyright.rb +23 -0
- data/vendor/qwik/dev-backup.rb +24 -0
- data/vendor/qwik/dev-bench.rb +175 -0
- data/vendor/qwik/dev-calctime.rb +52 -0
- data/vendor/qwik/dev-css-compressor.rb +60 -0
- data/vendor/qwik/dev-extract-catalog.rb +102 -0
- data/vendor/qwik/dev-js-compressor.rb +73 -0
- data/vendor/qwik/dev-release.rb +235 -0
- data/vendor/qwik/dev-replace.rb +353 -0
- data/vendor/qwik/dev-sendmail.rb +25 -0
- data/vendor/qwik/farm.rb +283 -0
- data/vendor/qwik/gettext.rb +56 -0
- data/vendor/qwik/group-cond.rb +157 -0
- data/vendor/qwik/group-config.rb +247 -0
- data/vendor/qwik/group-confirm.rb +147 -0
- data/vendor/qwik/group-db.rb +326 -0
- data/vendor/qwik/group-mail.rb +195 -0
- data/vendor/qwik/group-member.rb +307 -0
- data/vendor/qwik/group-sendmail.rb +231 -0
- data/vendor/qwik/group-site.rb +374 -0
- data/vendor/qwik/group-sweep.rb +63 -0
- data/vendor/qwik/group.rb +157 -0
- data/vendor/qwik/helper.rb +6 -0
- data/vendor/qwik/html-generator.rb +104 -0
- data/vendor/qwik/html-to-wabisabi.rb +149 -0
- data/vendor/qwik/htree-diff.rb +87 -0
- data/vendor/qwik/htree-format-xml.rb +57 -0
- data/vendor/qwik/htree-generator.rb +144 -0
- data/vendor/qwik/htree-get.rb +251 -0
- data/vendor/qwik/htree-html-generator.rb +179 -0
- data/vendor/qwik/htree-template.rb +263 -0
- data/vendor/qwik/htree-to-wabisabi.rb +171 -0
- data/vendor/qwik/loadlib.rb +79 -0
- data/vendor/qwik/logger.rb +115 -0
- data/vendor/qwik/mail-body.rb +171 -0
- data/vendor/qwik/mail-header.rb +474 -0
- data/vendor/qwik/mail-multipart.rb +193 -0
- data/vendor/qwik/mail-parse.rb +147 -0
- data/vendor/qwik/mail.rb +341 -0
- data/vendor/qwik/mailaddress.rb +83 -0
- data/vendor/qwik/mdlb-model.rb +81 -0
- data/vendor/qwik/mdlb-sample.rb +324 -0
- data/vendor/qwik/ml-catalog-factory.rb +27 -0
- data/vendor/qwik/ml-exception.rb +15 -0
- data/vendor/qwik/ml-generator.rb +28 -0
- data/vendor/qwik/ml-gettext.rb +137 -0
- data/vendor/qwik/ml-logger.rb +82 -0
- data/vendor/qwik/ml-memory.rb +65 -0
- data/vendor/qwik/ml-msg-validator.rb +86 -0
- data/vendor/qwik/ml-processor.rb +609 -0
- data/vendor/qwik/ml-quickml-server.rb +122 -0
- data/vendor/qwik/ml-sendmail.rb +0 -0
- data/vendor/qwik/ml-server.rb +107 -0
- data/vendor/qwik/ml-session.rb +348 -0
- data/vendor/qwik/ml-sweeper.rb +101 -0
- data/vendor/qwik/mock-logger.rb +65 -0
- data/vendor/qwik/mock-sendmail.rb +78 -0
- data/vendor/qwik/mock-socket.rb +82 -0
- data/vendor/qwik/modulobe.rb +406 -0
- data/vendor/qwik/mongrel-server.rb +72 -0
- data/vendor/qwik/page-files.rb +249 -0
- data/vendor/qwik/page-generate.rb +82 -0
- data/vendor/qwik/page-get.rb +262 -0
- data/vendor/qwik/page-images.rb +168 -0
- data/vendor/qwik/page-put.rb +128 -0
- data/vendor/qwik/page-rrefs.rb +154 -0
- data/vendor/qwik/page-title.rb +0 -0
- data/vendor/qwik/page-wikidb.rb +234 -0
- data/vendor/qwik/page.rb +67 -0
- data/vendor/qwik/pages.rb +444 -0
- data/vendor/qwik/parse-plugin.rb +249 -0
- data/vendor/qwik/parser-emode.rb +116 -0
- data/vendor/qwik/parser-inline.rb +273 -0
- data/vendor/qwik/parser.rb +350 -0
- data/vendor/qwik/password.rb +183 -0
- data/vendor/qwik/periodic.rb +79 -0
- data/vendor/qwik/qp.rb +56 -0
- data/vendor/qwik/qwik-service.rb +341 -0
- data/vendor/qwik/qwik.rb +5 -0
- data/vendor/qwik/qwikweb-adduser.rb +34 -0
- data/vendor/qwik/qwikweb-catalog-validator.rb +110 -0
- data/vendor/qwik/qwikweb-incgen.rb +28 -0
- data/vendor/qwik/qwikweb-makesite.rb +41 -0
- data/vendor/qwik/qwikweb-server.rb +44 -0
- data/vendor/qwik/qwikweb-showpassword.rb +26 -0
- data/vendor/qwik/qwikweb-watchlog.rb +67 -0
- data/vendor/qwik/request-path.rb +304 -0
- data/vendor/qwik/request-ua.rb +76 -0
- data/vendor/qwik/request-webrick.rb +81 -0
- data/vendor/qwik/request.rb +91 -0
- data/vendor/qwik/resolve-tdiary.rb +292 -0
- data/vendor/qwik/resolve.rb +121 -0
- data/vendor/qwik/response.rb +228 -0
- data/vendor/qwik/server-memory.rb +57 -0
- data/vendor/qwik/server-webrick.rb +102 -0
- data/vendor/qwik/server.rb +252 -0
- data/vendor/qwik/site-config.rb +149 -0
- data/vendor/qwik/site-db.rb +136 -0
- data/vendor/qwik/site-event.rb +162 -0
- data/vendor/qwik/site-files.rb +86 -0
- data/vendor/qwik/site-group.rb +103 -0
- data/vendor/qwik/site-index.rb +47 -0
- data/vendor/qwik/site-log.rb +64 -0
- data/vendor/qwik/site-member.rb +230 -0
- data/vendor/qwik/site-monitor.rb +97 -0
- data/vendor/qwik/site-pages.rb +62 -0
- data/vendor/qwik/site-plan.rb +139 -0
- data/vendor/qwik/site-report.rb +282 -0
- data/vendor/qwik/site-resolve.rb +230 -0
- data/vendor/qwik/site-rrefs.rb +18 -0
- data/vendor/qwik/site-search.rb +180 -0
- data/vendor/qwik/site-timeline.rb +153 -0
- data/vendor/qwik/site-url.rb +189 -0
- data/vendor/qwik/site.rb +76 -0
- data/vendor/qwik/smil-time.rb +105 -0
- data/vendor/qwik/smtp-session.rb +331 -0
- data/vendor/qwik/template-generator.rb +149 -0
- data/vendor/qwik/template.rb +85 -0
- data/vendor/qwik/test-common.rb +10 -0
- data/vendor/qwik/test-ml-info.rb +225 -0
- data/vendor/qwik/test-module-ml.rb +142 -0
- data/vendor/qwik/test-module-path.rb +110 -0
- data/vendor/qwik/test-module-public.rb +70 -0
- data/vendor/qwik/test-module-server.rb +98 -0
- data/vendor/qwik/test-module-session.rb +264 -0
- data/vendor/qwik/test-module-suite.rb +91 -0
- data/vendor/qwik/test-ms-applemail.rb +59 -0
- data/vendor/qwik/test-ms-attach.rb +174 -0
- data/vendor/qwik/test-ms-basic.rb +40 -0
- data/vendor/qwik/test-ms-close.rb +35 -0
- data/vendor/qwik/test-ms-confirm.rb +75 -0
- data/vendor/qwik/test-ms-ignore-spam.rb +57 -0
- data/vendor/qwik/test-ms-japanese.rb +97 -0
- data/vendor/qwik/test-ms-jfilename.rb +82 -0
- data/vendor/qwik/test-ms-large.rb +58 -0
- data/vendor/qwik/test-ms-member.rb +103 -0
- data/vendor/qwik/test-ms-multipart.rb +84 -0
- data/vendor/qwik/test-ms-org.rb +129 -0
- data/vendor/qwik/test-ms-plan.rb +130 -0
- data/vendor/qwik/test-ms-post.rb +53 -0
- data/vendor/qwik/test-ms-quopri.rb +76 -0
- data/vendor/qwik/test-sub-quopri.rb +45 -0
- data/vendor/qwik/test-submit-base64.rb +59 -0
- data/vendor/qwik/test-submit-forward.rb +61 -0
- data/vendor/qwik/test-submit-html-mail.rb +52 -0
- data/vendor/qwik/test-submit-japanese.rb +135 -0
- data/vendor/qwik/test-submit-jfilename.rb +144 -0
- data/vendor/qwik/test-submit-uuencode.rb +71 -0
- data/vendor/qwik/test-suite-all.rb +8 -0
- data/vendor/qwik/test-suite-basic.rb +9 -0
- data/vendor/qwik/test-suite-ml.rb +9 -0
- data/vendor/qwik/test-typekey.rb +64 -0
- data/vendor/qwik/testunit.rb +45 -0
- data/vendor/qwik/tokenizer-inline.rb +294 -0
- data/vendor/qwik/tokenizer.rb +332 -0
- data/vendor/qwik/typekey.rb +160 -0
- data/vendor/qwik/util-basic.rb +135 -0
- data/vendor/qwik/util-charset.rb +332 -0
- data/vendor/qwik/util-css.rb +56 -0
- data/vendor/qwik/util-csv-tokenizer.rb +113 -0
- data/vendor/qwik/util-filename.rb +112 -0
- data/vendor/qwik/util-pathname.rb +202 -0
- data/vendor/qwik/util-pid.rb +58 -0
- data/vendor/qwik/util-safe.rb +67 -0
- data/vendor/qwik/util-sendmail.rb +273 -0
- data/vendor/qwik/util-string.rb +203 -0
- data/vendor/qwik/util-time.rb +125 -0
- data/vendor/qwik/util-webrick.rb +176 -0
- data/vendor/qwik/version.rb +11 -0
- data/vendor/qwik/wabisabi-basic.rb +163 -0
- data/vendor/qwik/wabisabi-diff.rb +130 -0
- data/vendor/qwik/wabisabi-format-xml.rb +310 -0
- data/vendor/qwik/wabisabi-generator.rb +262 -0
- data/vendor/qwik/wabisabi-index.rb +174 -0
- data/vendor/qwik/wabisabi-table.rb +212 -0
- data/vendor/qwik/wabisabi-template.rb +295 -0
- data/vendor/qwik/wabisabi-to-htree.rb +111 -0
- data/vendor/qwik/wabisabi-to-wiki.rb +690 -0
- data/vendor/qwik/wabisabi-traverse.rb +207 -0
- data/vendor/qwik/wabisabi-validator.rb +116 -0
- data/vendor/qwik/wabisabi.rb +5 -0
- 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
|