]> git.decadent.org.uk Git - maypole.git/blobdiff - lib/Maypole/View/Base.pm
change to view::base to only call display_columns, stringify_columns, to_cgi if...
[maypole.git] / lib / Maypole / View / Base.pm
index 753430a20742c292de347c35b7e7dc56ea4124a3..07564c2b8c5b065e008eb36e8ccae347a6962883 100644 (file)
@@ -48,14 +48,14 @@ sub vars {
         my $classmeta = $r->template_args->{classmetadata} ||= {};
         $classmeta->{name}              ||= $class;
         $classmeta->{table}             ||= $class->table;
-        $classmeta->{columns}           ||= [ $class->display_columns ];
-        $classmeta->{list_columns}      ||= [ $class->list_columns ];
-        $classmeta->{colnames}          ||= { $class->column_names };
+        $classmeta->{columns}           ||= [ $class->display_columns ] if ($class->can('display_columns'));
+        $classmeta->{list_columns}      ||= [ $class->list_columns ] if ($class->can('list_columns'));
+        $classmeta->{colnames}          ||= { $class->column_names } if ($class->can('column_names'));
         $classmeta->{related_accessors} ||= [ $class->related($r) ];
         $classmeta->{moniker}           ||= $class->moniker;
         $classmeta->{plural}            ||= $class->plural_moniker;
-        $classmeta->{cgi}               ||= { $class->to_cgi } if ($r->build_form_elements);
-       $classmeta->{stringify_column}  ||= $class->stringify_column;
+        $classmeta->{cgi}               ||= { $class->to_cgi } if ($r->build_form_elements && $class->can('to_cgi'));
+       $classmeta->{stringify_column}  ||= $class->stringify_column if ($class->can('stringify_column'));
 
         # User-friendliness facility for custom template writers.
         if ( @{ $r->objects || [] } > 1 ) {