DBIx::Skinnyの動的なSQL生成の挙動を調べるREPL
そもそも悩むくらいならsearch_namedでいいんじゃね?という話はありますが、動的生成するようにしておく方が便利ということもまぁまぁあったりします。
あと、なんだかんだでsearchは便利なのでよく使うんですが、細かいところでどう書くんだったけなー、というのを忘れることがあります。
そういうのを簡単に調べられるREPLを書きました。 evalでやってたり色々手抜き気味ですが。
動作イメージはこんな感じ。
>>> $rs->from(["example"]) SQL: FROM example Binds: >>> >>> $rs->add_complex_where([["OR", { foo => "bar" }, { bar => "baz" }]]); SQL: FROM example WHERE ((foo = ?) OR (bar = ?)) Binds: bar, baz >>> $rs->select(["*"]) SQL: SELECT * FROM example WHERE ((foo = ?) OR (bar = ?)) Binds: bar, baz >>> $rs->from(["example"]) SQL: FROM example Binds # リセットする >>> $rs = undef >>> $rs->from(["example2"]) SQL: FROM example2 Binds:
コードはこんな感じです。