Added 'self' method to ResultSet
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / ResultSet.pm
index 5d5e811..53e06ef 100644 (file)
@@ -37,7 +37,7 @@ sub new {
   my $class = shift;
   return $class->new_result(@_) if ref $class;
   my ($source, $attrs) = @_;
-  #use Data::Dumper; warn Dumper(@_);
+  #use Data::Dumper; warn Dumper($attrs);
   $attrs = Storable::dclone($attrs || {}); # { %{ $attrs || {} } };
   my %seen;
   my $alias = ($attrs->{alias} ||= 'me');
@@ -446,7 +446,9 @@ sub new_result {
   foreach my $key (keys %{$self->{cond}||{}}) {
     $new{$1} = $self->{cond}{$key} if ($key =~ m/^(?:$alias\.)?([^\.]+)$/);
   }
-  return $self->{source}->result_class->new(\%new);
+  my $obj = $self->{source}->result_class->new(\%new);
+  $obj->result_source($self->{source}) if $obj->can('result_source');
+  $obj;
 }
 
 =head2 create(\%vals)
@@ -479,6 +481,16 @@ sub find_or_create {
   return defined($exists) ? $exists : $self->create($hash);
 }
 
+=head2 self
+
+  my $rs = $rs->self;
+
+Just returns the resultset. Useful for Template Toolkit.
+
+=cut
+
+sub self { shift; }
+
 =head1 ATTRIBUTES
 
 The resultset takes various attributes that modify its behavior.