]> git.decadent.org.uk Git - maypole.git/commitdiff
Added doc stubs for Aaron's new methods.
authorDavid Baird <cpan.zerofive@googlemail.com>
Thu, 6 Oct 2005 08:32:08 +0000 (08:32 +0000)
committerDavid Baird <cpan.zerofive@googlemail.com>
Thu, 6 Oct 2005 08:32:08 +0000 (08:32 +0000)
Added capability to store multiple attributes to Mp-Model-Base.
Split method_attrs method out of is_public in Mp-Model-Base.

git-svn-id: http://svn.maypole.perl.org/Maypole/trunk@390 48953598-375a-da11-a14b-00016c27c3ee

lib/Apache/MVC.pm
lib/CGI/Maypole.pm
lib/Maypole.pm
lib/Maypole/Model/Base.pm

index 465311293f122422537a498dccff44b7790930e5..827d5d21df3703d8579845364393d9af2e3e4ad1 100644 (file)
@@ -188,12 +188,16 @@ functionality. See L<Maypole> for these:
 
 =item get_template_root
 
 
 =item get_template_root
 
+=item get_protocol
+
 =item parse_args
 
 =item parse_location
 
 =item send_output
 
 =item parse_args
 
 =item parse_location
 
 =item send_output
 
+=item redirect_request
+
 =back
 
 =head1 AUTHOR
 =back
 
 =head1 AUTHOR
index bb6de3f79a1b892cadf91a58159884aaf8ea4107..a4835b8a3c6adfdc74d37e636577d7b4c0a3a572 100644 (file)
@@ -164,12 +164,17 @@ functionality. See L<Maypole> for these:
 
 =item get_template_root
 
 
 =item get_template_root
 
+=item get_protocol
+
 =item parse_args
 
 =item parse_location
 
 =item send_output
 
 =item parse_args
 
 =item parse_location
 
 =item send_output
 
+=item redirect_request
+
+
 =back
 
 =head1 DEPENDANCIES
 =back
 
 =head1 DEPENDANCIES
index 253534087642b277729e1d2e82e456cd8f551255..89eae6b77cf46e15f11343d2c253ea1c3dfe63df 100644 (file)
@@ -532,6 +532,7 @@ You should only need to define this method if you are writing a new
 Maypole backend. It should return something that looks like an Apache
 or CGI request object, it defaults to blank.
 
 Maypole backend. It should return something that looks like an Apache
 or CGI request object, it defaults to blank.
 
+=head3 default_table_view
 
 =head3 is_applicable
 
 
 =head3 is_applicable
 
index d0e9ba81670c357160685195b205736513712b0a..26288c29f15cd32d4d00a0dd117ba215cbc1c333 100644 (file)
@@ -6,9 +6,19 @@ use attributes ();
 
 our %remember;
 
 
 our %remember;
 
-sub MODIFY_CODE_ATTRIBUTES { $remember{ $_[1] } = $_[2]; () }
+sub MODIFY_CODE_ATTRIBUTES 
+{ 
+    shift; # class name not used
+    my ($coderef, @attrs) = @_;
+    
+    $remember{$coderef} = \@attrs; 
+    
+    # previous version took care to return an empty array, not sure why, 
+    # but shall cargo cult it until know better
+    return; 
+}
 
 
-sub FETCH_CODE_ATTRIBUTES { $remember{ $_[1] } || () }
+sub FETCH_CODE_ATTRIBUTES { @{ $remember{$_[1]} || [] } }
 
 sub process {
     my ( $class, $r ) = @_;
 
 sub process {
     my ( $class, $r ) = @_;
@@ -177,16 +187,37 @@ Defaults to checking if the sub has the C<:Exported> attribute.
 
 =cut
 
 
 =cut
 
-sub is_public {
-    my ( $self, $action ) = @_;
-    my $cv = $self->can($action);
-    return 0 unless $cv;
-    my $attrs = join " ", (attributes::get($cv) || ());
-    do {
-        warn "$action not exported" if Maypole->debug;
-        return 0;
-    } unless $attrs =~ /\bExported\b/i;
-    return 1;
+sub is_public 
+{
+    my ($self, $action) = @_;
+    
+    my %attrs = map {$_ => 1} $self->method_attrs($action);
+    
+    return 1 if $attrs{Exported};
+    
+    warn "$action not exported" if Maypole->debug;
+    
+    return 0;
+}
+
+=head2 method_attrs
+
+Returns the list of attributes defined for a method. Maypole itself only
+defines the C<Exported> attribute. 
+
+=cut
+
+sub method_attrs
+{
+    my ($class, $method) = @_;
+    
+    my $cv = $class->can($method);
+    
+    return unless $cv;
+    
+    my @attrs = attributes::get($cv);
+    
+    return @attrs;
 }
 
 =head2 related
 }
 
 =head2 related