return ($self->was_row) ? $rows[0] : \@rows;
}
-method add_row_info (Int :$id, HashRef :$info) {
+method add_row_info (Int :$id, :$row, HashRef :$info) {
+ if ($row) {
+ $id = $self->_mk_id(row => { $row->get_columns });
+ }
unless ($self->find($id)) {
warn $id;
die 'invalid id passed to add_row_info';
--- /dev/null
+#!perl
+
+use Test::More tests => 2;
+use lib qw(t/lib);
+use DBICTest;
+use Data::Dumper;
+
+# set up and populate schema
+ok(my $schema = DBICTest->init_schema(), 'got schema');
+
+{
+ my $artist_rs = $schema->resultset('Artist')->order_by(col => 'artistid')->display();
+ warn Dumper($artist_rs);
+ is_deeply($artist_rs, [
+ {
+ 'artistid' => '1',
+ 'name' => 'Caterwauler McCrae'
+ },
+ {
+ 'artistid' => '2',
+ 'name' => 'Random Boy Band'
+ },
+ {
+ 'artistid' => '3',
+ 'name' => 'We Are Goth'
+ }
+ ], 'ordered display returned as expected');
+}
+
+{
+ my $artists = $schema->resultset('Artist')->order_by(col => 'artistid')->with_substr->display();
+ is_deeply($artists, [
+ {
+ 'artistid' => '1',
+ 'name' => 'Caterwauler McCrae',
+ 'substr' => 'Cat'
+ },
+ {
+ 'artistid' => '2',
+ 'name' => 'Random Boy Band',
+ 'substr' => 'Ran'
+ },
+ {
+ 'artistid' => '3',
+ 'name' => 'We Are Goth',
+ 'substr' => 'We '
+ }
+ ], 'display with substring okay');
+}
+
+
+
package DBICTest::Schema::ResultSet::Artist;
use Moose;
+use MooseX::Method::Signatures;
extends 'DBICTest::Schema::ResultSet';
+method with_substr () {
+ foreach my $row ($self->all) {
+ my $substr = substr($row->name, 0, 3);
+ $self->add_row_info(row => $row, info => { substr => $substr });
+ }
+ return $self;
+}
+
1;