]> git.donarmstrong.com Git - debbugs.git/blobdiff - Debbugs/Bug.pm
Mousify Debbugs::Log and integrate with Debbugs::Bug
[debbugs.git] / Debbugs / Bug.pm
index 38ebbe7ee034a0f069b06246dc6031f99bb99c76..641881a8fcb849b7568b959a2c6a245ffb1d151d 100644 (file)
@@ -72,6 +72,31 @@ sub _build_status {
     return $status;
 }
 
+has log => (is => 'bare', isa => 'Debbugs::Log',
+            lazy => 1,
+            builder => '_build_log',
+            handles => {_read_record => 'read_record',
+                        log_records => 'read_all_records',
+                       },
+           );
+
+sub _build_log {
+    my $self = shift;
+    return Debbugs::Log->new(bug_num => $self->id,
+                             inner_file => 1,
+                            );
+}
+
+has spam => (is => 'bare', isa => 'Debbugs::Log::Spam',
+             lazy => 1,
+             builder => '_build_spam',
+             handles => ['is_spam'],
+            );
+sub _build_spam {
+    my $self = shift;
+    return Debbugs::Log::Spam->new(bug_num => $self->id);
+}
+
 has 'package_collection' => (is => 'ro',
                             isa => 'Debbugs::Collection::Package',
                             builder => '_build_package_collection',
@@ -663,6 +688,10 @@ sub related_packages_and_versions {
     if (length($self->status->{package}//'')) {
        @packages = split /,/,$self->status->{package}//'';
     }
+    if (length($self->status->{affects}//'')) {
+       push @packages,
+            split /,/,$self->status->{affects}//'';
+    }
     my @versions =
         (@{$self->status->{found_versions}//[]},
          @{$self->status->{fixed_versions}//[]});
@@ -676,8 +705,12 @@ sub related_packages_and_versions {
         }
     }
     for my $pkg (@packages) {
-        push @return,
-            [$pkg,@unqualified_versions];
+        if (@unqualified_versions) {
+            push @return,
+                [$pkg,@unqualified_versions];
+        } else {
+           push @return,$pkg;
+        }
     }
     return @return;
 }