From 599166a3072a1f165ca54121a9dbb24ce2585c2f Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Wed, 1 Jan 2020 09:57:50 +0000 Subject: doc: allow NEWS file to be built without Plack::Util Plack pulls in a lot of dependencies which can be time-consuming to install. It should not be necessary for somebody who just wants to run -mda/-watch and -nntpd and forego WWW. --- Documentation/mknews.perl | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) (limited to 'Documentation') diff --git a/Documentation/mknews.perl b/Documentation/mknews.perl index 5ede3696..3efabdb5 100755 --- a/Documentation/mknews.perl +++ b/Documentation/mknews.perl @@ -7,9 +7,9 @@ use strict; use PublicInbox::MIME; use PublicInbox::View; -use Plack::Util; use PublicInbox::MsgTime qw(msg_datestamp); use PublicInbox::MID qw(mids mid_escape); +END { $INC{'Plack/Util.pm'} and warn "$0 should not have loaded Plack::Util\n" } my $dst = shift @ARGV or die "Usage: $0 "; # newest to oldest @@ -34,11 +34,11 @@ if ($dst eq 'NEWS') { } } elsif ($dst eq 'NEWS.atom' || $dst eq 'NEWS.html') { open $out, '>', $tmp or die; - my $ibx = Plack::Util::inline_object( - description => sub { 'public-inbox releases' }, - over => sub { undef }, - search => sub { 1 }, # for WwwStream:_html_top - base_url => sub { "$base_url/" }, + my $ibx = My::MockObject->new( + description => 'public-inbox releases', + over => undef, + search => 1, # for WwwStream:_html_top + base_url => "$base_url/", ); $ibx->{-primary_address} = $addr; my $ctx = { @@ -102,7 +102,7 @@ sub mime2html { sub html_start { my ($out, $ctx) = @_; require PublicInbox::WwwStream; - $ctx->{www} = Plack::Util::inline_object(style => sub { '' }); + $ctx->{www} = My::MockObject->new(style => ''); my $www_stream = PublicInbox::WwwStream->new($ctx); print $out $www_stream->_html_top, '
' or die;
 }
@@ -144,3 +144,19 @@ sub mime2atom  {
 		print $out $str or die;
 	}
 }
+package My::MockObject;
+use strict;
+our $AUTOLOAD;
+
+sub new {
+	my ($class, %values) = @_;
+	bless \%values, $class;
+}
+
+sub AUTOLOAD {
+	my ($self) = @_;
+	my $attr = (split(/::/, $AUTOLOAD))[-1];
+	$self->{$attr};
+}
+
+1;
-- 
cgit v1.2.3-24-ge0c7