From 6d4fced4acc79d745fcfae972d23c3e0849d277f Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Tue, 4 Feb 2020 04:44:23 +0000 Subject: inbox: simplify ->description and ->cloneurl We can use "//=" from Perl 5.10 to simplify the logic for these methods. The use of chomp() in ->cloneurl was also unnecessary since split(/\s+/s,...) already removes newlines. --- lib/PublicInbox/Inbox.pm | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/lib/PublicInbox/Inbox.pm b/lib/PublicInbox/Inbox.pm index b76d4e5a..accfd974 100644 --- a/lib/PublicInbox/Inbox.pm +++ b/lib/PublicInbox/Inbox.pm @@ -219,25 +219,19 @@ sub try_cat { sub description { my ($self) = @_; - my $desc = $self->{description}; - return $desc if defined $desc; - $desc = try_cat("$self->{inboxdir}/description"); - local $/ = "\n"; - chomp $desc; - $desc =~ s/\s+/ /smg; - $desc = '($INBOX_DIR/description missing)' if $desc eq ''; - $self->{description} = $desc; + $self->{description} //= do { + my $desc = try_cat("$self->{inboxdir}/description"); + local $/ = "\n"; + chomp $desc; + $desc =~ s/\s+/ /smg; + $desc eq '' ? '($INBOX_DIR/description missing)' : $desc; + }; } sub cloneurl { my ($self) = @_; - my $url = $self->{cloneurl}; - return $url if $url; - $url = try_cat("$self->{inboxdir}/cloneurl"); - my @url = split(/\s+/s, $url); - local $/ = "\n"; - chomp @url; - $self->{cloneurl} = \@url; + $self->{cloneurl} //= + [ split(/\s+/s, try_cat("$self->{inboxdir}/cloneurl")) ]; } sub base_url { -- cgit v1.2.3-24-ge0c7