タグ

dslとrubyに関するyuisekiのブックマーク (2)

  • Rubyで自然なDSLを作るコツ:値を設定するときはグループ化して代入 - ククログ(2014-02-13)

    最近、fluent-plugin-droongaという分散データストリームエンジンを書いています。その中で、RubyでDSLを実現するときに工夫していることに気づきました。それは、値を設定するときは代入する字面にするということです。代入する字面にするために、グループ化用のオブジェクトを作っていました。 これだけだとどういうことかわからないので、具体例を示しながら説明します。 RubyとDSL Rubyを使っているとRubyで実現されたDSLに触れることが多くあります。RubyのMake実装であるRakeの設定ファイルもそうですし、ライブラリー管理ツールのBundlerの設定ファイルもそうです。 Rakeの場合:

    Rubyで自然なDSLを作るコツ:値を設定するときはグループ化して代入 - ククログ(2014-02-13)
  • ラムダ式で学ぶクロージャとDSL - Qiita

    はいこんにちはこんにちは! 今日はラムダ式でクロージャとDSLの解説をします。 ガチなラムダ計算の話ではまったくないのでご安心ください。函数型プログラミング言語の話でもないので怯える必要はありません。 それと、実用なDSLそのものではなく、どちらかといふと ふざけたDSL をシンプルに作ってみました! といふ例題なのでその点はご承知おきください。 謎のコピペとDSL まづはこちらのソースコードをお読みください。 # -*- Coding: utf-8 -*- scripter = ->(*args){->{puts args.join("\n")}} title = ->(text){"『#{text}』\n"} paragraph = ->(*args){args.join("\n")+"\n"} chara = ->(name){ ->(text){"#{name}「#{text}」"

    ラムダ式で学ぶクロージャとDSL - Qiita
  • 1