From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: X-Spam-Status: No, score=-4.0 required=3.0 tests=ALL_TRUSTED,AWL,BAYES_00 shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id A7B6E1F87F for ; Fri, 14 Jun 2019 17:17:25 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH 2/2] search: require PublicInbox::Inbox ref here Date: Fri, 14 Jun 2019 17:17:25 +0000 Message-Id: <20190614171725.12820-3-e@80x24.org> In-Reply-To: <20190614171725.12820-1-e@80x24.org> References: <20190614171725.12820-1-e@80x24.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: No sense in supporting multiple methods of initialization for an internal class. --- lib/PublicInbox/Inbox.pm | 2 +- lib/PublicInbox/Search.pm | 15 +++++---------- t/altid.t | 5 +++-- t/search.t | 4 ++-- 4 files changed, 11 insertions(+), 15 deletions(-) diff --git a/lib/PublicInbox/Inbox.pm b/lib/PublicInbox/Inbox.pm index c933033..10f716c 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 9903f42..098c97c 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 13a44a3..10bf8c6 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 d4c1e15..a049c93 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); -- EW