タグ

ブックマーク / ruby-trunk-changes.hatenablog.com (2)

  • あなたならどう書く - 可変個のネストしたブロックつきメソッドの呼び出し - ruby trunk changes

    Ruby では Dir.chdir とか Kernel#open, Mutex#synchronize のように、ブロックを渡してそのブロックの呼び出しの前後に準備/後片付けの処理で挟むためのメソッドというのがありますね。ブロックから抜けると自動的に後始末をしてくれるので便利です。 ブロックの中でそのようなメソッドをネストさせることもできます。 @mutex.synchronize do open(file) do ... end end そこで複数のオブジェクトについてそのようなブロックつきメソッドをネストさせて呼びだしたい、しかもオブジェクトの数は可変個(たとえば配列に入ってくる)にしたいという時にどう書くのか考えてみました。思ったよりも難しかったです。 class A def initialize(n) @n = n end def guard(&blk) begin p [:bef

    あなたならどう書く - 可変個のネストしたブロックつきメソッドの呼び出し - ruby trunk changes
  • Ruby 1.9.1 への移行挑戦の記録 - ruby trunk changes

    ということで久しぶりに trunk のソースツリーを svn up。というところで、そういえば 1.9.1 の release candidate 2 のリリースがアナウンスされていたなとふと思い出したので、仕事のプロダクトが 1.9 でどの程度動くかまた挑戦してみることにしました。半年前くらいに挑戦した時は確か Thread.critical に依存しているところがあってすぐに動かせなかったのですが、そのコードは書き換えられたので今度はそこそこいけるんじゃないかと思ったので。 なので 1.9 への移行の経験談としてちょっと残しておきます。 とりあえず magic comment は全部つけておく。 m17n関連の対応その1。ちなみに会社のコードは未だに EUC-JP。一行目に "# -*- coding: euc-jp -*-" とか書いておくだけ。もちろん実際のファイルの文字コードのも

    Ruby 1.9.1 への移行挑戦の記録 - ruby trunk changes
    yugui
    yugui 2009/01/23
    あとでぱくる
  • 1