Ruby言語やLinuxのネタが多いです。
November 10, 2002
■ [Misc] 電源が死亡
今日、パソコン使ってたら、いきなり何の前触れもなく、「ブチッ」という不気味な音とともに電源が落ち、ウンともスンとも言わなくなってしまった。
電源のファンが完全に回らなくなってしかもかなり熱くなっていたので、おそらく電源がいかれたんだろう...とあたりをつけて、急遽ツクモ下北沢店で新しい電源を購入し、マシンにつけてみたところ無事、復旧....よかった〜。もしかしたら一緒に別のパーツも死んでるかもしれないと思ってたので、被害が電源だけで済んでホント良かった。
■ ちなみに電源はちょっと奮発して高めなのを購入。JustyのPOWER MASTER series(HEC-425VD-T)というやつ。真静音とか書いてあるので静かなんだろうなぁと思ってたけどあまり変わらなかった。ま、いいけどね。
#これは電源以外が相変わらずうるさいからと言うこと。電源が静かになったのかどうかはちと不明。一応、念のため(^^;)。
November 10, 2003
■ [Ruby] wxrbbr
いよいよwxRubyも実用段階に入ったということか。Ruby-GNOME2 Projectをメンテナンスしている身としては、RubyでGUIプログラミングする人はみんなRuby-GNOME2を使ってくれればどんなに良いだろうと思ってるんだけど、Ruby界(?)としてみると他のGUI Toolkitが出て来るというのは良いことだろう。ライバル出現でオレのモチベーションもあがるかもしれんし...って今以上は無理か(-o-;)。
RubyCocoa版。ドキュメント表示部分がきれい。kimura wataruさん作。
■ たぶん、これで全部だと思うんだけど、他にあります?
November 10, 2007
November 10, 2008
■ [Ruby] to_s, to_str, inspect
またしても違いに悩んでしまったのでメモ。Ruby 1.9.0 リファレンスマニュアルから。
- Object#inspect - オブジェクトを人間が読める形式に変換した文字列を返す。
組み込み関数 Kernel.#p は、このメソッドの結果を使用してオブジェクトを表示する。 - Object#to_s - オブジェクトの文字列表現。
Kernel.#print や Kernel.#sprintf は文字列以外のオブジェクトが引数に渡された場合このメソッドを使って文字列に変換する。 - to_str - 暗黙の変換用。
では、暗黙の変換とは・・・。うーん、難しい。そのサブクラスが「文字列が使われるすべての場面で代置可能であるような、文字列そのものとみなせるようなものという厳しいもの」との説明。
実験。
class Test
def to_s; "to_s"; end
def to_str; "to_str"; end
def inspect; "inspect"; end
end
t = Test.new
p t #=> inspect
puts t #=> to_s
puts "result = #{t}" #=> to_s
puts "result = " + t #=> to_str
to_sとinspectはいいんだけど、to_strがとても難しい。まつもとさんの説明では、「Stringと類似のメソッド集合を持たないオブジェクトはto_strを定義するべきではない」ということで、実際、Pathname#to_strが削除されているし、CSVの例では、to_strを使う場合は、そのクラス自身がStringとほぼ同じAPIを持つべしということでStringへのDelegateが推奨されている。
今、作っているクラスは、to_strがあるととてもうれしい(上の例で、to_strがないと最後の行だけ失敗するのはちょっと気持ち悪い)のだけど、そこはあえてto_sするか、"#{t}"形式を使うようにするか、としないといけないってことなのかなぁ。
