タグ

Rubyとdslに関するyukimori_726のブックマーク (4)

  • [Ruby]重複する文字列を生成するDSLを定義する | DevelopersIO

    はじめに 実案件などで重複する文字列を作成しなければならないことは、よくあるかと思います。多くの場合はエディタを駆使して行うかと思いますが、これが仕様変更等が入る可能性が高いものだったらどうでしょう?プログラマとしては出来るだけ重複した記述は避けたいとは思わないでしょうか? 例えばバッチ処理でのSQLを文字列と捉えると、言語の性質的に共通化が難しく(※1)重複した記述が多くなりがちだと思います。ということでSQLを対象として、重複した記述は出来るだけ避ける為のDSLを定義してみました。 ※1  ストアドプロシージャなどは除きます 今回作成したDSLのサンプル 以下、最終的に出力したいSQLと、これを生成するためのSQLです。 出力したいSQL sample.sql --SQL① a,b,c,dでグループ化 SELECT col_a ,col_b ,col_c ,col_d ,SUM(col

    [Ruby]重複する文字列を生成するDSLを定義する | DevelopersIO
  • 第1回 DSLとは? | gihyo.jp

    第1回目は、DSLの基的な概念について説明します。 DSL概要 DSL(Domain Specific Language)は、ドメイン固有言語と訳されてます。DSLは、Java、C#などの汎用言語とは違い、ある特定の種類の問題に特化したコンピュータ言語です。 今回の連載では、DSLの世界を解き明かします。そして、実際にDSLをつくることで、よりDSLの理解を深め、「⁠用法・用量を守って使える」ようになるのが、今回のゴールです。 DSLの必要性 なぜ、DSLを学ぶ必要があるのでしょうか。 Ruby on Railsの登場以降、メタプログラミングという言葉を良く聞くようになりました。メタプログラミングというと、マクロ、コードの自動生成、テンプレートを上げることができます。 DSLは、メタプログラミングで使われます。メタプログラミングは、一般的なプログラムとはまったく違った方法をとっているので

    第1回 DSLとは? | gihyo.jp
  • Anemone - Ruby Web-Spider Framework

    An easy-to-use Ruby web spider framework What is it? Anemone is a Ruby library that makes it quick and painless to write programs that spider a website. It provides a simple DSL for performing actions on every page of a site, skipping certain URLs, and calculating the shortest path to a given page on a site. The multi-threaded design makes Anemone fast. The API makes it simple. And the expressive

  • BiteScript 0.0.1 - A Ruby DSL for JVM Bytecode

    Charles Oliver Nutter Java, Ruby, and JVM guy trying to make sense of it all I have finally released the first version of BiteScript, my little DSL for generating JVM bytecode. Install it as a gem with "gem install bitescript". require 'bitescript' include BiteScript fb = FileBuilder.build(__FILE__) do public_class "SimpleLoop" do public_static_method "main", void, string[] do aload 0 push_int 0 a

  • 1