投稿者 okkez
2011-07-20 16:21:00 GMT
[ruby-list:48219] から始まるスレッドを見て久しぶりに更新してみることにしたら、まだできない。
今晩は諦めて寝てしまうかもしれないので doc.okkez.net/search/ のは止まるかもしれません。
okkez.net が止まっている間は以下のどちらかを利用してください。
- http://doc.ruby-lang.org/ja/search/
- http://rurema.clear-code.com/
doc.okkez.net は更新できたっぽいです。(追記)
カテゴリ Ruby, 雑記 | タグ るりま | コメントなし | トラックバックなし
投稿者 okkez
2010-10-07 08:36:00 GMT
以下のようなコードを .git/hooks/pre-commit として保存し、実行できるようにしておくと、
コミット前にコミットしようとしているファイルの文字コードをチェックできる。
これは、るりまでときどき UTF-8 なファイルをコミットしてしまうので作った。
#!/bin/sh
flag=0
for f in $(git diff --cached --name-only);do
if [[ `nkf -g ${f}` = 'UTF-8' ]];then
flag=1
echo "${f} is UTF-8"
fi
done
if [ $flag -eq 1 ];then
exit 1
fi
exit 0
追記
バズ経由で @no6v にコメントもらった。
曰く「nkf 呼びすぎだぉ」
#!/bin/sh
if nkf -g $(git diff --cached --name-only) /dev/null | grep :UTF-8$; then exit 1; fi
カテゴリ 雑記 | タグ るりま | コメントなし | トラックバックなし
投稿者 okkez
2010-04-10 02:27:00 GMT
Ruby reference manual (beta) の BitClust 版にコメント機能が付きました。
デザインとかちゃんと出来てないけど、動くようになっているので「一言、言いたいけどチケットを起票するのはちょっと。。。」という人はコメントしてみてください。
カテゴリ Ruby, 雑記 | タグ るりま | コメントなし | トラックバックなし
投稿者 okkez
2009-12-18 13:32:00 GMT
この記事は Ruby Advent Calendar jp: 2009 : ATND の 18 日目です。前日は @tad さん でした。
愛用しているものの一つに るりま があります。
みなさんはもうお使いですか?
まだの人は以下の説明を読んでぜひ使ってみてください。
利用方法はいくつかあるので順番に紹介していきます。
web ブラウザを使って見る方法
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/ にも同じものを置かせていただいています。
ダウンロードしたアーカイブを使用する方法
- http://www.ruby-lang.org/ja/man/archive/
- http://doc.okkez.net/archives/
どちらかから、ダウンロードしたアーカイブを適当な場所に展開します。
アーカイブの中には以下のようなものがあります。
- bitclust/ ライブラリ
- db-1_8_7/ Ruby1.8.7 向けのデータベース
- db-1_9_1/ Ruby1.9.1 向けのデータベース
- readme.html このアーカイブの説明
- refe-1_8_7 Ruby1.8.7向けの refe
- refe-1_8_7.cmd Windows 用の Ruby1.8.7 向けの refe
- refe-1_9_1 Ruby1.9.1 向けの refe
- refe-1_9_1.cmd Windows 用の Ruby1.9.1 向けの refe
- server.exe Windows 用の実行ファイル
- server.exy server.exe を作るための exerb のレシピファイル
- server.rb *nix などで使用するスクリプト
データベースというのは、指定したバージョン向けに前処理を施したテキストファイル群のことです。
このディレクトリにパスを通して使うのが一番簡単ですが、適当なスクリプトを書いたりするのもいいでしょう。例えば、以下のような感じで書くといいのではないでしょうか。
#! /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 ファイルを使う方法
- http://www.ruby-lang.org/ja/man/archive/
- http://doc.okkez.net/archives/
先ほどと同様に、ダウンロードします。 chm はバージョン別になっているので自分が使いたい方をダウンロードすればいいでしょう。1.8.7, 1.9.1 以外のバージョンを使いたい人は、自分で chm ファイルを作るといいでしょう。(ここでは説明しません)
Windows Vista 以降の人は、ダウンロードしたファイルをダブルクリックしたときに出てくる警告ダイアログのチェックボックスを外すとちゃんと見られるはずです。
Windows を使っていない人はそれぞれ自分の好きな chm viewer をインストールして使ってください。意外と色々あります。
まとめ
個人的におすすめなのはコマンドラインから使用する refe です。すごく速いです。
とりあえず使ってみてください。古いリファレンスには書いていないこともたくさん書いてあります。
足りない部分はありますが、古いリファレンスよりはかなり進化しています。使わないと損です。
そして、使ってフィードバックをください。みなさんのご協力をお待ちしています。
明日は、たこ焼き仮面の中の人ではないかと噂されているあの人が書きます!
カテゴリ Ruby | タグ るりま, Ruby | コメントなし | トラックバックなし
投稿者 okkez
2009-03-15 07:32:00 GMT
doc.okkez.net のバックエンドを更新しました。
今回の更新内容は以下のとおり。
- 以前、znz さんが Rack 対応にしてくれたのでそれを使用して Rack 対応にしてみました。
- AP サーバは Mongrel 一個
- 静的なファイルは nginx から返すようにしたつもり。(といっても CSS くらいしか無いですが。。。)
速くなってるといいんですが、遅いようなら thin cluster か mongrel cluster にしてみる予定。
カテゴリ Ruby, Debian | タグ るりま, Debian | コメントなし | トラックバックなし
投稿者 okkez
2008-12-15 11:32:00 GMT
$ svn log -r{2008-12-01}:{2008-12-16} -q | grep okkez |wc -l
71
我ながらなかなか頑張ってる。
- RubyGems 一通り書いた。けどまだ書いてないメソッドエントリがあるし説明不足。todo タグも消してない。
- Rake 一通り書いた。todo タグを消してない。
- minitest 書き始めた。意外と量が少ない模様。
最新ドキュメントは http://doc.okkez.net/ から (毎日 01:00 ころ更新予定)
うまく行けば今週中に上記三つを完了させられるかもしれない。
カテゴリ Ruby | タグ るりま | コメントなし | トラックバックなし
投稿者 okkez
2008-10-30 15:31:00 GMT
nginx と webrick を使用してるりまを公開しているので手順と使っているスクリプトを公開しときます。
nginx の設定は以下。
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 までの設定がありますが略
}
以下の点に注意します。
- location /archives は月次リリースのファイル置き場です
- location /180 は Ruby1.8.0 用のパスです
- location は バージョン番号からドットを取り除いたもの
- proxy_pass の最後に指定しているポート番号は 8000 + 上で作成した数値
webrick 起動スクリプト
書いてあるとおりなんですが、ポイントは以下。
- DB の作成場所などを工夫してパラメタライズしやすくした
- –baseurl オプションを指定すると CGI で作成されるパスがそのパスを起点にしたパスになる
- バインドされる IP アドレスは localhost なので安全
- port は nginx の設定で使用したものを使う
#!/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
こんな感じです。
DB を全て再作成するスクリプト
#!/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 で書いてみた。
cron に登録してるスクリプト
- このスクリプトが動いている間はメンテナンス中の画面になるようにあらかじめ nginx にも設定しておく
- あとは上で作ったスクリプトの組み合わせ
- メンテ中でも archives 以下はアクセス可能
#!/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 個も起動しているのがちょっとダサいところなんですが、まあメモリもたくさん積んでいるのでいいのかな、と。
もっといいやり方があったら教えていただけるとうれしいです。
カテゴリ Ruby, Debian | タグ るりま, nginx | コメントなし | トラックバックなし
投稿者 okkez
2008-10-12 00:05:00 GMT
試しに見てみるサーバ。
#!/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
こんな感じです。
カテゴリ Ruby | タグ るりま, Ruby | コメントなし | トラックバックなし
投稿者 okkez
2008-09-25 05:29:00 GMT
るりまで RubyGems のドキュメントを書いてます。
あと 23 ファイルで一通り終わります。
まだ、内容の精査は必要なのだけど、 RubyGems のリファレンスが日本語で読めるのはるりまだけ!(と思いたい)
カテゴリ Ruby | タグ るりま | 2 comments | トラックバックなし
投稿者 okkez
2008-06-12 07:52:00 GMT
羊堂本舗 脳ざらし紀行 (2008-06-11)
sheepmanさん++
俺も、1.8.7対応頑張ろう。まだ 1/3 も出来てない。
Ruby reference manual (beta)
カテゴリ Ruby | タグ るりま, Ruby | コメントなし | トラックバックなし