]> 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_protocol
+
 =item parse_args
 
 =item parse_location
 
 =item send_output
 
+=item redirect_request
+
 =back
 
 =head1 AUTHOR
index bb6de3f79a1b892cadf91a58159884aaf8ea4107..a4835b8a3c6adfdc74d37e636577d7b4c0a3a572 100644 (file)
@@ -164,12 +164,17 @@ functionality. See L<Maypole> for these:
 
 =item get_template_root
 
+=item get_protocol
+
 =item parse_args
 
 =item parse_location
 
 =item send_output
 
+=item redirect_request
+
+
 =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.
 
+=head3 default_table_view
 
 =head3 is_applicable
 
index d0e9ba81670c357160685195b205736513712b0a..26288c29f15cd32d4d00a0dd117ba215cbc1c333 100644 (file)
@@ -6,9 +6,19 @@ use attributes ();
 
 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 ) = @_;
@@ -177,16 +187,37 @@ Defaults to checking if the sub has the C<:Exported> attribute.
 
 =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