Rubyベストプラクティス 第2章 美しいAPIを設計する その1

今日は第2章の前半です。すごい章題ですね。

  • まずは実例を見る
    • Ruport の Table 機能
      • クラス名と同名のメソッドによるインスタンス生成(Array() や Hash() のように)
      • 引数の型などを検査して生成方法をディスパッチする
  • メソッド引数のいろいろ
    • 標準、省略可能引数、Hash による擬似的な名前つきパラメータ、可変長引数、ブロック引数など
  • ブロック
    • each を定義して Enumerable を include する
    • 前処理、後処理をラップする(Kernel#open のブロック付きみたいな)
    • instance_eval にブロックを渡して DSL っぽく