You _should_ just be able to subclass the HRI class and add those methods (and pass { result_class => 'My::HRI::Subclass' } in for the RS attributes). I haven't tested this, will do in a moment :)
On 9 April 2015 at 14:58, Lasse Makholm <la...@unity3d.com> wrote: > I'm using DBIx::Class::ResultClass::HashRefInflator in some places where > full row object inflation is too slow. That's fine. > > What I'd really like to do though, is bless the resulting hashrefs into a > "light weight" result class that provides a few convenience methods but > knows little to nothing about DBIx::Class. > > Trying something like: > > my $rs = $schema->resultset('MyTable')->search(...); > $rs->result_class('MyApp::Schema::DumbResult::MyTable'); > while (my $thingy = $rs->next) { > > # do, do, do > > } > > > with something like: > > package MyApp::Schema::DumbResult::MyTable; > > use strict; > use warnings; > > use DBIx::Class::ResultClass::HashRefInflator; > > sub inflate_result > { > my $class = shift; > my $result = DBIx::Class::ResultClass::HashRefInflator->inflate_result(@_); > return bless $result, $class; > } > > sub TO_JSON > { > my $self = shift; > return { %$self }; > } > > 1; > > > ...breaks for a variety of reasons it seems, because DBIx::Class wants to > do things like setting a result source instance on the result object, etc... > > Is there an (easy) make this work? Or is it just in general a horrible > idea? > > Of course I can just do: > > $rs->result_class('DBIx::Class::ResultClass::HashRefInflator'); > my @stuff = map { bless $_, MyApp::Schema::DumbResult::MyTable } $rs->all; > > ...but the other way is more convenient... > > Or is it more sane to subclass the ResultSet and override first(), all() > and next() to set the result_class and bless the resulting hashrefs? > > Any input appreciated? > > /L > > > > _______________________________________________ > List: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class > IRC: irc.perl.org#dbix-class > SVN: http://dev.catalyst.perl.org/repos/bast/DBIx-Class/ > Searchable Archive: > http://www.grokbase.com/group/dbix-class@lists.scsys.co.uk >
_______________________________________________ List: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class IRC: irc.perl.org#dbix-class SVN: http://dev.catalyst.perl.org/repos/bast/DBIx-Class/ Searchable Archive: http://www.grokbase.com/group/dbix-class@lists.scsys.co.uk