Skip Menu |

This queue is for tickets about the DBIx-Class-Schema-Loader CPAN distribution.

Report information
The Basics
Id: 53867
Status: resolved
Priority: 0/
Queue: DBIx-Class-Schema-Loader

People
Owner: Nobody in particular
Requestors: nigel [...] mcnie.name
Cc:
AdminCc:

Bug Information
Severity: Wishlist
Broken in: 0.04999_14
Fixed in: (no value)



Subject: [patch] Control where table comments are displayed in POD
As discussed in #dbix-class. I wished for the POD for table level comments to be in a DESCRIPTION section instead of appended to the table name in the NAME section. Attached is a patch to make the behaviour configurable. It adds two new configuration options: pod_comment_mode and pod_comment_spillover_length. The default for pod_comment_mode maintains backward compatibility for anyone who's used this before, though personally I would be pleased if the default was simply 'description' :) Note: no test cases are included, I couldn't deciper the test system for S::L.
Subject: generate-comment-pod-in-description.patch
Index: lib/DBIx/Class/Schema/Loader.pm =================================================================== --- lib/DBIx/Class/Schema/Loader.pm (revision 8394) +++ lib/DBIx/Class/Schema/Loader.pm (working copy) @@ -488,6 +488,8 @@ kane: Jos Boumans <kane@cpan.org> +waawaamilk: Nigel McNie <nigel@mcnie.name> + ... and lots of other folks. If we forgot you, please write the current maintainer or RT. Index: lib/DBIx/Class/Schema/Loader/Base.pm =================================================================== --- lib/DBIx/Class/Schema/Loader/Base.pm (revision 8394) +++ lib/DBIx/Class/Schema/Loader/Base.pm (working copy) @@ -66,6 +66,8 @@ use_namespaces result_namespace generate_pod + pod_comment_mode + pod_comment_spillover_length /); =head1 NAME @@ -169,6 +171,25 @@ Set this to C<0> to turn off all POD generation. +=head2 pod_comment_mode + +Controls where table comments appear in the generated POD. By default table +comments are appended to the C<NAME> section of the documentation. You can +force a C<DESCRIPTION> section to be generated with the comment instead, or +choose the length threshold at which the comment is forced into the +description. + + pod_comment_mode => 'name' # default behaviour + pod_comment_mode => 'description' # force creation of DESCRIPTION section + pod_comment_mode => 'auto' # use description if length > pod_comment_spillover_length + +=head2 pod_comment_spillover_length + +When pod_comment_mode is set to C<auto>, this is the length of the comment at +which it will be forced into a separate description section. + +The default is C<60> + =head2 relationship_attrs Hashref of attributes to pass to each generated relationship, listed @@ -431,6 +452,8 @@ $self->use_namespaces(1) unless defined $self->use_namespaces; $self->generate_pod(1) unless defined $self->generate_pod; + $self->pod_comment_mode('name') unless defined $self->pod_comment_mode; + $self->pod_comment_spillover_length(60) unless defined $self->pod_comment_spillover_length; $self; } @@ -1395,14 +1418,23 @@ if ( $method eq 'table' ) { my ($table) = @_; + my $pcm = $self->pod_comment_mode; + my ($comment, $comment_overflows, $comment_in_name, $comment_in_desc); + if ( $self->can('_table_comment') ) { + $comment = $self->_table_comment($table); + $comment_overflows = ($comment and length $comment > $self->pod_comment_spillover_length); + $comment_in_name = ($pcm eq 'name' or ($pcm eq 'auto' and !$comment_overflows)); + $comment_in_desc = ($pcm eq 'description' or ($pcm eq 'auto' and $comment_overflows)); + } $self->_pod( $class, "=head1 NAME" ); my $table_descr = $class; - if ( $self->can('_table_comment') ) { - my $comment = $self->_table_comment($table); - $table_descr .= " - " . $comment if $comment; - } + $table_descr .= " - " . $comment if $comment and $comment_in_name; $self->{_class2table}{ $class } = $table; $self->_pod( $class, $table_descr ); + if ($comment and $comment_in_desc) { + $self->_pod( $class, "=head1 DESCRIPTION" ); + $self->_pod( $class, $comment ); + } $self->_pod_cut( $class ); } elsif ( $method eq 'add_columns' ) { $self->_pod( $class, "=head1 ACCESSORS" ); Index: Changes =================================================================== --- Changes (revision 8394) +++ Changes (working copy) @@ -1,6 +1,8 @@ Revision history for Perl extension DBIx::Class::Schema::Loader - added 'generate_pod' option, defaults to on + - added 'pod_comment_mode' and 'pod_comment_spillover_length' to + control table comment generation (waawaamilk) 0.04999_14 2010-01-14 06:47:07 - use_namespaces now default, with upgrade/downgrade support
Applied in 0.05000