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