1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
|
package DBIx::Class::Helper::Row::SelfResultSet;
{
$DBIx::Class::Helper::Row::SelfResultSet::VERSION = '2.013002';
}
use strict;
use warnings;
# ABSTRACT: Easily use ResultSet methods for the current row
sub self_rs {
my ($self) = @_;
my $src = $self->result_source;
return $src->resultset->search({
map { $_ => $self->get_column($_) } $src->primary_columns
})
}
1;
__END__
=pod
=head1 NAME
DBIx::Class::Helper::Row::SelfResultSet - Easily use ResultSet methods for the current row
=head1 VERSION
version 2.013002
=head1 SYNOPSIS
In result class:
__PACKAGE__->load_components('Helper::Row::SelfResultSet');
Elsewhere:
$row->self_rs->$some_rs_method->single
=head1 DESCRIPTION
Sometimes you need to be able to access a ResultSet containing just the current
row. A good reason to do that would be if you had a ResultSet method that adds
in some calculated data, like counts of a relationship. You could use this to
get at that counted data without duplicating the logic for the counting.
=head1 METHODS
=head2 self_rs
$row->self_rs
returns a ResultSet containing B<just> the current row.
=head1 AUTHOR
Arthur Axel "fREW" Schmidt <frioux+cpan@gmail.com>
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2012 by Arthur Axel "fREW" Schmidt.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
=cut
|