Subject: Re: [PATCHv5 08/12] gitweb: auxiliary function to group data

From: Jakub Narebski <[email-masked]>
Date: Sun, 26 Sep 2010 23:47:15 +0200

On Fri, 24 Sep 2010, Giuseppe Bilotta wrote:

> Subject: gitweb: auxiliary function to group data
>

Errr... what!?  git_group() is not "auxiliary function to group data",
but a template for output of group of data.

It would be probably good to describe how this output looks like
(using e.g. ASII-art mockup) in a commit message.

> Signed-off-by: Giuseppe Bilotta <[email-masked]>
> ---
>  gitweb/gitweb.perl |   16 ++++++++++++++++
>  1 files changed, 16 insertions(+), 0 deletions(-)
> 
> diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
> index 7c62701..8f11fb5 100755
> --- a/gitweb/gitweb.perl
> +++ b/gitweb/gitweb.perl
> @@ -3786,6 +3786,22 @@ sub git_print_header_div {
>  	      "\n</div>\n";
>  }
>  
> +sub git_group {

Name?

> +	my ($class, $id, @rest) = @_;
> +
> +	my $content_func = pop @rest;
> +
> +	$class = join(' ', 'group', $class);
> +
> +	print $cgi->start_div({
> +		-class => $class,
> +		-id => $id,
> +	});
> +	git_print_header_div(@rest);
> +	$content_func->() if defined $content_func;

More defensive programming would be to use

  +	$content_func->() if ref($content_func) eq 'CODE';

Or even:

  +	if (ref($content) eq 'CODE') {
  +		$content->();
  +	} elsif (ref($content) eq 'ARRAY') {
  +		print @$content;
  +	} elsif (!ref($content) && defined($content)) {
  +		print $content;
  +	}

Well, $content could be also open filehandle...

> +	print $cgi->end_div;
> +}

Nice usage of start_div and end_div.

> +
>  sub print_local_time {
>  	print format_local_time(@_);
>  }
> -- 
> 1.7.3.68.g6ec8
> 
> 

-- 
Jakub Narebski
Poland