Powered by Rabbit 1.0.4
メソッドコンビネーション
beforeフック
afterフック
aroundフック
50/97
Slide 52
Slide 52 text
Powered by Rabbit 1.0.4
メソッドコンビネーション
Rubyにはオーバースペック
51/97
Slide 53
Slide 53 text
Powered by Rabbit 1.0.4
Module#prepend
単純化メソッドコンビネーション
52/97
Slide 54
Slide 54 text
Powered by Rabbit 1.0.4
Module#prepend
prepend
includeは後ろに追加
prependは前に追加
既存のメソッドをラップ
53/97
Slide 55
Slide 55 text
Powered by Rabbit 1.0.4
Module#prepend
class Foo
def foo; p :foo; end
end
module Prepend
def foo
p :before
super
p :after
end
end
class Foo
prepend Prepend
end
Foo.new.foo
54/97
Slide 56
Slide 56 text
Powered by Rabbit 1.0.4
prepend vs chain
名称重複問題
グループ化問題
55/97
Slide 57
Slide 57 text
Powered by Rabbit 1.0.4
Refinements
既存クラスの拡張
56/97
Slide 58
Slide 58 text
Powered by Rabbit 1.0.4
既存クラスの拡張
メソッドの追加
メソッドのラップ
57/97
Slide 59
Slide 59 text
Powered by Rabbit 1.0.4
既存クラスの拡張
オープンクラス
クラス再定義
mathn, jcode
58/97
Slide 60
Slide 60 text
Powered by Rabbit 1.0.4
既存クラスの拡張
スコープ問題
59/97
Slide 61
Slide 61 text
Powered by Rabbit 1.0.4
Refinements
スコープ限定のオープンクラス
60/97
Slide 62
Slide 62 text
Powered by Rabbit 1.0.4
Refinements
module R
refine String do
def foo
...
end
end
end
"".foo # => error!
using R
"".foo
61/97