- 名前:osyo
- Twitter : @pink_bangbi
- github : osyo-manga
- ブログ : Secret Garden(Instrumental)
- 趣味で Ruby にパッチを投げたり bugs.ruby で気になったチケットをブログにまとめたりしてる
- Ruby で一番好きな機能は Refinements
- 明日の Kaigi on Rails の登壇するよ
- CFP 3つ出して2つ落ちたよ
- 明日は 『ActiveRecord の読み方』というタイトルで話すよ
- RubyKaigi Takeout 2020 感想戦 @仮想松本
- めっちゃいい話してたのでみんな見よう!!
- 安全にクラス拡張を行う
- 適用されるクラス拡張の範囲を制限できることができるので名前衝突などが起こりづらい
- 新しい名前のメソッドを安全に定義する
- メソッドが適用できる範囲をユーザが制御できる
- 仮に他のメソッドと名前衝突を最小限に抑えられる
- 既存のメソッドの挙動を変える
- 既存のコードに手を入れる事なく任意のコンテキストの範囲のみのメソッドの挙動を変える事ができる
- ダックタイピング的な用途で使う
- 完全 private メソッドを定義する
- ライブコーディングするよ
- 簡単な使い方
- 適用範囲の説明
- 完全 private メソッドとは?
- 以下のメソッドでも Refinements は反映される
#respond_to?
#public_send
#method
- 以下のメソッドは Refinements が反映されない…
#methods
#instance_methods
- ダックタイピング的に呼び出せない
- to_s を拡張しても
puts
呼び出しで反映されないよ…
- to_s を拡張しても
- ケースによっては
using
するのが手間な事がある- デバッグ用の機能とかファイル毎で
using
するのがだるい
- デバッグ用の機能とかファイル毎で
- ダックタイピングに無力
using
したコンテキストで呼び出される場合のみ適用される- 間接的に呼び出される場合に適用できない
- 制限がきつい
- Proc#using ほしい…
- Refinements 便利
- Refinements を使わない理由はないのでどんどん使っていこう
- どんどん使ってバグをあぶり出してほしい
- Refinements についてもっと知りたい人はこれをみてね!!