Rubyコミッターが語る いかにしてRuby上でDSLを動作させるか #RubyKaigi #RubyKaigiB
「Rake::FileList。ファイル一覧を操作するときに便利なクラス。複数glabしてexcludeみたいなことができる」 これ普通に便利じゃん #rubykaigi #rubykaigiB
2016-09-09 11:38:31「Rake::TestTask。MinitestやTest::Unitを実行する。rdocなどはそれぞれのgemにあるが、これだけは歴史的経緯で残っている」 #rubykaigi #rubykaigiB
2016-09-09 11:40:26Rakeの0.9から10へのjumpはパーフェクトRubyのコラムとして書いた記憶がある。 #rubykaigiB
2016-09-09 11:41:28SemVerを使った最初のgem。Rakeが0.9から10.0に上がったりした。 #rubykaigi #rubykaigiB
2016-09-09 11:41:33rake/testtask、いつからかデフォルトで warning 出すようになったけど、rake だとは思わず test-unit 追ってみたりしたことあるから、やはり rake にあるべきではない気だけしている #rubykaigiB
2016-09-09 11:42:30DSLの話。Rubyはそれ自体が読みやすいので、Rubyを使って別のドメイン言語をパースする外部DSLよりも、Rubyとして書いたものを別のドメイン言語として解釈する内部DSLの方が便利 #rubykaigi #rubykaigiB
2016-09-09 11:44:08Userにhas_many :foo みたいにしたい場合は特異クラスのメソッドにするだけで良い。 #rubykaigi #rubykaigiB
2016-09-09 11:45:30has_manyをいろいろな場所で使いたい場合にARBaseを敬称させたい場合は、moduleでhas_manyを定義して、ARBaseでextendする。 #rubykaigi #rubykaigiB
2016-09-09 11:45:48most downloaded gem で rake がでてくる話題って #rubykaigiB と内容がシンクロしてる感がある #rubykaigi #rubykaigiA
2016-09-09 11:46:46The view behind room D. #rubykaigi #rubykaigib instagram.com/p/BKHnIySgjf1/
2016-09-09 11:46:52「has_many :blogsしたときにblogs_fooといったメソッドを呼び出したい場合は、has_manyが呼ばれたときにmodule_evalを使ってメソッドを定義する。」 この辺はいかにもメタプロって感じがするなぁ #rubykaigi #rubykaigiB
2016-09-09 11:47:17ここまではActiveRecordっぽいパターン。次に設定。configure do |c| のブロック内で設定していくようなのは、moduleのconfigureでyield selfして、attr_accessorでアクセスさせる #rubykaigi #rubykaigiB
2016-09-09 11:48:34DSLの動的生成、define_singleton_methodでやるのかと思ってた #RubyKaigi #RubyKaigiB
2016-09-09 11:48:45「configureの中でメソッドを呼び出したい場合はinstance_evalを使う」 これメモ代わりにまとめてるけど、コードないと全然わからんな…w #rubykaigi #rubykaigiB
2016-09-09 11:49:34明日使える知識がたくさんでてきた #rubykaigiB
2016-09-09 11:49:36そういえば class << self;def method と def self.method ってどっち使うのが良いの? #rubykaigiB
2016-09-09 11:49:59