Rubyコミッターが語る いかにしてRuby上でDSLを動作させるか #RubyKaigi #RubyKaigiB

How DSL works on Ruby @hsbt http://rubykaigi.org/2016/presentations/hsbt.html "Domain-Specific Language(DSL) is a useful tool for communication between programmers and businesses. One of the greatest present from Ruby to programmers is to allow them to develop DSL easily. Ruby has a variety of functionalities for DSL making. 続きを読む
0
前へ 1 2 ・・ 6 次へ
sue445 @sue445

rake の -j はパラレル実行のオプションだが大多数のrakeタスクはあまり速くならないので闇 #rubykaigiB

2016-09-09 11:38:12
斎藤ただし, Tadashi Saito @_tad_

正規表現とglobに渡せるのは違うのでは #rubykaigi #rubykaigiB

2016-09-09 11:38:14
黒曜@Leaner Technologies @kokuyouwind

「Rake::FileList。ファイル一覧を操作するときに便利なクラス。複数glabしてexcludeみたいなことができる」 これ普通に便利じゃん #rubykaigi #rubykaigiB

2016-09-09 11:38:31
黒曜@Leaner Technologies @kokuyouwind

「Rake::TestTask。MinitestやTest::Unitを実行する。rdocなどはそれぞれのgemにあるが、これだけは歴史的経緯で残っている」 #rubykaigi #rubykaigiB

2016-09-09 11:40:26
joker1007 (アルフォートおじさん) @joker1007

Rakeの0.9から10へのjumpはパーフェクトRubyのコラムとして書いた記憶がある。 #rubykaigiB

2016-09-09 11:41:28
黒曜@Leaner Technologies @kokuyouwind

SemVerを使った最初のgem。Rakeが0.9から10.0に上がったりした。 #rubykaigi #rubykaigiB

2016-09-09 11:41:33
そのっつ (Naotoshi Seo) @sonots

rake/testtask、いつからかデフォルトで warning 出すようになったけど、rake だとは思わず test-unit 追ってみたりしたことあるから、やはり rake にあるべきではない気だけしている #rubykaigiB

2016-09-09 11:42:30
sue445 @sue445

rubygems .org のダウンロード上位にはいるにはrailsの依存になればいいという便利情報 #rubykaigiB

2016-09-09 11:43:42
黒曜@Leaner Technologies @kokuyouwind

DSLの話。Rubyはそれ自体が読みやすいので、Rubyを使って別のドメイン言語をパースする外部DSLよりも、Rubyとして書いたものを別のドメイン言語として解釈する内部DSLの方が便利 #rubykaigi #rubykaigiB

2016-09-09 11:44:08
黒曜@Leaner Technologies @kokuyouwind

Userにhas_many :foo みたいにしたい場合は特異クラスのメソッドにするだけで良い。 #rubykaigi #rubykaigiB

2016-09-09 11:45:30
黒曜@Leaner Technologies @kokuyouwind

has_manyをいろいろな場所で使いたい場合にARBaseを敬称させたい場合は、moduleでhas_manyを定義して、ARBaseでextendする。 #rubykaigi #rubykaigiB

2016-09-09 11:45:48
WAKASUGI 5T111111 @5t111111

most downloaded gem で rake がでてくる話題って #rubykaigiB と内容がシンクロしてる感がある #rubykaigi #rubykaigiA

2016-09-09 11:46:46
斎藤ただし, Tadashi Saito @_tad_

やっぱりdefine_methodは使われないんだ…… #rubykaigi #rubykaigiB

2016-09-09 11:46:58
kinoppyd @GhostBrain

module_eval? method_defineのほうが楽では #rubykaigi #rubykaigiB

2016-09-09 11:47:06
黒曜@Leaner Technologies @kokuyouwind

「has_many :blogsしたときにblogs_fooといったメソッドを呼び出したい場合は、has_manyが呼ばれたときにmodule_evalを使ってメソッドを定義する。」 この辺はいかにもメタプロって感じがするなぁ #rubykaigi #rubykaigiB

2016-09-09 11:47:17
sylph01 @s01

"gem install railsしたらインストールされるgemが並んでいる" #rubykaigiB #rubykaigi

2016-09-09 11:47:18
黒曜@Leaner Technologies @kokuyouwind

ここまではActiveRecordっぽいパターン。次に設定。configure do |c| のブロック内で設定していくようなのは、moduleのconfigureでyield selfして、attr_accessorでアクセスさせる #rubykaigi #rubykaigiB

2016-09-09 11:48:34
ぺら @Peranikov

DSL書くためのパターン集ありがたい #rubykaigi #rubykaigiB

2016-09-09 11:48:37
yasaichi @_yasaichi

DSLの動的生成、define_singleton_methodでやるのかと思ってた #RubyKaigi #RubyKaigiB

2016-09-09 11:48:45
kinoppyd @GhostBrain

instance_eval、スコープが変わるから不便  #rubykaigi #rubykaigiB

2016-09-09 11:49:08
黒曜@Leaner Technologies @kokuyouwind

「configureの中でメソッドを呼び出したい場合はinstance_evalを使う」 これメモ代わりにまとめてるけど、コードないと全然わからんな…w #rubykaigi #rubykaigiB

2016-09-09 11:49:34
ripM8QhdYbs6Whn @ripM8QhdYbs6Whn

そういえば class << self;def method と def self.method ってどっち使うのが良いの? #rubykaigiB

2016-09-09 11:49:59
前へ 1 2 ・・ 6 次へ