history

青木日記 RSS

<前の日 | この月 | 次の日>

2006-08-30

Ruby リファレンスマニュアル刷新計画 (8) 記述フォーマット

記述フォーマットに、既存の RD をそのまま使うつもりは全くない。 なんでかってーと ((<...>)) とか (({...})) とかが激しくウザいので。 こいつらを一掃する機会を俺は虎視眈々と狙っていたのだ。

例えば HTML の var に相当する ((|...|))。 今はこれを手でつけてるけど、こんなん全部自動化できる。 HTML の code に当たる (({...})) も 99% は自動で付けられる。 むしろ「code で囲まない」タグを用意したほうが効率がいいだろう。 この二つは変換も自動でできるので楽だ。

URL の構造が変わるので ((<...>)) はどっちにしろ人間による変更が必要。 記法は WikiName ちっくに [[tag:arg]] とするかな。

メソッドシグネチャの記述もこれまでより厳しく統一する。 なお、今回のフォーマットだと 「== class クラス」「== module クラス」の中では クラス名があらかじめわかってるので、 「--- concat(str)」でよい。 「--- String#concat(str)」と書く必要はない。 括弧は省略禁止。

二項演算子は「self + other」

単項演算子は「+self」「~self」

aref は「self[a, b]」、 aset は「self[a, b] = rhs」。

省略可能引数 (param = optval) とリスト引数 (*param) の扱いが問題だ。 いまは「(a[, b])」のように書いてあるけど、これってわかりやすいかねえ。 いっそ Ruby プログラムと同じにしてしまったほうが楽じゃないだろうか。 いまの形式ってパースも面倒だし (表記はツール側で変換するという手もある)。

Ruby のバージョンによって記述が違うときは、 専用プリプロセッサを使って次のように書く。

#@if(version >= "1.8.0")
Ruby 1.8.0 では……
#@end

単に「#if」「#end」を使わないのは、 ソースコードリスト中に現れる可能性が高いため。

(05:55)

svn or svn+ssh

公開するときのプロトコルを svn にするか svn+ssh にするかで悩む。

まあ、svn+ssh のが安全は安全だよな。 しかし、どーせ公開するもんをいじるんだから カジュアルに svn でいいような気もする。

Windows からだと、どーなんすかね。 svn+ssh でも面倒ではないのかな。 とりあえず svn+ssh 環境を自分のところで作ってみるか。

(07:03)

Ruby リファレンスマニュアル計画 (9)

あ、そうか。 メソッドの記述はもっと Ruby に近付けてしまおう。

--- m(params)
--- m!(params)
--- m?(params)
--- m=(params)
--- [](params)
--- []=(params)
--- +(params)
--- *(params)
--- +@(params)
--- ~(params)

これならパースをしくじることもないし。

(10:58)

Ruby リファレンスマニュアル計画 (10)

alias とメソッド追加とメソッド置き換えの存在が激しくめどい

(19:08)

本日のツッコミ(全7件) [ツッコミを入れる]
zunda (2006-08-30 08:19)

Tortoise SVNとpageant.exe (PuTTY)の組み合わせは一度鍵対を作っちゃえば十分便利ですよ。

znz (2006-08-30 22:48)

String#[]のようなものはどうするのでしょうか?
省略可能引数というものでもないし。
RDocのように複数行並べて1つにまとめる?

青木 (2006-08-31 15:11)

Windows でも大丈夫なんですね。
それじゃ素直に svn+ssh にしましょうか。

青木 (2006-08-31 15:12)

パースの時点で一つにまとめます。
それくらいは ReFe でもすでにやってるので、同じですね。

ささだ (2006-08-31 18:57)

https は?

青木 (2006-08-31 20:02)

なんでか知らないけど apxs (のパッケージ) が入れられない。
ので mod_dav_svn がビルドできない。ので無理。

ささだ (2006-08-31 21:19)

うへぇ。atdot.net 使う?

名前
メールアドレス

<前の日 | この月 | 次の日>
2002|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|04|05|06|09|10|
2009|07|
2010|09|

Copyright (c) 2002-2007 青木峰郎 / Minero Aoki. All rights reserved. LIRS