]> git.donarmstrong.com Git - debbugs.git/blobdiff - Debbugs/Bug.pm
add email and url access objects
[debbugs.git] / Debbugs / Bug.pm
index 641881a8fcb849b7568b959a2c6a245ffb1d151d..411e9babc80e9dca812b4cfddb785b34ffd85734 100644 (file)
@@ -446,13 +446,18 @@ sub _build_archived {
     return $_[0]->location eq 'archived'?1:0;
 }
 
-has tags => (is => 'ro', isa => 'Object',
+has tags => (is => 'ro',
+             isa => 'Debbugs::Bug::Tag',
             clearer => '_clear_tags',
             builder => '_build_tags',
             lazy => 1,
            );
 sub _build_tags {
-    return Debbugs::Bug::Tag->new($_[0]->status->{keywords});
+    my $self = shift;
+    return Debbugs::Bug::Tag->new(keywords => $self->status->{keywords},
+                                  bug => $self,
+                                  users => $self->bug_collection->users,
+                                 );
 }
 
 =item buggy
@@ -677,11 +682,45 @@ sub matches {
     return 0;
 }
 
+sub email {
+    my $self = shift;
+    return $self->id.'@'.$config{email_domain};
+}
+
+sub subscribe_email {
+    my $self = shift;
+    return $self->id.'-subscribe@'.$config{email_domain};
+}
+
 sub url {
     my $self = shift;
     return $config{web_domain}.'/'.$self->id;
 }
 
+sub mbox_url {
+    my $self = shift;
+    return $config{web_domain}.'/mbox:'.$self->id;
+}
+
+sub mbox_status_url {
+    my $self = shift;
+    return $self->mbox_url.'?mboxstatus=yes';
+}
+
+sub mbox_maint_url {
+    my $self = shift;
+    $self->mbox_url.'?mboxmaint=yes';
+}
+
+sub version_url {
+    my $self = shift;
+    return version_url(package => $self->package,
+                       found => [$self->found->members],
+                       fixed => [$self->fixed->members],
+                       @_,
+                      );
+}
+
 sub related_packages_and_versions {
     my $self = shift;
     my @packages;