now can add your comment to doc.okkez.net
投稿者 okkez
Ruby reference manual (beta) の BitClust 版にコメント機能が付きました。
デザインとかちゃんと出来てないけど、動くようになっているので「一言、言いたいけどチケットを起票するのはちょっと。。。」という人はコメントしてみてください。
投稿者 okkez
Ruby reference manual (beta) の BitClust 版にコメント機能が付きました。
デザインとかちゃんと出来てないけど、動くようになっているので「一言、言いたいけどチケットを起票するのはちょっと。。。」という人はコメントしてみてください。
投稿者 okkez
この記事は Ruby Advent Calendar jp: 2009 : ATND の 18 日目です。前日は @tad さん でした。
愛用しているものの一つに るりま があります。 みなさんはもうお使いですか?
まだの人は以下の説明を読んでぜひ使ってみてください。
利用方法はいくつかあるので順番に紹介していきます。
http://doc.okkez.net/ にアクセスします。3 カラムになっていて左から順番に、BitClust, Static HTML, Download となっています。BitClust はるりまプロジェクトで作ったリファレンスマニュアルを見るためのウェブアプリケーションです。 doc.okkez.net では nginx + thin で動かしています。nginx がキャッシュするようにしているのでまあまあの速さで動くと思います。
Static HTML はあらかじめプログラムで生成した HTML ファイルを置いています。ウェブアプリケーション版とは少しレイアウトが異なりますが内容は同じです。参照したいクラスやメソッドが既に決まっている場合に使うと高速に参照することができます。ウェブブラウザのページ内検索機能を使用すると快適に閲覧できるでしょう。
Download は月一回肉の日(毎月29日)に作成したスナップショットを置いています。http://www.ruby-lang.org/ja/man/archive/ にも同じものを置かせていただいています。
どちらかから、ダウンロードしたアーカイブを適当な場所に展開します。 アーカイブの中には以下のようなものがあります。
データベースというのは、指定したバージョン向けに前処理を施したテキストファイル群のことです。
このディレクトリにパスを通して使うのが一番簡単ですが、適当なスクリプトを書いたりするのもいいでしょう。例えば、以下のような感じで書くといいのではないでしょうか。
#! /bin/sh
DOC_BASE=$HOME/ruby-refm
exec ruby -Ke -I $DOC_BASE/bitclust/lib bitclust/bin/refe.rb -d $DOC_BASE/db-1_8_7 "$@"Windows な人は *.cmd を参考にしてバッチファイルを書くといいのではないでしょうか。
また server.exe というファイルがありますが、Windows を使っている人はこれをダブルクリックすると、ローカルで web server が起動して、自動的にウェブブラウザが起動してリファレンスマニュアルを表示します。ローカルで動いているのでネットワークにつながっていないときでも使用できます。
先ほどと同様に、ダウンロードします。 chm はバージョン別になっているので自分が使いたい方をダウンロードすればいいでしょう。1.8.7, 1.9.1 以外のバージョンを使いたい人は、自分で chm ファイルを作るといいでしょう。(ここでは説明しません)
Windows Vista 以降の人は、ダウンロードしたファイルをダブルクリックしたときに出てくる警告ダイアログのチェックボックスを外すとちゃんと見られるはずです。
Windows を使っていない人はそれぞれ自分の好きな chm viewer をインストールして使ってください。意外と色々あります。
個人的におすすめなのはコマンドラインから使用する refe です。すごく速いです。 とりあえず使ってみてください。古いリファレンスには書いていないこともたくさん書いてあります。 足りない部分はありますが、古いリファレンスよりはかなり進化しています。使わないと損です。 そして、使ってフィードバックをください。みなさんのご協力をお待ちしています。
明日は、たこ焼き仮面の中の人ではないかと噂されているあの人が書きます!
投稿者 okkez
doc.okkez.net のバックエンドを更新しました。 今回の更新内容は以下のとおり。
速くなってるといいんですが、遅いようなら thin cluster か mongrel cluster にしてみる予定。
投稿者 okkez
$ svn log -r{2008-12-01}:{2008-12-16} -q | grep okkez |wc -l
71我ながらなかなか頑張ってる。
最新ドキュメントは http://doc.okkez.net/ から (毎日 01:00 ころ更新予定)
うまく行けば今週中に上記三つを完了させられるかもしれない。
投稿者 okkez
nginx と webrick を使用してるりまを公開しているので手順と使っているスクリプトを公開しときます。
Debian 風に設定ファイルが分かれているのでそれ以外の人は適当に想像して読み替えてください。
server {
listen 80;
server_name doc.okkez.net;
access_log /var/log/nginx/doc.okkez.net-access.log combined;
root /var/www/doc.okkez.net;
index index.html;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
#proxy_redirect off;
location / {
root /var/www/doc.okkez.net;
index index.html;
}
location /archives {
autoindex on;
}
location /180 {
include maintenance;
proxy_pass http://localhost:8180;
break;
}
# ... 180 から 191 までの設定がありますが略
}以下の点に注意します。
書いてあるとおりなんですが、ポイントは以下。
#!/bin/sh
DB_BASE=$HOME/ruby/rubydoc/refm/api
BITCLUST_DIR=$HOME/ruby/bitclust
for v in 180 181 182 183 184 185 186 187 188 191
do
ruby ${BITCLUST_DIR}/standalone.rb \
--baseurl=http://doc.okkez.net/${v} \
--port=8${v} \
--pid-file=${DB_BASE}/pids/standalone-${v}.pid \
--database=${DB_BASE}/db${v}
doneこんな感じです。
#!/usr/bin/ruby
BITCLUST = '/home/xxxx/bin/bitclust'
VERSIONS = %w[
1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8
1.9.1
]
REF_BASE='/home/xxxx/ruby/rubydoc/refm/api'
def setup_db(version)
db = "#{REF_BASE}/db#{version.gsub(/\./, '')}"
`rm -rf #{db}`
`#{BITCLUST} -d #{db} init version=#{version} encoding=euc-jp`
`#{BITCLUST} -d #{db} update --stdlibtree=#{REF_BASE}/src`
puts "#{version} is done"
end
system "svn up -q #{REF_BASE}"
VERSIONS.reverse_each do |version|
setup_db(version)
endなんとなく Ruby で書いてみた。
#!/bin/sh
DOC_BASE=/var/www/doc.okkez.net
mv ${DOC_BASE}/system/maintenance.html.no ${DOC_BASE}/system/maitenance.html
for f in $(find $HOME/ruby/rubydoc/refm/api/pids -name '*.pid' -print)
do
kill $(cat ${f})
done
$HOME/bin/bc-setup-all
$HOME/bin/bc-view-all
mv ${DOC_BASE}/system/maintenance.html ${DOC_BASE}/system/maitenance.html.no
こんな感じです。
webrick を 10 個も起動しているのがちょっとダサいところなんですが、まあメモリもたくさん積んでいるのでいいのかな、と。
もっといいやり方があったら教えていただけるとうれしいです。
投稿者 okkez
試しに見てみるサーバ。
#!/bin/sh
cd $HOME/ruby/rubydoc/refm/api
ruby $HOME/ruby/bitclust/standalone.rb \
--baseurl=http://localhost:10088 \
--port=10088 \
--database=./db \
--debugるりまの DB をコンパイルする。
#!/bin/sh
VERSION=${1:-'1.8.7'}
cd $HOME/ruby/rubydoc/refm/api
rm -rf ./db
bitclust -d ./db init version=$VERSION encoding=euc-jp
bitclust -d ./db update --stdlibtree=src全てのバージョン。
#!/usr/bin/ruby
BITCLUST = '/home/kenji/bin/bitclust'
VERSIONS = %w[
1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7
1.9.0
]
REF_BASE='/home/kenji/ruby/rubydoc/refm/api'
def setup_db(version)
db = "#{REF_BASE}/db#{version}"
`rm -rf #{db}`
`#{BITCLUST} -d #{db} init version=#{version} encoding=euc-jp`
`#{BITCLUST} -d #{db} update --stdlibtree=#{REF_BASE}/src`
puts "#{version} is done"
end
system "svn up -q #{REF_BASE}"
VERSIONS.reverse_each do |version|
setup_db(version)
endこんな感じです。
投稿者 okkez
るりまで RubyGems のドキュメントを書いてます。
あと 23 ファイルで一通り終わります。 まだ、内容の精査は必要なのだけど、 RubyGems のリファレンスが日本語で読めるのはるりまだけ!(と思いたい)
投稿者 okkez
Rubyの各バージョンに対応させてコンパイルしたるりまをwebから見えるようにした。
http://doc.okkez.net/
一日一回更新するようにしてある。
るりま自体は CGI で動かしているので反応が遅いけど気にしないでください。
投稿者 okkez
もう少しで 1.8.6 向けの組込みライブラリのレビューが完了する。 これで4/29リリースの目標は達成できた。 あと少しだけタスクが残っているのでこの週末で片付けよう。
これが終わったら、1.8.7に合わせて修正していく作業がある。