From: Eric Wong <e@80x24.org>
To: meta@public-inbox.org
Subject: [PATCH 1/6] doc: allow NEWS file to be built without Plack::Util
Date: Wed, 1 Jan 2020 09:57:50 +0000 [thread overview]
Message-ID: <20200101095755.31325-2-e@80x24.org> (raw)
In-Reply-To: <20200101095755.31325-1-e@80x24.org>
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(-)
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 <NEWS|NEWS.atom|NEWS.html>";
# 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, '<pre>' 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;
next prev parent reply other threads:[~2020-01-01 9:57 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-01-01 9:57 [PATCH 0/6] doc updates and such Eric Wong
2020-01-01 9:57 ` Eric Wong [this message]
2020-01-01 9:57 ` [PATCH 2/6] build: remove NEWS from dist-git target Eric Wong
2020-01-01 9:57 ` [PATCH 3/6] doc: release notes: set Date for 1.2.0, start 1.3.0 Eric Wong
2020-01-01 9:57 ` [PATCH 4/6] doc/txt2pre: flush output before utime() Eric Wong
2020-01-01 9:57 ` [PATCH 5/6] build: fix xapian-* manpage generation Eric Wong
2020-01-01 9:57 ` [PATCH 6/6] doc: fix a few spelling errors in user-facing docs Eric Wong
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://public-inbox.org/README
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200101095755.31325-2-e@80x24.org \
--to=e@80x24.org \
--cc=meta@public-inbox.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).