[ruby-dev:28109] Kernel#fail

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

[ruby-dev:28109] Kernel#fail

URABE Shyouhei aka. mput
さすがにもう誰も使ってないのではないかと思います。Kernel#failは廃止にし
ませんか。とりあえず1.8.5から警告が出ることを希望します。

Reply | Threaded
Open this post in threaded view
|

[ruby-dev:28112] Re: Kernel#fail

Kazuhiro NISHIYAMA
西山和広です。

>>> Sat, 24 Dec 2005 14:03:32 +0900 の刻に
>>> [hidden email]("URABE Shyouhei aka. mput") 氏曰く
> さすがにもう誰も使ってないのではないかと思います。Kernel#failは廃止にし
> ませんか。とりあえず1.8.5から警告が出ることを希望します。

lib/cgi/session/pstore.rb,lib/thread.rb,lib/sync.rbなどで
使われているようです。


--
|ZnZ(ゼット エヌ ゼット)
|西山和広(Kazuhiro NISHIYAMA)

Reply | Threaded
Open this post in threaded view
|

[ruby-dev:28117] Re: Kernel#fail

URABE Shyouhei aka. mput
卜部です。

Kazuhiro NISHIYAMA wrote:

>>さすがにもう誰も使ってないのではないかと思います。Kernel#failは廃止にし
>>ませんか。とりあえず1.8.5から警告が出ることを希望します。
>>    
>>
>
>lib/cgi/session/pstore.rb,lib/thread.rb,lib/sync.rbなどで
>使われているようです。
>  
>
そりゃ積極的に使うなと啓蒙しないかぎりfailを使ってる「コード」は残るで
しょうよ。そうじゃなくて、いまでもコードを書く際にfailを使ってる「人」が
いないだろうという話です。だから、既存のコードからもfailを撲滅するために
とりあえず警告出しませんか? という提案なのですが。

Reply | Threaded
Open this post in threaded view
|

[ruby-dev:28119] Re: Kernel#fail

Hidetoshi NAGAI
永井@知能.九工大です.

From: "URABE Shyouhei aka. mput" <[hidden email]>
Subject: [ruby-dev:28117] Re: Kernel#fail
Date: Sat, 24 Dec 2005 23:37:00 +0900
Message-ID: <[hidden email]>
> そりゃ積極的に使うなと啓蒙しないかぎりfailを使ってる「コード」は残るで
> しょうよ。そうじゃなくて、いまでもコードを書く際にfailを使ってる「人」が
> いないだろうという話です。だから、既存のコードからもfailを撲滅するために
> とりあえず警告出しませんか? という提案なのですが。

撲滅しなければならないほどに,Kernel#fail は邪魔なのですか?

Ruby/Tk では,理由があって積極的に使っています.
ウィジェットやキャンバスアイテムの重なり順を変更するための
メソッド名として raise, lower が使われているためです.
ですので,ウィジェット等のインスタンスメソッドを記述する際には
間違えにくいようにあえて fail で書くようにしています.
毎回 Kernel.raise と書くのは冗長で鬱陶しいですし,
ちょっと油断してレシーバを書き忘れてしまうのも嫌でしたので.

# ウィジェットの new メソッドに与えるブロックは instance_eval で
# 評価されますので,その中で例外を使おうとすると同じ問題に遭遇します.

というわけで,Kernel#fail が無くなると面倒なことになるのですが...

# raise/lower は大昔から使われており
# (私が関わり始めた時点でもすでに存在していたような...),
# 今更それらを使うなというのは大きすぎる変更ですので
# ご勘弁願います.
--
                                       永井 秀利 (九工大 知能情報)
                                           [hidden email]


Reply | Threaded
Open this post in threaded view
|

[ruby-dev:28120] Re: Kernel#fail

URABE Shyouhei aka. mput
卜部です。

Hidetoshi NAGAI wrote:

>Ruby/Tk では,理由があって積極的に使っています.
>ウィジェットやキャンバスアイテムの重なり順を変更するための
>メソッド名として raise, lower が使われているためです.
>ですので,ウィジェット等のインスタンスメソッドを記述する際には
>間違えにくいようにあえて fail で書くようにしています.
>  
>
ふむ。そのような理由があるとは。

使用している人がいるということなので廃止すべきという提案は取り下げます。

>というわけで,Kernel#fail が無くなると面倒なことになるのですが...
>  
>

仮にKernel#raiseしか存在しなかったとしても

class TkKernel
  define_method(:fail, Kernel.instance_method(:raise))
end

などとして自分のクラスに適当な名前で移植してくることは可能でしょう(拡張
ライブラリの場合rb_f_raise()相当品を自力実装しなきゃいけないので若干面倒
ですが)。