run() calls set_otions() again at the end to restore old values.
[irspy-moved-to-github.git] / lib / ZOOM / IRSpy / Task / Search.pm
index 8b09d86..dacf9c8 100644 (file)
@@ -1,4 +1,4 @@
-# $Id: Search.pm,v 1.1 2006-10-06 11:33:08 mike Exp $
+# $Id: Search.pm,v 1.5 2006-10-25 13:36:47 mike Exp $
 
 package ZOOM::IRSpy::Task::Search;
 
@@ -36,17 +36,29 @@ sub new {
 sub run {
     my $this = shift();
 
+    $this->set_options();
+
     my $conn = $this->conn();
     my $query = $this->{query};
-    $this->irspy()->log("irspy_test", $conn->option("host"),
+    $this->irspy()->log("irspy_task", $conn->option("host"),
                        " searching for '$query'");
     $this->{rs} = $conn->search_pqf($query);
-    # Wow -- that's it.
+
+    $this->set_options();
+
+    # I want to catch the situation where a search is attempted on a
+    # not-yet opened connection (e.g. the Search::Title test is run
+    # before Ping) but since this situation doesn't involve the
+    # generation of a ZOOM event, the main loop won't see an error.
+    # So I check for it immediately:
+    $conn->_check();
+    # ### Unfortunately, this also fails to detect the condition I'm
+    # concerned with, so I think I am out of luck.
 }
 
 sub render {
     my $this = shift();
-    return ref($this) . " " . $this->{query};
+    return ref($this) . "(" . $this->{query}. ")";
 }
 
 use overload '""' => \&render;