Skip to content

第5章 金曜日: コードを記述するコード

yowasou edited this page Aug 13, 2023 · 11 revisions

メタプログラミングruby読書会::第5章 金曜日: コードを記述するコード

構成

  • 5.1 道案内
    • 5.1.1 上司の依頼
    • 5.1.2 開発計画
  • 5.2 Kernel#eval
    • 5.2.1 Capistranoの例
    • 5.2.2 irbの例
    • 5.2.3 「コード文字列」対「ブロック」
  • 5.3 クイズ:属性のチェック(手順1)
    • 5.3.1 このクイズに答える前に
    • 5.3.2 クイズの答え
  • 5.4 クイズ:属性のチェック(手順2)
    • 5.4.1 クイズの答え
  • 5.5 クイズ:属性のチェック(手順3)
    • 5.5.1 クイズの答え
  • 5.6 クイズ:属性のチェック(手順4)
    • 5.6.1 クイズの答え
  • 5.7 フックメソッド
    • 5.7.1 その他のフックメソッド
    • 5.7.2 Merbの例
    • 5.7.3 クラス拡張ミックスイン
  • 5.8 クイズ:属性のチェック(手順5)
    • 5.8.1 クイズの答え
    • 5.8.2 メタプログラミング道

疑問・質問・ポイント

* 5.1 道案内

* 5.2 Kernel#eval

  • 5.2.1
    • p.183 - inspectを使うのはなぜ? (suchi)
  • 5.2.4
    • p.188 - explore_array()は便利 (suchi)
    • p.189 - 「恐ろしい子!」は「ガラスの仮面」? 「キリッ」はよく見るけど元ネタがわからない。けっこう好き (suchi)
    • p.193 - これ「セーフレベルが有効なのは Procの中だけ」なのはなぜなんだろう?? (suchi)
    • p.191 - セーフレベルってカスタマイズしたレベルを作成できたりします?3と4の間の 3.5 とか。あと、Rubyのバージョンによってレベル内容が違ってたりします?(牧田)

* 5.3 クイズ:属性のチェック(手順1)

* 5.4 クイズ:属性のチェック(手順2)

  • 5.4.1
    • p.196 - 「classは変数でクラス名は受け取れない」とはどういうこと? (suchi) → class clazz とできないというでした(suchi)
    • p.197 - add_checkd_attributeのattributeという引数はシンボルでもOK? (suchi)

* 5.5 クイズ:属性のチェック(手順3)

* 5.6 クイズ:属性のチェック(手順4)

* 5.7 フックメソッド

* 5.8 クイズ:属性のチェック(手順5)

リンク

  • メタプログラミングしてみました kzgs

  • define_method with block argument https://gist.github.com/1207992

  • いろんなRubyバージョンで実行 https://gist.github.com/1210657

  • ↑ 私だったらせっかくrvmがあるのだから(PATHやBUNDLE/GEM_HOMEなども影響されるので)こうするかな > find . -name '*.rb' -exec echo '########' {} '########' \; -exec rvm 1.8.6,1.8.7 {} \; (suchi)

  • rspecでこのコードが動きません。メタプロに詳しい方、どうすればいいか教えてください y_murase

Clone this wiki locally