git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29291 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2010-09-18 08:34:37 +00:00
Родитель dbac0837d6
Коммит c095a38cad
5 изменённых файлов: 518 добавлений и 518 удалений

Просмотреть файл

@ -1,296 +1,296 @@
<?xml version="1.0" encoding="euc-jp"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN">
<html xml:lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta name="author" content="U.Nakamura" />
<link rev="made" href="mailto:usa@ruby-lang.org" />
<link rel="StyleSheet" href="./ruby.css" type="text/css" />
<title>Ruby-mswin32</title>
</head>
<body>
<h1><a id="top">Ruby-mswin32</a></h1>
<p>あるいは、Windowsとの終わりなき戦い ;-(</p>
<p>[日本語 / <a href="./index_en.html">English</a>]</p>
<h2><a id="menu">▼ 目次</a></h2>
<ul>
<li><a href="#remark">注意事項</a></li>
<li><a href="#ruby">Rubyとは?</a></li>
<li><a href="#mswin32">mswin32版rubyとは?</a></li>
<li><a href="#download">バイナリ ダウンロード</a></li>
<li><a href="#install">インストール</a></li>
<li><a href="#recent">最近の出来事</a></li>
<li><a href="#link">リンク</a></li>
</ul>
<h2><a id="remark">▼ 注意事項</a></h2>
<p>このページでは、mswin32版rubyの配布と変更状況のお知らせを行っています。</p>
<p>ここは別に公式ページでもなんでもなくて、私が勝手に書いてるページです。ここで入手できるプログラム・情報(無いに等しいけど)については、各自の判断でご利用ください。<br />
問い合わせは<a href="mailto:usa@ruby-lang.org"></a>へ。間違っても他の人に迷惑をかけるようなことはしないでね。</p>
<h2><a id="ruby">▼ Rubyとは?</a></h2>
<p><a href="http://www.ruby-lang.org/ja/">Rubyのサイト</a>をご覧下さい。</p>
<h2><a id="mswin32">▼ mswin32版rubyとは?</a></h2>
<p>mswin32版rubyとは、32bit版Windows(Windows95・Windows98・WindowsMe・Windows NT・Windows 2000・WindowsXP・Windows 2003 Server、以下Windowsと表記)上で動作するRubyのバイナリの一つです。<br />
Windows上で動作するRubyとしては、現在、5種類のバイナリが存在します。これらはそれぞれmswin32版・cygwin版・mingw32版・bccwin32版・djgpp版と呼ばれています。<br />
それぞれの違いをまとめると以下のようになります(事実誤認があればお知らせください)。</p>
<dl>
<dt><a id="label:1">mswin32版</a></dt><dd>
<p>VC++でコンパイルされる。Windowsから見ればもっとも「普通」のバイナリと言えるが、反面、Rubyが持つUNIXで特徴的な機能の一部が使用できない。1.7.3以降はmingw32版と拡張ライブラリについてはバイナリ互換性がある。<br />
RUBY_PLATFORMは*-mswin32。</p>
</dd>
<dt><a id="label:2">cygwin版</a></dt><dd>
<p>gccでコンパイルされ、<a href="http://sources.redhat.com/cygwin/">cygwin</a>環境で動作する。cygwin環境がUNIXライクな環境をWindows上で構築するものであるので、当然、cygwin版rubyは一般のUNIX用のものとだいたい同じように動作する(ことが期待できる)。<br />
RUBY_PLATFORMは*-cygwin。</p>
</dd>
<dt><a id="label:3">mingw32版</a></dt><dd>
<p>gccでコンパイルされる。ソースはほとんどmswin32版と共通であり、ランタイムライブラリも共通(MSVCRT.dll)なので、動作も(おそらく)mswin32版とほぼ同じ。1.7.3以降はmswin32版と拡張ライブラリについてはバイナリ互換性がある。<br />
RUBY_PLATFORMは*-mingw32。</p>
</dd>
<dt><a id="label:4">bccwin32版</a></dt><dd>
<p>BC++でコンパイルされる。ソースはかなりの部分がmswin32版と共通ではあるが、ランタイムライブラリが異なるので、細かいところで挙動がmswin32版とは異なる(はず)。1.7以降でサポートされる。<br />
RUBY_PLATFORMは*-bccwin32。</p>
</dd>
<dt><a id="label:5">djgpp版</a></dt><dd>
<p>DJGPPでコンパイルされる。DOS用のバイナリなので、もちろんDOSでも動作する。反面、WindowsにあってDOSにない機能の多くが使えない(ネットワーク関連など)。<br />
RUBY_PLATFORMは*-msdosdjgpp。</p>
</dd>
</dl>
<p>このページでは、上記のうちmswin32版のみを扱っています。<br />
なお、cygwin版・mingw32版・djgpp版についてはわたなべさんの<a href="http://www.os.rim.or.jp/~eban/">Ruby binaries</a>から入手可能です。また、bccwin32版については小西さんの<a href="http://www001.upp.so-net.ne.jp/konishi/ruby/index.htm">Ruby</a>から入手可能です。</p>
<h2><a id="download">▼ バイナリ ダウンロード</a></h2>
<p>現在配布中の全てのバイナリはVC++ 5.0(Version 11.00.7022 for 80x86)でmakeしたものです。ruby自体に関しては、<a href="http://www.ruby-lang.org/ja/download.html">標準配布のソース</a>(または<a href="http://www.ruby-lang.org/~knu/cvsrepo-guide.html">CVS</a>のソース)からそのまま作成しています。拡張ライブラリについては各々のリンク先を参照してください。<br />
いずれのバイナリもzip形式でアーカイブされています。</p>
<p>md5sumのチェック方法ですが、例えばrubyがインストールされているなら下記のような方法があります。<br />
<code>ruby -r md5 -e "puts MD5.new(File.open('filename', 'rb').read).hexdigest"</code></p>
<h3><a id="release">Release</a></h3>
<ul>
<li><a href="ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ruby-1.8.1-i386-mswin32.zip">ruby-1.8.1-i386-mswin32.zip</a> (3,764KB) <em>最新Release版</em><br />
ruby 1.8.1 (2003-12-25) [i386-mswin32]<br />
md5sum : 6bbdabeb29f1a15fa69901e87d1108ac</li>
<li><a href="ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ruby-1.8.0-i386-mswin32.zip">ruby-1.8.0-i386-mswin32.zip</a> (2,507KB)<br />
ruby 1.8.0 (2003-08-04) [i386-mswin32]<br />
md5sum : eaf9263062429fd4f722d9a70a38a9dc</li>
<li><a href="ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ruby-1.6.8-i586-mswin32.zip">ruby-1.6.8-i586-mswin32.zip</a> (1,964KB)<br />
ruby 1.6.8 (2002-12-24) [i586-mswin32]<br />
md5sum : f704f1248ec25b96e3e1f3070afa915e</li>
<li><a href="ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ruby-1.6.7-i586-mswin32.zip">ruby-1.6.7-i586-mswin32.zip</a> (1,972KB)<br />
ruby 1.6.7 (2002-03-01) [i586-mswin32]<br />
md5sum : ddedc40d0fc3b0ea1d6ac74f4976bfc6</li>
<li><a href="ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ruby-1.6.6-i586-mswin32.zip">ruby-1.6.6-i586-mswin32.zip</a> (1,944KB)<br />
ruby 1.6.6 (2001-12-26) [i586-mswin32]<br />
md5sum : 96e0d1d19a37e5e7e50ae7ce99e34636</li>
<li><a href="ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ruby-1.6.5-i586-mswin32.zip">ruby-1.6.5-i586-mswin32.zip</a> (1,896KB)<br />
ruby 1.6.5 (2001-09-19) [i586-mswin32]<br />
md5sum : c708ae98a05df2ff8dea5a70e3791bfa</li>
<li><a href="ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ruby-1.6.4-i586-mswin32.zip">ruby-1.6.4-i586-mswin32.zip</a> (1,821KB)<br />
ruby 1.6.4 (2001-06-04) [i586-mswin32]<br />
md5sum : cf813ca19e40be164057b3562575e4da</li>
</ul>
<h3><a id="develop">Developing versions snapshots</a></h3>
<ul>
<li><a href="ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ruby-1.9.0-20040126-i386-mswin32.zip">ruby-1.9.0-20040126-i386-mswin32.zip</a> (3,849KB)<br />
ruby 1.9.0 (2004-01-26) [i386-mswin32]<br />
md5sum : fffafbf881cb6a85982220eae5a5b4f5</li>
</ul>
<h3><a id="stable">Stable versions snapshots</a></h3>
<h4><a id="stable">1.8.0</a></h4>
<ul>
<li><a href="ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ruby-1.8.1-20040127-i386-mswin32.zip">ruby-1.8.1-20040127-i386-mswin32.zip</a> (3,822KB)<br />
ruby 1.8.1 (2004-01-27) [i386-mswin32]<br />
md5sum : 1fc0d5f53f0a75d0c6d1ca5d21082089</li>
<li><a href="ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ruby-1.8.1-20031027-i386-mswin32.zip">ruby-1.8.1-20031027-i386-mswin32.zip</a> (3,075KB)<br />
ruby 1.8.1 (2003-10-27) [i386-mswin32]<br />
md5sum : 9dbdc644c529d207d0bda5d64478a5c4</li>
</ul>
<h4><a id="stable">1.6.8</a></h4>
<ul>
<li><a href="ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ruby-1.6.8-20030727-i586-mswin32.zip">ruby-1.6.8-20030727-i586-mswin32.zip</a> (2,093KB)<br />
ruby 1.6.8 (2003-07-27) [i586-mswin32]<br />
md5sum : 28c3b92b162319b3d6bc99c9996cad15</li>
<li><a href="ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ruby-1.6.8-20030515-i586-mswin32.zip">ruby-1.6.8-20030515-i586-mswin32.zip</a> (2,091KB)<br />
ruby 1.6.8 (2003-05-15) [i586-mswin32]<br />
md5sum : e5f6558de261d111add4f657ad5e345f</li>
</ul>
<h3><a id="ext">Extension libraries</a></h3>
<h4><a id="ext">1.8.0</a></h4>
<ul>
<li><a href="ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ext/racc-1.4.4-all-i386-mswin32-1.8.zip">racc-1.4.4-all-i386-mswin32-1.8.zip</a> (70KB)<br />
<a href="http://www.loveruby.net/en/racc.html">racc</a> 1.4.4-all (for ruby 1.8.1)<br />
md5sum : 46c4d48b714fb1ded880e7e7af456b28</li>
<li><a href="ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ext/vrswin-030906-i386-mswin32-1.8.zip">vrswin-030906-i386-mswin32-1.8.zip</a> (54KB)<br />
<a href="http://www.osk.3web.ne.jp/~nyasu/vruby/vrproject-e.html">VisualuRuby (swin)</a> 030906 (for ruby 1.8.0)<br />
md5sum : 11c2d30e2a05e9ea7e097ec7b066cedf</li>
<li><a href="ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ext/vruby-030906-i386-mswin32-1.8.zip">vruby-030906-i386-mswin32-1.8.zip</a> (96KB)<br />
<a href="http://www.osk.3web.ne.jp/~nyasu/vruby/vrproject-e.html">VisualuRuby (vruby)</a> 030906 (for ruby 1.8.0)<br />
md5sum : 77a42995e42e869932f5fb282cc297ea</li>
<li><a href="ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ext/eruby-1.0.4-i386-mswin32-1.8.zip">eruby-1.0.4-i386-mswin32-1.8.zip</a> (75KB)<br />
<a href="http://www.modruby.net/">eruby</a> 1.0.4 (for ruby 1.8.0)<br />
md5sum : de7282647f015b1d20a28dcf7c2b8715</li>
</ul>
<h4><a id="ext">1.6.8</a></h4>
<ul>
<li><a href="ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ext/vrswin-030521-i586-mswin32-1.6.zip">vrswin-030521-i586-mswin32-1.6.zip</a> (55KB)<br />
<a href="http://www.osk.3web.ne.jp/~nyasu/vruby/vrproject-e.html">VisualuRuby (swin)</a> 030521 (for ruby 1.6.8)<br />
md5sum : eae3284c6f79be7a119858ff9e940985</li>
<li><a href="ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ext/vruby-030517-i586-mswin32-1.6.zip">vruby-030517-i586-mswin32-1.6.zip</a> (95KB)<br />
<a href="http://www.osk.3web.ne.jp/~nyasu/vruby/vrproject-e.html">VisualuRuby (vruby)</a> 030517 (for ruby 1.6.8)<br />
md5sum : a32af752428cf3aa03000d66d8deca33</li>
<li><a href="ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ext/tmail-0.10.7-i586-mswin32-1.6.zip">tmail-0.10.7-i586-mswin32-1.6.zip</a> (160KB)<br />
<a href="http://www.loveruby.net/en/tmail.html">TMail</a> 0.10.7 (for ruby 1.6.8)<br />
md5sum : 74351ed81550dfbf3bfaf8252c316326</li>
<li><a href="ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ext/eruby-1.0.3-i586-mswin32-1.6.zip">eruby-1.0.3-i586-mswin32-1.6.zip</a> (74KB)<br />
<a href="http://www.modruby.net/">eruby</a> 1.0.3 (for ruby 1.6.8)<br />
md5sum : e05d654128422846f86ca84f55bf7bcb</li>
<li><a href="ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ext/rubywin-0.0.4.3-i586-mswin32-1.6.zip">rubywin-0.0.4.3-i586-mswin32-1.6.zip</a> (286KB)<br />
<a href="http://homepage1.nifty.com/markey/ruby/rubywin/index_e.html">RubyWin</a> 0.0.4.3 (for ruby 1.6.8)<br />
md5sum : 3f2226ef0c6e41b31c2f337f778e3e18</li>
<li><a href="ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ext/shim-20021224-i586-mswin32-1.6.zip">shim-20021224-i586-mswin32-1.6.zip</a> (138KB)<br />
<a href="http://www.ruby-lang.org/~knu/cgi-bin/cvsweb.cgi/shim/">Ruby Shim</a> 20021224 (for ruby 1.6.8)<br />
md5sum : 7ee4363195973a1df0584cb467e5ce82</li>
<li><a href="ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ext/racc-1.4.3-all-i586-mswin32-1.6.zip">racc-1.4.3-all-i586-mswin32-1.6.zip</a> (124KB)<br />
<a href="http://www.loveruby.net/en/racc.html">racc</a> 1.4.3-all (for ruby 1.6.8)<br />
md5sum : 1f093aabb464bef3074112949228a8c6</li>
<li><a href="ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ext/win32ole-0.5.2-i586-mswin32-1.6.zip">win32ole-0.5.2-i586-mswin32-1.6.zip</a> (59KB)<br />
<a href="http://homepage1.nifty.com/markey/ruby/win32ole/index_e.html">Win32OLE</a> 0.5.2 (for ruby 1.6.8)&lt;<br />
md5sum : 960f7205923a9243cff567d291b254ad</li>
<li><a href="ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ext/uconv-0.4.11-i586-mswin32-1.6.zip">uconv-0.4.11-i586-mswin32-1.6.zip</a> (110KB)<br />
<a href="http://www.yoshidam.net/Ruby.html#uconv">uconv</a> 0.4.11 (for ruby 1.6.8)<br />
md5sum : c08f3662abee8e7186283741f89b88d7</li>
</ul>
<h2><a id="install">▼ インストール</a></h2>
<p>上記のバイナリをインストールする場合は、お好みのディレクトリ(以下<code>$TOPDIR</code>と記述)に展開してください。ディレクトリ付きで圧縮されてますので、展開時にはディレクトリ付きで展開するのを忘れずに(意味がわからない人は気にしなくていいです)。<br />
展開後は、<code>$TOPDIR\bin</code><code>PATH</code>を通しておいてください。</p>
<p>なお、以下の拡張ライブラリは、この配布物に含まれない外部のライブラリに依存しています。</p>
<ul>
<li>curses.so : PDCursesに依存しています。</li>
<li>dbm.so : GDBMに依存しています。</li>
<li>gdbm.so : GDBMに依存しています。</li>
<li>iconv.so : Iconvに依存しています。</li>
<li>openssl.so : OpenSSLに依存しています。</li>
<li>readline.so : readlineに依存しています。</li>
<li>tcltklib.so : Tcl/Tkに依存しています。</li>
<li>zlib.so : Zlibに依存しています。</li>
</ul>
<p>上記のうち、PDCurses・GDBM・OpenSSL・readline・Zlibについては、<a href="http://jarp.jin.gr.jp/win32/">Porting Libraries to Win32</a>にバイナリが存在します。<br />
Iconvについては、Meadowy.orgで配布されている<a href="http://www.meadowy.org/meadow/dists/snapshot/iconv-1.8.win32.zip">iconv-1.8.win32.zip</a>を利用しています。<br />
Tcl/Tkについては、<a href="http://www.activestate.com/">ActiveState</a>で配布されている<a href="http://www.activestate.com/Products/ActiveTcl/">ActiveTcl</a>を利用しています。</p>
<h2><a id="recent">▼ 最近の出来事</a></h2>
<h3><a id="d20040127">2004-01-27</a></h3>
<p>あけましておめでとうございます。って遅いよ!</p>
<p>ruby-1.8.1-20040127とruby-1.9.0-20040126を置きました。<br />
前者は主に1.8.1リリース版で発見された不具合の修正です。後者は開発版。</p>
<h3><a id="d20031225">2003-12-25</a></h3>
<p>メリークリスマス! ruby-1.8.1がリリースされました!<br />
(previewを一つ飛ばしちゃいました、ごめんなさい...)</p>
<h3><a id="d20031206">2003-12-06</a></h3>
<p>ruby-1.8.1-preview3を置きました。思いのほか間が空いちゃいましたね。</p>
<h3><a id="d20031101">2003-11-01</a></h3>
<p>ruby-1.8.1-preview2を置きました。</p>
<h3><a id="d20031028">2003-10-28</a></h3>
<p>ruby-1.8.1-20031027を置きました。<br />
racc-1.4.4-allを置きました。</p>
<h3><a id="d20030907">2003-09-07</a></h3>
<p>eruby-1.0.4・vrswin-030906・vruby-030906を置きました。</p>
<h3><a id="d20030812">2003-08-12</a></h3>
<p>ruby-1.8.0-20030812を置きました。</p>
<p>vrswin-030811・vruby-030811を置きました。今回から置く拡張ライブラリは全て1.8用になります。</p>
<h3><a id="d20030804">2003-08-04</a></h3>
<p>ruby-1.8.0を置きました。Ruby 1.8系最初のリリースとなります。<br />
1.6系からの変更点については、<a href="ftp://ftp.ruby-lang.org/pub/ruby/1.8/changes.1.8.0">changes.1.8.0</a>などをご覧ください。</p>
<h3><a id="d20030731">2003-07-31</a></h3>
<p>ruby-1.8.0-preview6を置きました。えーと、これを含めてあと2回previewが出る模様です :)</p>
<h3><a id="d20030728">2003-07-28</a></h3>
<p>ruby-1.8.0-preview5を置きました。おそらくこれが1.8.0の最後のpreviewになるでしょう。<br />
ruby-1.6.8-20030727を置きました。</p>
<h3><a id="old">かつての出来事</a></h3>
<p><a href="./old.html">こちら</a>をどうぞ。</p>
<h2><a id="link">▼ リンク</a></h2>
<p>mswin32版に関する(と思われる)リンクです。勝手に張ってますので、不都合があれば<a href="mailto:usa@osb.att.ne.jp"></a>までご連絡ください。</p>
<ul>
<li><a href="http://www.ruby-lang.org/">Ruby Home Page</a> (<a href="http://www.ruby-lang.org/ja/">日本語</a> / <a href="http://www.ruby-lang.org/en/">English</a>)<br />
言わずとしれた、本家サイト。</li>
<li>雑記帳 (<a href="http://homepage1.nifty.com/markey/">日本語</a> / <a href="http://homepage1.nifty.com/markey/index_e.html">English</a>)<br />
助田さんのページ。<a href="http://homepage1.nifty.com/markey/ruby/rubywin/index.html">RubWin</a><a href="http://homepage1.nifty.com/markey/ruby/win32ole/index.html">Win32OLE</a>などがあります。</li>
<li><a href="http://www.moonwolf.com/ruby/">Script/Ruby</a> (日本語)<br />
MoonWolfさんのページ。Win32Moduleなどがあります。</li>
<li>ActiveScriptRuby (<a href="http://www.geocities.co.jp/SiliconValley-PaloAlto/9251/ruby/index.html">日本語</a> / <a href="http://www.geocities.co.jp/SiliconValley-PaloAlto/9251/ruby/main.html">English</a>)<br />
artonさんのページ。Windows版Rubyの未来はここにあるのかも。</li>
<li>VisualuRuby計画(仮称) (<a href="http://www.osk.3web.ne.jp/~nyasu/software/vrproject.html">日本語</a> / <a href="http://www.osk.3web.ne.jp/~nyasu/vruby/vrproject-e.html">English</a>)<br />
nyasuさんのページ。VisualuRubyなどがあります(ってこれもそのまんま)。WindowsでRubyを使うための<a href="http://www.osk.3web.ne.jp/~nyasu/software/rubyonwin.html">リンク集</a>が充実してます。ちなみに、当サイトのデザインはこちらのパクリです。多謝!</li>
<li>Ruby (<a href="http://www.yoshidam.net/Ruby_ja.html">日本語</a> / <a href="http://www.yoshidam.net/Ruby.html">English</a>)<br />
よしだむさんのページ。<a href="http://www.yoshidam.net/Ruby_ja.html#susie">Susieプラグインライブラリ</a><a href="http://www.yoshidam.net/Ruby_ja.html#rddraw">DirectDraw for Ruby</a>などがあります。</li>
<li><a href="http://homepage2.nifty.com/sakazuki/rde.html">RDE(Ruby Development Environment)</a> (日本語)<br />
sakazukiさんのページ。mswin32版ユーザなら必見です。推奨環境はartonさんとこのActiveScriptRubyですが (^^; ここの配布物を使っても問題なく動作します。</li>
</ul>
<p class="footer">
[<a href="../">戻る</a>]
</p>
<address>written by <a href="mailto:usa@ruby-lang.org">U.Nakamura</a></address>
<p class="versions">
ruby 1.9.0 (2004-01-13)<br />
ERb 2.0.4<br />
RDtool 0.6.11<br />
rublog 0.0.2
</p>
</body>
</html>
<?xml version="1.0" encoding="euc-jp"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN">
<html xml:lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta name="author" content="U.Nakamura" />
<link rev="made" href="mailto:usa@ruby-lang.org" />
<link rel="StyleSheet" href="./ruby.css" type="text/css" />
<title>Ruby-mswin32</title>
</head>
<body>
<h1><a id="top">Ruby-mswin32</a></h1>
<p>あるいは、Windowsとの終わりなき戦い ;-(</p>
<p>[日本語 / <a href="./index_en.html">English</a>]</p>
<h2><a id="menu">▼ 目次</a></h2>
<ul>
<li><a href="#remark">注意事項</a></li>
<li><a href="#ruby">Rubyとは?</a></li>
<li><a href="#mswin32">mswin32版rubyとは?</a></li>
<li><a href="#download">バイナリ ダウンロード</a></li>
<li><a href="#install">インストール</a></li>
<li><a href="#recent">最近の出来事</a></li>
<li><a href="#link">リンク</a></li>
</ul>
<h2><a id="remark">▼ 注意事項</a></h2>
<p>このページでは、mswin32版rubyの配布と変更状況のお知らせを行っています。</p>
<p>ここは別に公式ページでもなんでもなくて、私が勝手に書いてるページです。ここで入手できるプログラム・情報(無いに等しいけど)については、各自の判断でご利用ください。<br />
問い合わせは<a href="mailto:usa@ruby-lang.org"></a>へ。間違っても他の人に迷惑をかけるようなことはしないでね。</p>
<h2><a id="ruby">▼ Rubyとは?</a></h2>
<p><a href="http://www.ruby-lang.org/ja/">Rubyのサイト</a>をご覧下さい。</p>
<h2><a id="mswin32">▼ mswin32版rubyとは?</a></h2>
<p>mswin32版rubyとは、32bit版Windows(Windows95・Windows98・WindowsMe・Windows NT・Windows 2000・WindowsXP・Windows 2003 Server、以下Windowsと表記)上で動作するRubyのバイナリの一つです。<br />
Windows上で動作するRubyとしては、現在、5種類のバイナリが存在します。これらはそれぞれmswin32版・cygwin版・mingw32版・bccwin32版・djgpp版と呼ばれています。<br />
それぞれの違いをまとめると以下のようになります(事実誤認があればお知らせください)。</p>
<dl>
<dt><a id="label:1">mswin32版</a></dt><dd>
<p>VC++でコンパイルされる。Windowsから見ればもっとも「普通」のバイナリと言えるが、反面、Rubyが持つUNIXで特徴的な機能の一部が使用できない。1.7.3以降はmingw32版と拡張ライブラリについてはバイナリ互換性がある。<br />
RUBY_PLATFORMは*-mswin32。</p>
</dd>
<dt><a id="label:2">cygwin版</a></dt><dd>
<p>gccでコンパイルされ、<a href="http://sources.redhat.com/cygwin/">cygwin</a>環境で動作する。cygwin環境がUNIXライクな環境をWindows上で構築するものであるので、当然、cygwin版rubyは一般のUNIX用のものとだいたい同じように動作する(ことが期待できる)。<br />
RUBY_PLATFORMは*-cygwin。</p>
</dd>
<dt><a id="label:3">mingw32版</a></dt><dd>
<p>gccでコンパイルされる。ソースはほとんどmswin32版と共通であり、ランタイムライブラリも共通(MSVCRT.dll)なので、動作も(おそらく)mswin32版とほぼ同じ。1.7.3以降はmswin32版と拡張ライブラリについてはバイナリ互換性がある。<br />
RUBY_PLATFORMは*-mingw32。</p>
</dd>
<dt><a id="label:4">bccwin32版</a></dt><dd>
<p>BC++でコンパイルされる。ソースはかなりの部分がmswin32版と共通ではあるが、ランタイムライブラリが異なるので、細かいところで挙動がmswin32版とは異なる(はず)。1.7以降でサポートされる。<br />
RUBY_PLATFORMは*-bccwin32。</p>
</dd>
<dt><a id="label:5">djgpp版</a></dt><dd>
<p>DJGPPでコンパイルされる。DOS用のバイナリなので、もちろんDOSでも動作する。反面、WindowsにあってDOSにない機能の多くが使えない(ネットワーク関連など)。<br />
RUBY_PLATFORMは*-msdosdjgpp。</p>
</dd>
</dl>
<p>このページでは、上記のうちmswin32版のみを扱っています。<br />
なお、cygwin版・mingw32版・djgpp版についてはわたなべさんの<a href="http://www.os.rim.or.jp/~eban/">Ruby binaries</a>から入手可能です。また、bccwin32版については小西さんの<a href="http://www001.upp.so-net.ne.jp/konishi/ruby/index.htm">Ruby</a>から入手可能です。</p>
<h2><a id="download">▼ バイナリ ダウンロード</a></h2>
<p>現在配布中の全てのバイナリはVC++ 5.0(Version 11.00.7022 for 80x86)でmakeしたものです。ruby自体に関しては、<a href="http://www.ruby-lang.org/ja/download.html">標準配布のソース</a>(または<a href="http://www.ruby-lang.org/~knu/cvsrepo-guide.html">CVS</a>のソース)からそのまま作成しています。拡張ライブラリについては各々のリンク先を参照してください。<br />
いずれのバイナリもzip形式でアーカイブされています。</p>
<p>md5sumのチェック方法ですが、例えばrubyがインストールされているなら下記のような方法があります。<br />
<code>ruby -r md5 -e "puts MD5.new(File.open('filename', 'rb').read).hexdigest"</code></p>
<h3><a id="release">Release</a></h3>
<ul>
<li><a href="ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ruby-1.8.1-i386-mswin32.zip">ruby-1.8.1-i386-mswin32.zip</a> (3,764KB) <em>最新Release版</em><br />
ruby 1.8.1 (2003-12-25) [i386-mswin32]<br />
md5sum : 6bbdabeb29f1a15fa69901e87d1108ac</li>
<li><a href="ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ruby-1.8.0-i386-mswin32.zip">ruby-1.8.0-i386-mswin32.zip</a> (2,507KB)<br />
ruby 1.8.0 (2003-08-04) [i386-mswin32]<br />
md5sum : eaf9263062429fd4f722d9a70a38a9dc</li>
<li><a href="ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ruby-1.6.8-i586-mswin32.zip">ruby-1.6.8-i586-mswin32.zip</a> (1,964KB)<br />
ruby 1.6.8 (2002-12-24) [i586-mswin32]<br />
md5sum : f704f1248ec25b96e3e1f3070afa915e</li>
<li><a href="ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ruby-1.6.7-i586-mswin32.zip">ruby-1.6.7-i586-mswin32.zip</a> (1,972KB)<br />
ruby 1.6.7 (2002-03-01) [i586-mswin32]<br />
md5sum : ddedc40d0fc3b0ea1d6ac74f4976bfc6</li>
<li><a href="ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ruby-1.6.6-i586-mswin32.zip">ruby-1.6.6-i586-mswin32.zip</a> (1,944KB)<br />
ruby 1.6.6 (2001-12-26) [i586-mswin32]<br />
md5sum : 96e0d1d19a37e5e7e50ae7ce99e34636</li>
<li><a href="ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ruby-1.6.5-i586-mswin32.zip">ruby-1.6.5-i586-mswin32.zip</a> (1,896KB)<br />
ruby 1.6.5 (2001-09-19) [i586-mswin32]<br />
md5sum : c708ae98a05df2ff8dea5a70e3791bfa</li>
<li><a href="ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ruby-1.6.4-i586-mswin32.zip">ruby-1.6.4-i586-mswin32.zip</a> (1,821KB)<br />
ruby 1.6.4 (2001-06-04) [i586-mswin32]<br />
md5sum : cf813ca19e40be164057b3562575e4da</li>
</ul>
<h3><a id="develop">Developing versions snapshots</a></h3>
<ul>
<li><a href="ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ruby-1.9.0-20040126-i386-mswin32.zip">ruby-1.9.0-20040126-i386-mswin32.zip</a> (3,849KB)<br />
ruby 1.9.0 (2004-01-26) [i386-mswin32]<br />
md5sum : fffafbf881cb6a85982220eae5a5b4f5</li>
</ul>
<h3><a id="stable">Stable versions snapshots</a></h3>
<h4><a id="stable">1.8.0</a></h4>
<ul>
<li><a href="ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ruby-1.8.1-20040127-i386-mswin32.zip">ruby-1.8.1-20040127-i386-mswin32.zip</a> (3,822KB)<br />
ruby 1.8.1 (2004-01-27) [i386-mswin32]<br />
md5sum : 1fc0d5f53f0a75d0c6d1ca5d21082089</li>
<li><a href="ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ruby-1.8.1-20031027-i386-mswin32.zip">ruby-1.8.1-20031027-i386-mswin32.zip</a> (3,075KB)<br />
ruby 1.8.1 (2003-10-27) [i386-mswin32]<br />
md5sum : 9dbdc644c529d207d0bda5d64478a5c4</li>
</ul>
<h4><a id="stable">1.6.8</a></h4>
<ul>
<li><a href="ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ruby-1.6.8-20030727-i586-mswin32.zip">ruby-1.6.8-20030727-i586-mswin32.zip</a> (2,093KB)<br />
ruby 1.6.8 (2003-07-27) [i586-mswin32]<br />
md5sum : 28c3b92b162319b3d6bc99c9996cad15</li>
<li><a href="ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ruby-1.6.8-20030515-i586-mswin32.zip">ruby-1.6.8-20030515-i586-mswin32.zip</a> (2,091KB)<br />
ruby 1.6.8 (2003-05-15) [i586-mswin32]<br />
md5sum : e5f6558de261d111add4f657ad5e345f</li>
</ul>
<h3><a id="ext">Extension libraries</a></h3>
<h4><a id="ext">1.8.0</a></h4>
<ul>
<li><a href="ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ext/racc-1.4.4-all-i386-mswin32-1.8.zip">racc-1.4.4-all-i386-mswin32-1.8.zip</a> (70KB)<br />
<a href="http://www.loveruby.net/en/racc.html">racc</a> 1.4.4-all (for ruby 1.8.1)<br />
md5sum : 46c4d48b714fb1ded880e7e7af456b28</li>
<li><a href="ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ext/vrswin-030906-i386-mswin32-1.8.zip">vrswin-030906-i386-mswin32-1.8.zip</a> (54KB)<br />
<a href="http://www.osk.3web.ne.jp/~nyasu/vruby/vrproject-e.html">VisualuRuby (swin)</a> 030906 (for ruby 1.8.0)<br />
md5sum : 11c2d30e2a05e9ea7e097ec7b066cedf</li>
<li><a href="ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ext/vruby-030906-i386-mswin32-1.8.zip">vruby-030906-i386-mswin32-1.8.zip</a> (96KB)<br />
<a href="http://www.osk.3web.ne.jp/~nyasu/vruby/vrproject-e.html">VisualuRuby (vruby)</a> 030906 (for ruby 1.8.0)<br />
md5sum : 77a42995e42e869932f5fb282cc297ea</li>
<li><a href="ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ext/eruby-1.0.4-i386-mswin32-1.8.zip">eruby-1.0.4-i386-mswin32-1.8.zip</a> (75KB)<br />
<a href="http://www.modruby.net/">eruby</a> 1.0.4 (for ruby 1.8.0)<br />
md5sum : de7282647f015b1d20a28dcf7c2b8715</li>
</ul>
<h4><a id="ext">1.6.8</a></h4>
<ul>
<li><a href="ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ext/vrswin-030521-i586-mswin32-1.6.zip">vrswin-030521-i586-mswin32-1.6.zip</a> (55KB)<br />
<a href="http://www.osk.3web.ne.jp/~nyasu/vruby/vrproject-e.html">VisualuRuby (swin)</a> 030521 (for ruby 1.6.8)<br />
md5sum : eae3284c6f79be7a119858ff9e940985</li>
<li><a href="ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ext/vruby-030517-i586-mswin32-1.6.zip">vruby-030517-i586-mswin32-1.6.zip</a> (95KB)<br />
<a href="http://www.osk.3web.ne.jp/~nyasu/vruby/vrproject-e.html">VisualuRuby (vruby)</a> 030517 (for ruby 1.6.8)<br />
md5sum : a32af752428cf3aa03000d66d8deca33</li>
<li><a href="ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ext/tmail-0.10.7-i586-mswin32-1.6.zip">tmail-0.10.7-i586-mswin32-1.6.zip</a> (160KB)<br />
<a href="http://www.loveruby.net/en/tmail.html">TMail</a> 0.10.7 (for ruby 1.6.8)<br />
md5sum : 74351ed81550dfbf3bfaf8252c316326</li>
<li><a href="ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ext/eruby-1.0.3-i586-mswin32-1.6.zip">eruby-1.0.3-i586-mswin32-1.6.zip</a> (74KB)<br />
<a href="http://www.modruby.net/">eruby</a> 1.0.3 (for ruby 1.6.8)<br />
md5sum : e05d654128422846f86ca84f55bf7bcb</li>
<li><a href="ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ext/rubywin-0.0.4.3-i586-mswin32-1.6.zip">rubywin-0.0.4.3-i586-mswin32-1.6.zip</a> (286KB)<br />
<a href="http://homepage1.nifty.com/markey/ruby/rubywin/index_e.html">RubyWin</a> 0.0.4.3 (for ruby 1.6.8)<br />
md5sum : 3f2226ef0c6e41b31c2f337f778e3e18</li>
<li><a href="ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ext/shim-20021224-i586-mswin32-1.6.zip">shim-20021224-i586-mswin32-1.6.zip</a> (138KB)<br />
<a href="http://www.ruby-lang.org/~knu/cgi-bin/cvsweb.cgi/shim/">Ruby Shim</a> 20021224 (for ruby 1.6.8)<br />
md5sum : 7ee4363195973a1df0584cb467e5ce82</li>
<li><a href="ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ext/racc-1.4.3-all-i586-mswin32-1.6.zip">racc-1.4.3-all-i586-mswin32-1.6.zip</a> (124KB)<br />
<a href="http://www.loveruby.net/en/racc.html">racc</a> 1.4.3-all (for ruby 1.6.8)<br />
md5sum : 1f093aabb464bef3074112949228a8c6</li>
<li><a href="ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ext/win32ole-0.5.2-i586-mswin32-1.6.zip">win32ole-0.5.2-i586-mswin32-1.6.zip</a> (59KB)<br />
<a href="http://homepage1.nifty.com/markey/ruby/win32ole/index_e.html">Win32OLE</a> 0.5.2 (for ruby 1.6.8)&lt;<br />
md5sum : 960f7205923a9243cff567d291b254ad</li>
<li><a href="ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ext/uconv-0.4.11-i586-mswin32-1.6.zip">uconv-0.4.11-i586-mswin32-1.6.zip</a> (110KB)<br />
<a href="http://www.yoshidam.net/Ruby.html#uconv">uconv</a> 0.4.11 (for ruby 1.6.8)<br />
md5sum : c08f3662abee8e7186283741f89b88d7</li>
</ul>
<h2><a id="install">▼ インストール</a></h2>
<p>上記のバイナリをインストールする場合は、お好みのディレクトリ(以下<code>$TOPDIR</code>と記述)に展開してください。ディレクトリ付きで圧縮されてますので、展開時にはディレクトリ付きで展開するのを忘れずに(意味がわからない人は気にしなくていいです)。<br />
展開後は、<code>$TOPDIR\bin</code><code>PATH</code>を通しておいてください。</p>
<p>なお、以下の拡張ライブラリは、この配布物に含まれない外部のライブラリに依存しています。</p>
<ul>
<li>curses.so : PDCursesに依存しています。</li>
<li>dbm.so : GDBMに依存しています。</li>
<li>gdbm.so : GDBMに依存しています。</li>
<li>iconv.so : Iconvに依存しています。</li>
<li>openssl.so : OpenSSLに依存しています。</li>
<li>readline.so : readlineに依存しています。</li>
<li>tcltklib.so : Tcl/Tkに依存しています。</li>
<li>zlib.so : Zlibに依存しています。</li>
</ul>
<p>上記のうち、PDCurses・GDBM・OpenSSL・readline・Zlibについては、<a href="http://jarp.jin.gr.jp/win32/">Porting Libraries to Win32</a>にバイナリが存在します。<br />
Iconvについては、Meadowy.orgで配布されている<a href="http://www.meadowy.org/meadow/dists/snapshot/iconv-1.8.win32.zip">iconv-1.8.win32.zip</a>を利用しています。<br />
Tcl/Tkについては、<a href="http://www.activestate.com/">ActiveState</a>で配布されている<a href="http://www.activestate.com/Products/ActiveTcl/">ActiveTcl</a>を利用しています。</p>
<h2><a id="recent">▼ 最近の出来事</a></h2>
<h3><a id="d20040127">2004-01-27</a></h3>
<p>あけましておめでとうございます。って遅いよ!</p>
<p>ruby-1.8.1-20040127とruby-1.9.0-20040126を置きました。<br />
前者は主に1.8.1リリース版で発見された不具合の修正です。後者は開発版。</p>
<h3><a id="d20031225">2003-12-25</a></h3>
<p>メリークリスマス! ruby-1.8.1がリリースされました!<br />
(previewを一つ飛ばしちゃいました、ごめんなさい...)</p>
<h3><a id="d20031206">2003-12-06</a></h3>
<p>ruby-1.8.1-preview3を置きました。思いのほか間が空いちゃいましたね。</p>
<h3><a id="d20031101">2003-11-01</a></h3>
<p>ruby-1.8.1-preview2を置きました。</p>
<h3><a id="d20031028">2003-10-28</a></h3>
<p>ruby-1.8.1-20031027を置きました。<br />
racc-1.4.4-allを置きました。</p>
<h3><a id="d20030907">2003-09-07</a></h3>
<p>eruby-1.0.4・vrswin-030906・vruby-030906を置きました。</p>
<h3><a id="d20030812">2003-08-12</a></h3>
<p>ruby-1.8.0-20030812を置きました。</p>
<p>vrswin-030811・vruby-030811を置きました。今回から置く拡張ライブラリは全て1.8用になります。</p>
<h3><a id="d20030804">2003-08-04</a></h3>
<p>ruby-1.8.0を置きました。Ruby 1.8系最初のリリースとなります。<br />
1.6系からの変更点については、<a href="ftp://ftp.ruby-lang.org/pub/ruby/1.8/changes.1.8.0">changes.1.8.0</a>などをご覧ください。</p>
<h3><a id="d20030731">2003-07-31</a></h3>
<p>ruby-1.8.0-preview6を置きました。えーと、これを含めてあと2回previewが出る模様です :)</p>
<h3><a id="d20030728">2003-07-28</a></h3>
<p>ruby-1.8.0-preview5を置きました。おそらくこれが1.8.0の最後のpreviewになるでしょう。<br />
ruby-1.6.8-20030727を置きました。</p>
<h3><a id="old">かつての出来事</a></h3>
<p><a href="./old.html">こちら</a>をどうぞ。</p>
<h2><a id="link">▼ リンク</a></h2>
<p>mswin32版に関する(と思われる)リンクです。勝手に張ってますので、不都合があれば<a href="mailto:usa@osb.att.ne.jp"></a>までご連絡ください。</p>
<ul>
<li><a href="http://www.ruby-lang.org/">Ruby Home Page</a> (<a href="http://www.ruby-lang.org/ja/">日本語</a> / <a href="http://www.ruby-lang.org/en/">English</a>)<br />
言わずとしれた、本家サイト。</li>
<li>雑記帳 (<a href="http://homepage1.nifty.com/markey/">日本語</a> / <a href="http://homepage1.nifty.com/markey/index_e.html">English</a>)<br />
助田さんのページ。<a href="http://homepage1.nifty.com/markey/ruby/rubywin/index.html">RubWin</a><a href="http://homepage1.nifty.com/markey/ruby/win32ole/index.html">Win32OLE</a>などがあります。</li>
<li><a href="http://www.moonwolf.com/ruby/">Script/Ruby</a> (日本語)<br />
MoonWolfさんのページ。Win32Moduleなどがあります。</li>
<li>ActiveScriptRuby (<a href="http://www.geocities.co.jp/SiliconValley-PaloAlto/9251/ruby/index.html">日本語</a> / <a href="http://www.geocities.co.jp/SiliconValley-PaloAlto/9251/ruby/main.html">English</a>)<br />
artonさんのページ。Windows版Rubyの未来はここにあるのかも。</li>
<li>VisualuRuby計画(仮称) (<a href="http://www.osk.3web.ne.jp/~nyasu/software/vrproject.html">日本語</a> / <a href="http://www.osk.3web.ne.jp/~nyasu/vruby/vrproject-e.html">English</a>)<br />
nyasuさんのページ。VisualuRubyなどがあります(ってこれもそのまんま)。WindowsでRubyを使うための<a href="http://www.osk.3web.ne.jp/~nyasu/software/rubyonwin.html">リンク集</a>が充実してます。ちなみに、当サイトのデザインはこちらのパクリです。多謝!</li>
<li>Ruby (<a href="http://www.yoshidam.net/Ruby_ja.html">日本語</a> / <a href="http://www.yoshidam.net/Ruby.html">English</a>)<br />
よしだむさんのページ。<a href="http://www.yoshidam.net/Ruby_ja.html#susie">Susieプラグインライブラリ</a><a href="http://www.yoshidam.net/Ruby_ja.html#rddraw">DirectDraw for Ruby</a>などがあります。</li>
<li><a href="http://homepage2.nifty.com/sakazuki/rde.html">RDE(Ruby Development Environment)</a> (日本語)<br />
sakazukiさんのページ。mswin32版ユーザなら必見です。推奨環境はartonさんとこのActiveScriptRubyですが (^^; ここの配布物を使っても問題なく動作します。</li>
</ul>
<p class="footer">
[<a href="../">戻る</a>]
</p>
<address>written by <a href="mailto:usa@ruby-lang.org">U.Nakamura</a></address>
<p class="versions">
ruby 1.9.0 (2004-01-13)<br />
ERb 2.0.4<br />
RDtool 0.6.11<br />
rublog 0.0.2
</p>
</body>
</html>

Просмотреть файл

@ -1,27 +1,27 @@
/
/rss
//rss
/rss/channel
//link
//image/*
//link[2]
//link[last()]
rss/channel/link[last()]
rss/channel/item/link[last()]
rss/channel/item/link[1]
rss/channel/item[@x='1']
rss/channel/item[@x]
//item[@x]
//item[normalize-space(@name)='x']
//*[count(title)=1]
//*[name()='link']
//*[starts-with(name(),'li')]
//*[contains(name(),'y')]
//*[string-length(name()) = 4]
//copyright | //title
/child::rss
/descendant::*
//language/parent::*
/rss/channel/ancestor::*
//item[position() mod 2 = 0 ]
/
/rss
//rss
/rss/channel
//link
//image/*
//link[2]
//link[last()]
rss/channel/link[last()]
rss/channel/item/link[last()]
rss/channel/item/link[1]
rss/channel/item[@x='1']
rss/channel/item[@x]
//item[@x]
//item[normalize-space(@name)='x']
//*[count(title)=1]
//*[name()='link']
//*[starts-with(name(),'li')]
//*[contains(name(),'y')]
//*[string-length(name()) = 4]
//copyright | //title
/child::rss
/descendant::*
//language/parent::*
/rss/channel/ancestor::*
//item[position() mod 2 = 0 ]
//item/ancestor::*

Просмотреть файл

@ -1,32 +1,32 @@
require 'rexml/document'
require 'test/unit'
require 'rexml/functions'
class TC_Rexml_Functions_Number < Test::Unit::TestCase
def test_functions_number_int
telem = REXML::Element.new("elem")
telem.text="9"
assert_equal(9, REXML::Functions::number(telem))
end
def test_functions_number_float
telem = REXML::Element.new("elem")
telem.text="10.4"
assert_equal(10.4, REXML::Functions::number(telem))
end
def test_functions_number_negative_int
telem = REXML::Element.new("elem")
telem.text="-9"
assert_equal(-9, REXML::Functions::number(telem))
end
def test_functions_number_negative_float
telem = REXML::Element.new("elem")
telem.text="-9.13"
assert_equal(-9.13, REXML::Functions::number(telem))
end
#def test_functions_number_scientific_notation
# telem = REXML::Element.new("elem")
# telem.text="9.13E12"
# assert_equal(9.13E12, REXML::Functions::number(telem))
#end
end
require 'rexml/document'
require 'test/unit'
require 'rexml/functions'
class TC_Rexml_Functions_Number < Test::Unit::TestCase
def test_functions_number_int
telem = REXML::Element.new("elem")
telem.text="9"
assert_equal(9, REXML::Functions::number(telem))
end
def test_functions_number_float
telem = REXML::Element.new("elem")
telem.text="10.4"
assert_equal(10.4, REXML::Functions::number(telem))
end
def test_functions_number_negative_int
telem = REXML::Element.new("elem")
telem.text="-9"
assert_equal(-9, REXML::Functions::number(telem))
end
def test_functions_number_negative_float
telem = REXML::Element.new("elem")
telem.text="-9.13"
assert_equal(-9.13, REXML::Functions::number(telem))
end
#def test_functions_number_scientific_notation
# telem = REXML::Element.new("elem")
# telem.text="9.13E12"
# assert_equal(9.13E12, REXML::Functions::number(telem))
#end
end

Просмотреть файл

@ -1,126 +1,126 @@
require 'rexml_test_utils'
require "rexml/document"
require "rexml/xpath"
# Harness to test REXML's capabilities against the test suite from Jaxen
# ryan.a.cox@gmail.com
class JaxenTester < Test::Unit::TestCase
include REXMLTestUtils
include REXML
def test_axis ; test("axis") ; end
def test_basic ; test("basic") ; end
def test_basicupdate ; test("basicupdate") ; end
def test_contents ; test("contents") ; end
def test_defaultNamespace ; test("defaultNamespace") ; end
def test_fibo ; test("fibo") ; end
def test_id ; test("id") ; end
def test_jaxen24 ; test("jaxen24") ; end
def test_lang ; test("lang") ; end
def test_message ; test("message") ; end
def test_moreover ; test("moreover") ; end
def test_much_ado ; test("much_ado") ; end
def test_namespaces ; test("namespaces") ; end
def test_nitf ; test("nitf") ; end
def test_numbers ; test("numbers") ; end
def test_pi ; test("pi") ; end
def test_pi2 ; test("pi2") ; end
def test_simple ; test("simple") ; end
def test_testNamespaces ; test("testNamespaces") ; end
def test_text ; test("text") ; end
def test_underscore ; test("underscore") ; end
def test_web ; test("web") ; end
def test_web2 ; test("web2") ; end
private
def test( fname )
# Dir.entries( xml_dir ).each { |fname|
# if fname =~ /\.xml$/
file = File.new(fixture_path(fname+".xml"))
doc = Document.new( file )
XPath.each( doc, "/tests/document" ) {|e| handleDocument(e)}
# end
# }
end
# processes a tests/document/context node
def handleContext( testDoc, ctxElement)
testCtx = XPath.match( testDoc, ctxElement.attributes["select"] )[0]
namespaces = {}
if testCtx.class == Element
testCtx.prefixes.each { |pre| handleNamespace( testCtx, pre, namespaces ) }
end
variables = {}
XPath.each( ctxElement, "@*[namespace-uri() = 'http://jaxen.org/test-harness/var']") { |attrib| handleVariable(testCtx, variables, attrib) }
XPath.each( ctxElement, "valueOf") { |e| handleValueOf(testCtx, variables, namespaces, e) }
XPath.each( ctxElement, "test[not(@exception) or (@exception != 'true') ]") { |e| handleNominalTest(testCtx,variables, namespaces, e) }
XPath.each( ctxElement, "test[@exception = 'true']") { |e| handleExceptionalTest(testCtx,variables, namespaces, e) }
end
# processes a tests/document/context/valueOf or tests/document/context/test/valueOf node
def handleValueOf(ctx,variables, namespaces, valueOfElement)
expected = valueOfElement.text
got = XPath.match( ctx, valueOfElement.attributes["select"], namespaces, variables )[0]
assert_true( (got.nil? && expected.nil?) || !got.nil? )
case got.class
when Element
assert_equal( got.class, Element )
when Attribute, Text, Comment, TrueClass, FalseClass
assert_equal( expected, got.to_s )
when Instruction
assert_equal( expected, got.content )
when Fixnum
assert_equal( exected.to_f, got )
when String
# normalize values for comparison
got = "" if got == nil or got == ""
expected = "" if expected == nil or expected == ""
assert_equal( expected, got )
else
assert_fail( "Wassup?" )
end
end
# processes a tests/document/context/test node ( where @exception is false or doesn't exist )
def handleNominalTest(ctx, variables, namespaces, testElement)
expected = testElement.attributes["count"]
got = XPath.match( ctx, testElement.attributes["select"], namespaces, variables )
# might be a test with no count attribute, but nested valueOf elements
assert( expected == got.size.to_s ) if !expected.nil?
XPath.each( testElement, "valueOf") { |e|
handleValueOf(got, variables, namespaces, e)
}
end
# processes a tests/document/context/test node ( where @exception is true )
def handleExceptionalTest(ctx, variables, namespaces, testElement)
assert_raise( Exception ) {
XPath.match( ctx, testElement.attributes["select"], namespaces, variables )
}
end
# processes a tests/document node
def handleDocument(docElement)
puts "- Processing document: #{docElement.attributes['url']}"
testFile = File.new( docElement.attributes["url"] )
testDoc = Document.new testFile
XPath.each( docElement, "context") { |e| handleContext(testDoc, e) }
end
# processes a variable definition in a namespace like <test var:foo="bar">
def handleVariable( ctx, variables, attrib )
puts "--- Found attribute: #{attrib.name}"
variables[attrib.name] = attrib.value
end
# processes a namespace definition like <test xmlns:foo="fiz:bang:bam">
def handleNamespace( ctx, prefix, namespaces )
puts "--- Found namespace: #{prefix}"
namespaces[prefix] = ctx.namespaces[prefix]
end
end
require 'rexml_test_utils'
require "rexml/document"
require "rexml/xpath"
# Harness to test REXML's capabilities against the test suite from Jaxen
# ryan.a.cox@gmail.com
class JaxenTester < Test::Unit::TestCase
include REXMLTestUtils
include REXML
def test_axis ; test("axis") ; end
def test_basic ; test("basic") ; end
def test_basicupdate ; test("basicupdate") ; end
def test_contents ; test("contents") ; end
def test_defaultNamespace ; test("defaultNamespace") ; end
def test_fibo ; test("fibo") ; end
def test_id ; test("id") ; end
def test_jaxen24 ; test("jaxen24") ; end
def test_lang ; test("lang") ; end
def test_message ; test("message") ; end
def test_moreover ; test("moreover") ; end
def test_much_ado ; test("much_ado") ; end
def test_namespaces ; test("namespaces") ; end
def test_nitf ; test("nitf") ; end
def test_numbers ; test("numbers") ; end
def test_pi ; test("pi") ; end
def test_pi2 ; test("pi2") ; end
def test_simple ; test("simple") ; end
def test_testNamespaces ; test("testNamespaces") ; end
def test_text ; test("text") ; end
def test_underscore ; test("underscore") ; end
def test_web ; test("web") ; end
def test_web2 ; test("web2") ; end
private
def test( fname )
# Dir.entries( xml_dir ).each { |fname|
# if fname =~ /\.xml$/
file = File.new(fixture_path(fname+".xml"))
doc = Document.new( file )
XPath.each( doc, "/tests/document" ) {|e| handleDocument(e)}
# end
# }
end
# processes a tests/document/context node
def handleContext( testDoc, ctxElement)
testCtx = XPath.match( testDoc, ctxElement.attributes["select"] )[0]
namespaces = {}
if testCtx.class == Element
testCtx.prefixes.each { |pre| handleNamespace( testCtx, pre, namespaces ) }
end
variables = {}
XPath.each( ctxElement, "@*[namespace-uri() = 'http://jaxen.org/test-harness/var']") { |attrib| handleVariable(testCtx, variables, attrib) }
XPath.each( ctxElement, "valueOf") { |e| handleValueOf(testCtx, variables, namespaces, e) }
XPath.each( ctxElement, "test[not(@exception) or (@exception != 'true') ]") { |e| handleNominalTest(testCtx,variables, namespaces, e) }
XPath.each( ctxElement, "test[@exception = 'true']") { |e| handleExceptionalTest(testCtx,variables, namespaces, e) }
end
# processes a tests/document/context/valueOf or tests/document/context/test/valueOf node
def handleValueOf(ctx,variables, namespaces, valueOfElement)
expected = valueOfElement.text
got = XPath.match( ctx, valueOfElement.attributes["select"], namespaces, variables )[0]
assert_true( (got.nil? && expected.nil?) || !got.nil? )
case got.class
when Element
assert_equal( got.class, Element )
when Attribute, Text, Comment, TrueClass, FalseClass
assert_equal( expected, got.to_s )
when Instruction
assert_equal( expected, got.content )
when Fixnum
assert_equal( exected.to_f, got )
when String
# normalize values for comparison
got = "" if got == nil or got == ""
expected = "" if expected == nil or expected == ""
assert_equal( expected, got )
else
assert_fail( "Wassup?" )
end
end
# processes a tests/document/context/test node ( where @exception is false or doesn't exist )
def handleNominalTest(ctx, variables, namespaces, testElement)
expected = testElement.attributes["count"]
got = XPath.match( ctx, testElement.attributes["select"], namespaces, variables )
# might be a test with no count attribute, but nested valueOf elements
assert( expected == got.size.to_s ) if !expected.nil?
XPath.each( testElement, "valueOf") { |e|
handleValueOf(got, variables, namespaces, e)
}
end
# processes a tests/document/context/test node ( where @exception is true )
def handleExceptionalTest(ctx, variables, namespaces, testElement)
assert_raise( Exception ) {
XPath.match( ctx, testElement.attributes["select"], namespaces, variables )
}
end
# processes a tests/document node
def handleDocument(docElement)
puts "- Processing document: #{docElement.attributes['url']}"
testFile = File.new( docElement.attributes["url"] )
testDoc = Document.new testFile
XPath.each( docElement, "context") { |e| handleContext(testDoc, e) }
end
# processes a variable definition in a namespace like <test var:foo="bar">
def handleVariable( ctx, variables, attrib )
puts "--- Found attribute: #{attrib.name}"
variables[attrib.name] = attrib.value
end
# processes a namespace definition like <test xmlns:foo="fiz:bang:bam">
def handleNamespace( ctx, prefix, namespaces )
puts "--- Found namespace: #{prefix}"
namespaces[prefix] = ctx.namespaces[prefix]
end
end

Просмотреть файл

@ -1,38 +1,38 @@
require "test/unit/testcase"
require "rexml/document"
class XPathAxesTester < Test::Unit::TestCase
include REXML
SOURCE = <<-EOF
<a id='1'>
<e id='2'>
<f id='3'/>
<f id='4'/>
<f id='5'/>
<f id='6'/>
</e>
</a>
EOF
def setup
@@doc = Document.new(SOURCE) unless defined? @@doc
end
def test_preceding_sibling_axis
context = XPath.first(@@doc,"/a/e/f[last()]")
assert_equal "6", context.attributes["id"]
prev = XPath.first(context, "preceding-sibling::f")
assert_equal "5", prev.attributes["id"]
prev = XPath.first(context, "preceding-sibling::f[1]")
assert_equal "5", prev.attributes["id"]
prev = XPath.first(context, "preceding-sibling::f[2]")
assert_equal "4", prev.attributes["id"]
prev = XPath.first(context, "preceding-sibling::f[3]")
assert_equal "3", prev.attributes["id"]
end
end
require "test/unit/testcase"
require "rexml/document"
class XPathAxesTester < Test::Unit::TestCase
include REXML
SOURCE = <<-EOF
<a id='1'>
<e id='2'>
<f id='3'/>
<f id='4'/>
<f id='5'/>
<f id='6'/>
</e>
</a>
EOF
def setup
@@doc = Document.new(SOURCE) unless defined? @@doc
end
def test_preceding_sibling_axis
context = XPath.first(@@doc,"/a/e/f[last()]")
assert_equal "6", context.attributes["id"]
prev = XPath.first(context, "preceding-sibling::f")
assert_equal "5", prev.attributes["id"]
prev = XPath.first(context, "preceding-sibling::f[1]")
assert_equal "5", prev.attributes["id"]
prev = XPath.first(context, "preceding-sibling::f[2]")
assert_equal "4", prev.attributes["id"]
prev = XPath.first(context, "preceding-sibling::f[3]")
assert_equal "3", prev.attributes["id"]
end
end