[#42851] Object#define_singleton_method がない?? — take_tk <ggb03124@...>

たけ(tk)です

14 messages 2006/10/06
[#42852] Re: Object#define_singleton_method がない?? — Yukihiro Matsumoto <matz@...> 2006/10/06

まつもと ゆきひろです

[#42853] Re: Object#define_singleton_method がない?? — take_tk <ggb03124@...> 2006/10/06

たけ(tk)です。

[#42870] system の実行タイミングのトラブル — "Hideo Konami" <konami@...>

小波です。

18 messages 2006/10/14
[#42874] Re: system の実行タイミングのトラブル — "Hideo Konami" <konami@...> 2006/10/14

小波です。

[#42876] Re: system の実行タイミングのトラブル — cuzic <cuzic@...> 2006/10/14

cuzic です。

[#42885] apt-listbugs: soap4r での悩み — Junichi Uekawa <dancer@...>

ruby-list のみなさま、

21 messages 2006/10/16
[#42891] Re: apt-listbugs: soap4r での悩み — "NAKAMURA, Hiroshi" <nakahiro@...> 2006/10/17

-----BEGIN PGP SIGNED MESSAGE-----

[#42892] Re: apt-listbugs: soap4r での悩み — Junichi Uekawa <dancer@...> 2006/10/17

こんにちは、

[#42896] Re: apt-listbugs: soap4r での悩み — "NAKAMURA, Hiroshi" <nakahiro@...> 2006/10/17

-----BEGIN PGP SIGNED MESSAGE-----

[#42929] Re: 括弧なしsuperで引数が引き継がれない — "U.Nakamura" <usa@...>

こんにちは、なかむら(う)です。

17 messages 2006/10/31
[#42930] Re: 括弧なしsuperで引数が引き継がれない — "U.Nakamura" <usa@...> 2006/10/31

こんにちは、なかむら(う)です。

[#42931] instant rails インストール! irbを起動するには? — "Uema Tsuyoshi" <mugenkai15@...> 2006/10/31

上間といいます。

[#42933] Re: instant rails インストール! irbを起動するには? — "きむらこういち" <hogemuta@...> 2006/10/31

木村です。

[#42937] Re: instant rails インストール! irbを起動するには? — "Uema Tsuyoshi" <mugenkai15@...> 2006/10/31

上間です。

[ruby-list:42876] Re: system の実行タイミングのトラブル

From: cuzic <cuzic@...>
Date: 2006-10-14 22:34:20 UTC
List: ruby-list #42876
cuzic です。

Ruby にはデストラクタがないので、イニシャライザで行った前処理に対応する
後処理をクラスのどこに書けばよいのかよく
悩みますよね。

簡単な方法として at_exit を使って、プログラム終了時に後処理を行うというテクニックがあります。
ただ、途中でGCされたときとかに面倒になりそうなので
意味なくグローバル変数に登録してみたりとかしています。
本当にグローバル変数的に使いたいときはこの方法はオススメですね。

状況によっては、Net::HTTP.start のように、クラスメソッドとして
ブロックを引数にとるメソッドを容易する方法を用います。
この方法は rubikitch さんが紹介した方法かな。
使える場合も多いのですが、singleton なクラスの場合
とかでグローバル変数的に使いたい場合には向きません。

最後に ObjectSpace.define_finalizer を用いる方法があります。
これはドキュメントにも書かれていますが、使い方が難しい方法です。
http://www.ruby-lang.org/ja/man/?cmd=view;name=ObjectSpace

しかしながら、一番美しい方法です。
それに小難しいことをやっている気分にひたれるというメリットも
あります。

でわでわ。

06/10/14 に Hideo Konami<konami@kyoto-wu.ac.jp> さんは書きました:
> 小波です。
>
> --- "rubikitch" <rubikitch@ruby-lang.org> ---
>
> >あらま、ちゃんとブロックを使わなくちゃ:-)
>
> ついでということで質問させてください。このプログラムでは,
>
> class Postscript
>  def initalize(psfile)
>     @ps = psfile
>     File.open(@ps)
>     @ps.puts EPS_HEADER
>  end
>  def set_color(hogehoge)
>    honyarara
>    @ps.puts "#{r} #{g} #{b} setrgbcolor"
>  end
> end
>
> などといったクラスを定義しています。しかしこれだと
>
> Postscript.open(file) do |ps|
>  ps.set_color('red')
>  ...
> end
>
> というふうには書けそうもないので,クローズ忘れという
> どじが発生してしまうわけです。うまいやり方はないものでしょ
> うか。
>
>
>
>
>
>
>

In This Thread