タグ

ブックマーク / blog.nekokak.org (4)

  • Tengについて

    先ほどTengという新しいORMをリリースしました。 TengはDBIx::Skinnyの後継バージョンと捉えていただいて結構です。 DBIx::Skinnyはおおよそ3年前ほどに一人でつくりはじめたORMで 現在に到るまでに様々な仕様変更を繰り返し、 結構秘伝のタレ的なコードが目立つようになってきました。 元々はDBIx::Skinnyをリファクタリングすることで済まそうと思っていたのですが、 後方互換を残したままのリファクタリングに限界を感じました。 多くの人に使っていただいている現状で後方互換を簡単に捨ててしまうのは 宜しく無いとの判断から別プロジェクトとしてリリースするに至りました。 DBIx::Skinnyは現状、バクレポートも特別なく 問題なく継続してご利用頂けると思いますので、ご安心ください。 また、なにか大きな問題点があれば、サポートしますのでpatches&testsウエ

  • DBIx::TransactionManager

    というのを書きました。 https://github.com/nekokak/p5-DBIx-TransactionManager まぁ、DBIx::Skinnyで使っているトランザクションの仕組みを別モジュールに切り出した感じです。 use DBI; use DBIx::TransactionManager; my $dbh = DBI->connect('dbi:SQLite:'); my $tm = DBIx::TransactionManager->new($dbh); { my $txn = $tm->txn_scope; $dbh->do("insert into foo (id, var) values (1,'baz')"); { my $txn2 = $tm->txn_scope; $dbh->do("insert into foo (id, var) values (

  • DBIx::Skinnyのなおしたいところ(案)

    DBIx::Skinny::SQLがいけてないのでなおしたい   $skinnyのObjectに依存しているのがretrieveメソッドだけなので   若干のインコンパチな変更になるけどなんとかしたいかな。   あとDBIx::Skinny::Accessorを廃止したい。   正直SQL builderとしていけてない。(Data::ObjectDriverからぱくっといてなんだけど)    complex_whereとか書きにくすぎる ・AnonRowクラスの廃止   Rowクラス生成を必須とするかどうか。 ・ClassメソッドでDBIx::Skinnyを操作出来るインタフェース   正直インスタンスをつくって操作したほうがよいのでSkinnyとして廃止したい。 後方互換かんがえると結構大変なことなり。 ちなむとヤルにしてもいきなりエラーになるとかはしないのでご安心を。 そしてヤルか

  • DBIx::Skinny::Mixin::DataSection

    カッ!となって書いてみた。 http://dann.g.hatena.ne.jp/dann/20101021/p1 まぁコレのパクリです。 http://github.com/nekokak/DBIx-Skinny-Mixin-DataSection ここにあげてありますね。 TODOとしてはdata sectionのデータを毎回読出しているのでキャッシュしたり 指定したパッケージのdata sectionを読みだせるようにすることかしら。 個人的にはPorj::Api::Userとかに関連ロジックをまとめてたりするので Proj::Api::Userに書いてあるクエリはProj::Api::Userのdata sectionに纏めて書いておくとかね。 イライラしたときは適当にモジュールを書くといいことがあるかもしれない。

  • 1