PRE Metaprogramming Ruby (Rails勉強会@東京第53回前半)

. Rails勉強会@東京第53回、ちょっと遅れてはいったらクイズ大会になってて驚く #railstokyo
1:52 PM Jul 17th webから

前半はこちらの解説「http://capsctrl.que.jp/kdmsnr/diary/20100717.html」と初心者セッション。クイズの方聞き続ける。

#1

. 自家製クラス MyClass、そして Object、Class、Module、夫々の .class と .superclasss は何か述べよ(矢印で指し示す) #railstokyo
1:54 PM Jul 17th webから

#2

. module Printable def print; 'Printable#print'; end end #railstokyo
1:59 PM Jul 17th webから

. module Document def print; 'Document#print'; end def print_to_screen; print; end end #railstokyo
1:59 PM Jul 17th webから

. class Book include Document include Printable end #railstokyo
2:00 PM Jul 17th webから

. Book.new.print このときこれは何を出力するか、 Printable か、Document か #railstokyo
2:01 PM Jul 17th webから

要するにこのときどうなるか

module Printable
  def print; 'Printable#print'; end
end

module Document
  def print; 'Document#print'; end
  def print_to_screen; print; end
end

class Book
  include Document
  include Printable
end

puts Book.new.print_to_screen

#3

. 「1.引数に conn を受け取って、2.中括弧のコードを実行して、3.最後必ず conn.Dixpose() を呼び出すもの」を作る(C# の using を作る) #railstokyo
2:05 PM Jul 17th webから

. なんかクイズの紹介続けるけど、答えどうしようかな。やれば分かる事なんで別にいいか #railstokyo
2:08 PM Jul 17th webから

答えは前掲発表資料にもあります

. using的メソッド書くのは良いけどテストはどう書くのかな。conn をモックにして shuld_receive とか? #railstokyo
2:13 PM Jul 17th webから

#4

. class というキーワードを使わずにクラスを定義せよ #railstokyo
2:20 PM Jul 17th webから

. Class という定数(名)は使っていい #railstokyo
2:23 PM Jul 17th webから

#5

. 1+1=3 になるようにする(ほかの場合でも結果が必ず 1増えるようにする) #railstokyo
2:35 PM Jul 17th webから

.takahashim +の(再)定義の中で+を使ってstack level too deepになることってよくありますよね #mpruby #railstokyo
2:41 PM Jul 17th webから
あなたがリツイート

僕も同じことやった

. 前半終了、一コマ目は『Metaprogramming in Ruby』(の和訳) についてでした #mpruby #railstokyo
2:55 PM Jul 17th webから