[Templates] DBIx::Class and Template::Iterator

Dylan William Hardison dylanwh@gmail.com
Tue, 15 Aug 2006 19:26:27 -0400


------=_Part_112061_11825648.1155684387786
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

I really, really like using the FOREACH directive (and loop.last /
loop.first, etc),
and I also really like Matt S. Trout's DBIx::Class.

So, I've got a wee module that wraps a DBIx::Class ResultSet object
and makes it behave like a Template::Iterator. This certainly isn't
CPAN-ready (the package name is not so good), but I'd like to get some
more eyes on it. So it's attached to this email.

Now, a question would be, am I the only one that finds this useful?
If someone else does find this useful, any suggestions on a proper name for it?

------=_Part_112061_11825648.1155684387786
Content-Type: text/x-perl; name=ResultSet.pm; charset=ANSI_X3.4-1968
Content-Transfer-Encoding: base64
X-Attachment-Id: f_eqwwl50n
Content-Disposition: attachment; filename="ResultSet.pm"

cGFja2FnZSBUZW1wbGF0ZTo6SXRlcmF0b3I6OlJlc3VsdFNldDsKdXNlIHN0cmljdDsKdXNlIHdh
cm5pbmdzOwp1c2UgVGVtcGxhdGU6OkNvbnN0YW50cyAoKTsKdXNlIGJhc2UgJ1RlbXBsYXRlOjpJ
dGVyYXRvcic7CgpzdWIgbmV3IHsKCW15ICgkY2xhc3MsICRycykgPSBAXzsKCW15ICRzZWxmID0g
Ymxlc3Mge30sICRjbGFzczsKCSRzZWxmLT57cmVzdWx0c2V0fSA9ICRyczsKCglyZXR1cm4gJHNl
bGY7Cn0KCnN1YiBnZXRfZmlyc3QgewoJbXkgKCRzZWxmKSA9IEBfOwoJbXkgJHJzID0gJHNlbGYt
PntyZXN1bHRzZXR9OwoJbXkgJGZpcnN0ID0gJHJzLT5maXJzdDsKCW15ICRuZXh0ICA9ICRycy0+
bmV4dDsKCSRzZWxmLT57cHJldn0gID0gdW5kZWY7Cgkkc2VsZi0+e25leHR9ICA9ICRuZXh0OwoJ
JHNlbGYtPntjdXJyfSAgPSAkZmlyc3Q7Cgkkc2VsZi0+e2luZGV4fSA9IDA7CgoJcmV0dXJuICh1
bmRlZiwgVGVtcGxhdGU6OkNvbnN0YW50czo6U1RBVFVTX0RPTkUpIHVubGVzcyBkZWZpbmVkICRm
aXJzdDsKCXJldHVybiAkZmlyc3Q7Cn0KCnN1YiBnZXRfbmV4dCB7CglteSAoJHNlbGYpID0gQF87
CglteSAkcnMgPSAkc2VsZi0+e3Jlc3VsdHNldH07Cgkkc2VsZi0+e3ByZXZ9ID0gJHNlbGYtPntj
dXJyfTsKCSRzZWxmLT57Y3Vycn0gPSAkc2VsZi0+e25leHR9OwoJJHNlbGYtPntuZXh0fSA9ICRy
cy0+bmV4dDsKCSRzZWxmLT57aW5kZXh9Kys7CgoJcmV0dXJuICh1bmRlZiwgVGVtcGxhdGU6OkNv
bnN0YW50czo6U1RBVFVTX0RPTkUpIHVubGVzcyBkZWZpbmVkICRzZWxmLT57bmV4dH07CglyZXR1
cm4gJHNlbGYtPntuZXh0fTsKfQoKc3ViIGdldF9hbGwgewoJbXkgKCRzZWxmKSA9IEBfOwoJbXkg
JHJzID0gJHNlbGYtPntyZXN1bHRzZXR9OwoJbXkgQGFsbCA9ICggJHJzLT5uZXh0ICk7CglteSAk
bmV4dDsKCgl1bmxlc3MgKGRlZmluZWQgJGFsbFswXSkgewoJCUBhbGwgPSAoICRycy0+Zmlyc3Qg
KTsKCX0KCXB1c2ggQGFsbCwgJG5leHQgd2hpbGUgJG5leHQgPSAkcnMtPm5leHQ7CgkkcnMtPnJl
c2V0OwoJcmV0dXJuIFxAYWxsOwp9CgpzdWIgbGFzdCAgewoJbXkgKCRzZWxmKSA9IEBfOwoJcmV0
dXJuIG5vdCBkZWZpbmVkICRzZWxmLT57bmV4dH07Cn0KCnN1YiBmaXJzdCB7CglteSAoJHNlbGYp
ID0gQF87CglyZXR1cm4gbm90IGRlZmluZWQgJHNlbGYtPntwcmV2fTsKfQoKc3ViIHNpemUgewoJ
bXkgKCRzZWxmKSA9IEBfOwoJbXkgJHJzID0gJHNlbGYtPntyZXN1bHRzZXR9OwoJcmV0dXJuICRy
cy0+Y291bnQ7Cn0KCnN1YiBuZXh0ICB7ICBzaGlmdC0+e25leHR9ICAgfQpzdWIgcHJldiAgeyBz
aGlmdC0+e3ByZXZ9ICAgIH0Kc3ViIGluZGV4IHsgc2hpZnQtPntpbmRleH0gICB9CnN1YiBtYXgg
ICB7IHNoaWZ0LT5zaXplIC0gMSAgfQpzdWIgY291bnQgeyBzaGlmdC0+aW5kZXggKyAxIH0KCjE7
Cg==
------=_Part_112061_11825648.1155684387786--