X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;ds=sidebyside;f=lib%2FMaypole.pm;h=770467a0b83a6e8e77d94e3a15521a2506df77cd;hb=3cf2fea8686cea17e128789566a0cd55f2046833;hp=b1e066d648ce778c0c78eb51c781e474c3e33762;hpb=b1dc5246c8917c4d0e11c154537c902baa654c84;p=maypole.git diff --git a/lib/Maypole.pm b/lib/Maypole.pm index b1e066d..770467a 100644 --- a/lib/Maypole.pm +++ b/lib/Maypole.pm @@ -12,7 +12,7 @@ use URI::QueryParam; use NEXT; use File::MMagic::XS qw(:compat); -our $VERSION = '2.11_pre2'; +our $VERSION = '2.11'; our $mmagic = File::MMagic::XS->new(); # proposed privacy conventions: @@ -401,11 +401,16 @@ Constructs a very minimal new Maypole request object. sub new { my ($class) = @_; - my $self = bless { - template_args => {}, config => $class->config, }, $class; + + $self->stash({}); + $self->params({}); + $self->query({}); + $self->template_args({}); + $self->args([]); + $self->objects([]); return $self; } @@ -486,7 +491,14 @@ to the method sub component { my ( $r, $path ) = @_; - my $self = bless { parent => $r, config => $r->{config}, template_args => {}, }, ref $r; + my $self = bless { parent => $r, config => $r->{config}, } , ref $r; + $self->stash({}); + $self->params({}); + $self->query({}); + $self->template_args({}); + $self->args([]); + $self->objects([]); + $self->get_user; my $url = URI->new($path); warn "path : $path\n"; @@ -943,8 +955,6 @@ sub send_output { } - - =back =head2 Path processing and manipulation @@ -1134,6 +1144,24 @@ If the first item in C<$self-Eargs> can be Cd by the model class, it will be removed from C and the retrieved object will be added to the C list. See L for more information. + +=item object + +Alias to get/set the first/only model object. The object will be accessible +in the view templates. + +When used to set the object, will overwrite the request objects +with a single object. + +=cut + +sub object { + my ($r,$object) = @_; + $r->objects([$object]) if ($object); + return undef unless $r->objects(); + return $r->objects->[0]; +} + =item template_args $self->template_args->{foo} = 'bar'; @@ -1142,7 +1170,7 @@ Get/set a hash of template variables. =item stash -A place to put custom application data. Not used by Maypole itself. +A place to put custom application data. Not used by Maypole itself. =item template