詳細
イディオム
項目 | 概要 | URL |
---|---|---|
ミミックメソッド | あたかも言語の組み込み機能であるかのように擬態するメソッド | http://d.hatena.ne.jp/tbpg/20130613/1371142971 |
nilガード | nil以外ならそのまま値を設定。nilの場合に任意の初期化値の指定 | http://d.hatena.ne.jp/tbpg/20130702/1372775693 |
名前付き引数 | 引数の指定順序に依存しないようにメソッドを定義する | http://d.hatena.ne.jp/tbpg/20130702/1372778621 |
自己yield | ブロックで自身をyieldすることによって簡潔な記述でメソッドのパラメータ一括設定等が可能になる | http://d.hatena.ne.jp/tbpg/20130707/1373205738 |
Symbol.to_proc | ワンコールブロックを簡潔に記載する手法 | http://d.hatena.ne.jp/tbpg/20130425/1366910843 |
魔術
番外編
書籍「メタプログラミングRuby」とは関係ないが、メタプログラミン・DSL・リフレクション等との関連が深い
手法について下記にまとめます。
項目 | 概要 | URL |
---|---|---|
ミミックスペース | 全角スペースによるメソッド作成 | http://d.hatena.ne.jp/tbpg/20130807/1375887096 |
Ghostable | ゴーストメソッド作成支援モジュール | http://d.hatena.ne.jp/tbpg/20130815/1376584674 |
文字列クラス | クラス名文字列からクラスのインスタンスを取得する | http://d.hatena.ne.jp/tbpg/20130826/1377524044 |
『!!』(double not) | !!を2つ重ねることによって、論理型の返却が必要な際にnilをfalseに変換しつつ真偽判定を行う | http://d.hatena.ne.jp/tbpg/20140113/1389614884 |
メタなコードの補助コメント | メタなコードを書く際に完成予想図をコメントに書く | http://d.hatena.ne.jp/tbpg/20140129/1391001713 |