【一人 Ruby Advent Calendar 2017】表参道.rb #29 ~ Module ~【8日目】
一人 Ruby Advent Calendar 2017 8日目の記事になります。
今日は表参道.rb #29 ~ Module ~参加して LT してきたのでそのスライドでも。
今回もご飯が美味しかった
mixin と module について
https://osyo-manga.github.io/slide-omotesandorb-29-mixin/#/
今回は『module がどのように mixin されているのか』みたいな内容を話してきました。
まあ Ruby に詳しい人なら当たり前のような内容なのでそこまで真新しいものではないと思いますが…。
後半で消化したデコレータみたいなのは Ruby の prepend
を活かしたような実装なのでこれは書いていて楽しかったですね。
補足
スライドの中で
def plus a, b a + b end decorate :plus, &print_args
みたいなデコレータの紹介をしていたのですが、参加後に
『decorate
の第一引数(:plus
)を省略したいよね…』
みたいな意見を頂いたのですが、実はこれは下記のように記述することが出気ます。
decorate def minus a, b a - b end, &print_args
上記は何をやっているのかというと def
の戻り値が『メソッド名』なのでそれを直接 decorate
メソッドの引数として渡している感じになります。
実はこれ、ライブコーディングで紹介しようと思っていたのですが、途中でめんどくさくなってしまい(ry。
ま、まあスライドには書いてあるから…。
そんなわけで LT してきましたー。
運営の方々、発表を聞いてくださった皆様、ありがとうございました。
今回は『発表が面白かった』などの感想を頂いたので嬉しかったです。
またいろいろと Ruby の意見なんかも聞くことができたので有意義な時間でした。
次回も機会があれば参加してみたいです。