Upgrade to Pro — share decks privately, control downloads, hide ads and more …

【Crystal】Macroについて

 【Crystal】Macroについて

東京 Crystal 勉強会 #6 in 渋谷
https://crystal.connpass.com/event/90745/

イベント資料です。

at_grandpa

June 21, 2018
Tweet

More Decks by at_grandpa

Other Decks in Technology

Transcript

  1. ・lambda を生成  - 引数は対象のメソッドと同じ  - メソッドの中身は Crystal::Macros::Def#body で得る ・lambda を即座に

    call する
  - 渡す引数は args の名前を羅列  - *(m.args) は型情報も含まれてしまうので、ここでは名前だけ展開 ・return_value に格納
  2. https://github.com/at-grandpa/clim ✔ ruby の thor 風 syntax ✔ オプションの型指定
 ✔

    default / required
 ✔ サブコマンド
 ✔ カスタムヘルプ
  3. begin ~ end を使う begin ~ end で囲めば、 ひとつのMacroとして扱われる →

    展開後のコードは正しい ※ 実は {% begin %} は {% if true %} のシンタックスシュガーです