about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2019-06-14 17:13:04 +0000
committerEric Wong <e@80x24.org>2019-06-14 17:27:10 +0000
commit20ddcb02821ff3bf8afd2c2279e0889492c93fd9 (patch)
tree8f9af12f09b4df05594ca916057f54dd48728ecc
parent585314673236d664729fe3ab2d4fb229d1c0f2d5 (diff)
downloadpublic-inbox-20ddcb02821ff3bf8afd2c2279e0889492c93fd9.tar.gz
No sense in supporting multiple methods of initialization
for an internal class.
-rw-r--r--lib/PublicInbox/Inbox.pm2
-rw-r--r--lib/PublicInbox/Search.pm15
-rw-r--r--t/altid.t5
-rw-r--r--t/search.t4
4 files changed, 11 insertions, 15 deletions
diff --git a/lib/PublicInbox/Inbox.pm b/lib/PublicInbox/Inbox.pm
index c9330332..10f716ca 100644
--- a/lib/PublicInbox/Inbox.pm
+++ b/lib/PublicInbox/Inbox.pm
@@ -191,7 +191,7 @@ sub search ($;$) {
         my $srch = $self->{search} ||= eval {
                 _cleanup_later($self);
                 require PublicInbox::Search;
-                PublicInbox::Search->new($self, $self->{altid});
+                PublicInbox::Search->new($self);
         };
         ($over_only || eval { $srch->xdb }) ? $srch : undef;
 }
diff --git a/lib/PublicInbox/Search.pm b/lib/PublicInbox/Search.pm
index 9903f427..098c97cd 100644
--- a/lib/PublicInbox/Search.pm
+++ b/lib/PublicInbox/Search.pm
@@ -170,17 +170,12 @@ sub xdb ($) {
 }
 
 sub new {
-        my ($class, $mainrepo, $altid) = @_;
-        my $version = 1;
-        my $ibx = $mainrepo;
-        if (ref $ibx) {
-                $version = $ibx->{version} || 1;
-                $mainrepo = $ibx->{mainrepo};
-        }
+        my ($class, $ibx) = @_;
+        ref $ibx or die "BUG: expected PublicInbox::Inbox object: $ibx";
         my $self = bless {
-                mainrepo => $mainrepo,
-                altid => $altid,
-                version => $version,
+                mainrepo => $ibx->{mainrepo},
+                altid => $ibx->{altid},
+                version => $ibx->{version} // 1,
         }, $class;
         my $dir = xdir($self, 1);
         $self->{over_ro} = PublicInbox::Over->new("$dir/over.sqlite3");
diff --git a/t/altid.t b/t/altid.t
index 13a44a3b..10bf8c65 100644
--- a/t/altid.t
+++ b/t/altid.t
@@ -17,6 +17,7 @@ my $tmpdir = tempdir('pi-altid-XXXXXX', TMPDIR => 1, CLEANUP => 1);
 my $git_dir = "$tmpdir/a.git";
 my $alt_file = "$tmpdir/another-nntp.sqlite3";
 my $altid = [ "serial:gmane:file=$alt_file" ];
+my $ibx;
 
 {
         my $mm = PublicInbox::Msgmap->new_file($alt_file, 1);
@@ -42,14 +43,14 @@ my $altid = [ "serial:gmane:file=$alt_file" ];
         $im->done;
 }
 {
-        my $ibx = PublicInbox::Inbox->new({mainrepo => $git_dir});
+        $ibx = PublicInbox::Inbox->new({mainrepo => $git_dir});
         $ibx->{altid} = $altid;
         my $rw = PublicInbox::SearchIdx->new($ibx, 1);
         $rw->index_sync;
 }
 
 {
-        my $ro = PublicInbox::Search->new($git_dir, $altid);
+        my $ro = PublicInbox::Search->new($ibx);
         my $msgs = $ro->query("gmane:1234");
         is_deeply([map { $_->mid } @$msgs], ['a@example.com'], 'got one match');
 
diff --git a/t/search.t b/t/search.t
index d4c1e150..a049c931 100644
--- a/t/search.t
+++ b/t/search.t
@@ -18,7 +18,7 @@ my $ibx = PublicInbox::Inbox->new({ mainrepo => $git_dir });
 my ($root_id, $last_id);
 
 is(0, system(qw(git init --shared -q --bare), $git_dir), "git init (main)");
-eval { PublicInbox::Search->new($git_dir)->xdb };
+eval { PublicInbox::Search->new($ibx)->xdb };
 ok($@, "exception raised on non-existent DB");
 
 my $rw = PublicInbox::SearchIdx->new($ibx, 1);
@@ -27,7 +27,7 @@ $ibx->with_umask(sub {
         $rw->_xdb_release;
 });
 $rw = undef;
-my $ro = PublicInbox::Search->new($git_dir);
+my $ro = PublicInbox::Search->new($ibx);
 my $rw_commit = sub {
         $rw->commit_txn_lazy if $rw;
         $rw = PublicInbox::SearchIdx->new($ibx, 1);