タグ

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

  • Proc#call vs. yield - ruby trunk changes

    ご存知の通り Ruby では仮引数の最後に '&' を前置した「ブロック引数」を宣言することで、メソッドに渡されるブロックをProcオブジェクトとして受け取ることができます。つまりメソッドに渡されたブロックを呼ぶ方法には2通りあります。 def m1 yield :m1 end def m2(&block) block.call(:m2) end m1{|a| p a } # => :m1 m2{|a| p a } # => :m2 この2通りのブロック呼び出しの違いについて触れた記事もいくらかあります。*1 *2 主にブロックが渡されていない時のエラーメッセージが違うなどの挙動の違いについて触れられていますが、この文章では両者のYARVでの実装上の差異とパフォーマンスの違いについて書きます。 最初に結論を "可能なら Proc#call ではなく yield を使おう" 「可能なら」とい

    Proc#call vs. yield - ruby trunk changes
  • Heroku で Rack アプリケーションを動かしてみた - ruby trunk changes

    もう WEB+DB PRESS vol.59 の Heroku 紹介記事はお読みになりましたか? Heroku というのは Ruby 版の GAE*1 みたいなもので、Ruby 製の Web アプリケーションをホスティングしてくれるサービスです。小さな環境なら無料で使用できます。わたしは Web アプリケーションにはあまり興味がなかったのでこれまで存在は知っていてても敬遠してきたのですが、ruby trunk changes をはじめてからコメントをコミット毎に保存するような支援ツールが欲しくて、iPad や iPod touch を含む複数の環境で入力できるという条件を考えると Web アプリケーションとして作る必要がありそうなので検討してみました。 記事を読むまで HerokuRails 専用のホスティング環境だと思っていたのですが、実際は Rack の上で動くフレームワークなら

    Heroku で Rack アプリケーションを動かしてみた - ruby trunk changes
  • 1