BT

AmbitionによるRubyのデータクエリーの抽象化

| 作者: Sebastien Auvray フォローする 0 人のフォロワー , 翻訳者 長部 広太 フォローする 0 人のフォロワー 投稿日 2007年10月4日. 推定読書時間: 1 分 |

今日の課題の一つとして、様々な情報源から情報にアクセスし、それを統合する際に生じる複雑さを軽減することがあげられる。.NETはすでにLINQ(source)という手段でデータアクセスの複雑さを軽減させているが、Rubyには同様な解決策がない。Rubyを使用してクエリーを行うDSLプロジェクトは存在するが、Rubyそのものではない。

Chris Wanstrath氏は、Ambition(source)という独自の解決策をもたらした。AmbitionはParseTree(サイト・英語)を利用してパースツリーを解析し、プレインなRubyクエリをSQLへと翻訳してくれるのだ(ターゲットはRDBの時である)。そして最終的にRuby風にクエリーが書けるという訳である。

User.first
User.firstと書くと、"SELECT * FROM users LIMIT 1"というSQLに変換されます。
User.select { |u| u.karma > 20 }.sort_by(&:karma).first(5)と書くと"SELECT * FROM users WHERE (users.`karma` > 20) ORDER BY users.karma LIMIT 5"というSQLに変換されます。

元々Chris氏はRack(サイト・英語)に力を注いでいたが、LINQの存在を知って(source)からは自身の目標を変更した。

我々はRackからLINQへ視点を移しました。我々は他のORMのみをサポートしたいわけではない。我々はAmbitionがSQL、LDAP、XPath用のクエリー言語になって欲しいんだ。リリース1.0はバックエンドを選ばないものになるだろう。そしたら名前を傲慢に変えるかも?時間が経てば分かるさ。

Ambitionの最新ソースは、git://errtheblog.com/git/ambitionで入手出来る。

原文はこちらです:http://www.infoq.com/news/2007/09/data-query-with-ambition

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT