DATA section中のSQLを名前でアクセスできるDBI::Simple::DataSectionを作ってみた

typesterさんのText::MicroTemplate::DataSectionでは、__DATA__セクション中のテンプレートに名前でアクセスできるのですが、これをSQLでもできたらquick hackがしやすくなるんじゃないかと思って作ってみました。

http://github.com/dann/p5-dbix-simple-datasection

使い方は、以下のような感じです。DBIx::Simpleの薄いラッパで、名前付きでSQLにアクセスできるようになってます。それ以外の部分のメソッドの使い方についての詳細は、DBIx::Simpleを参照してもらえれば!

use DBIx::Simple::DataSection;
my $db = DBIx::Simple::DataSection->connect('dbi:SQLite:dbname=:memory:', '', '', { RaiseError => 1 });
$db->query_by_sql('create.sql');
$db->query_by_sql('insert.sql', qw(a b c));
$db->query_by_sql('select.sql')->flat;

__DATA__
@@ create.sql
CREATE TABLE xyzzy (FOO, bar, baz)

@@ insert.sql
INSERT INTO xyzzy (FOO, bar, baz) VALUES (?, ?, ?)

@@ select.sql
SELECT * FROM xyzzy ORDER BY foo