user/dev discussion of public-inbox itself
 help / color / mirror / code / Atom feed
Search results ordered by [date|relevance]  view[summary|nested|Atom feed]
thread overview below | download mbox.gz: |
* [PATCH 2/2] search: require PublicInbox::Inbox ref here
  2019-06-14 17:17  5% [PATCH 0/2] search*: require Inbox refs for ->new Eric Wong
@ 2019-06-14 17:17  7% ` Eric Wong
  0 siblings, 0 replies; 2+ results
From: Eric Wong @ 2019-06-14 17:17 UTC (permalink / raw)
  To: meta

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


^ permalink raw reply related	[relevance 7%]

* [PATCH 0/2] search*: require Inbox refs for ->new
@ 2019-06-14 17:17  5% Eric Wong
  2019-06-14 17:17  7% ` [PATCH 2/2] search: require PublicInbox::Inbox ref here Eric Wong
  0 siblings, 1 reply; 2+ results
From: Eric Wong @ 2019-06-14 17:17 UTC (permalink / raw)
  To: meta

Just removing some old cruft which predated the use of the
PublicInbox::Inbox object.  Diffstat says this is a win, too.

Eric Wong (2):
  searchidx: require PublicInbox::Inbox (or InboxWritable) ref
  search: require PublicInbox::Inbox ref here

 lib/PublicInbox/Inbox.pm     |  2 +-
 lib/PublicInbox/Search.pm    | 15 +++++----------
 lib/PublicInbox/SearchIdx.pm | 35 +++++++++++++----------------------
 t/altid.t                    |  5 +++--
 t/nntpd.t                    |  4 ++--
 t/psgi_search.t              |  4 +++-
 t/search-thr-index.t         |  4 +++-
 t/search.t                   | 11 ++++++-----
 8 files changed, 36 insertions(+), 44 deletions(-)

-- 
EW


^ permalink raw reply	[relevance 5%]

Results 1-2 of 2 | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
2019-06-14 17:17  5% [PATCH 0/2] search*: require Inbox refs for ->new Eric Wong
2019-06-14 17:17  7% ` [PATCH 2/2] search: require PublicInbox::Inbox ref here Eric Wong

Code repositories for project(s) associated with this public inbox

	https://80x24.org/public-inbox.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).