ruby-reference-manual:217
From: okkez <okkez000@g...>
Date: Sun, 3 Dec 2006 23:42:29 +0900
Subject: [ruby-reference-manual:217] version範囲の指定について
こんばんは。
okkezです。
先日、少し話題に出ましたが、あるメソッドが存在するversion範囲の指定方法で困っています。
delgete の SimpleDelegetor#clone と SimpleDelegator#dup が 1.8.2 から 1.8.6
でしか存在しません。
~/ruby/rubydoc/refm/api$ bc-methods -rdelegate SimpleDelegator
180 181 182 182 183 184 185 185 190
SimpleDelegator#__getobj__ o o o o o o o o o
SimpleDelegator#__setobj__ o o o o o o o o o
SimpleDelegator#clone - - o o o o o o -
SimpleDelegator#dup - - o o o o o o -
#@since 1.8.2
#@if (version <= "1.8.6")
--- clone
--- dup
#@end
#@end
のように書けば、目的は果たせそうですが、いかがでしょう。
# 1.8系のみを意識すればいいのであれば上記の#@if 〜は不要ですが、
# 1.9系の記述も入れようと思うと、今は上記のようにするしかないと思います。
個人的にはあまり美しくないと思うので、なんとかして欲しいところです。
例えば以下のような記法はどうでしょうか。
#@ver 1.8.2, 1.8.6 #=> version 1.8.2から1.8.6まで存在する(1.8.2と1.8.6は含む)
#@end
上記の記法を採用した場合、1.8系の新しい版が出るたびに毎回第二引数をほぼすべて書き直さなければならなくなるという問題が考えられます。それではあまりに大変なので、1.8HEADのような定数を導入するのはどうでしょう。
意味は、1.8系のtrunkの最新版という感じで。
または1.8LASTのような感じで1.8系のリリース最新版という意味を表すなど。
# まあ、最初から1.8.9って書いておけばいいような気もします。
以上です。よろしくお願いします。
--
okkez
okkez000@g...
--
ML: ruby-reference-manual@m...
使い方: http://QuickML.com/