11a216f9f263d16bb8ccd83b18748428da80ebec
[catagits/Catalyst-Runtime.git] / lib / Catalyst / View.pm
1 package Catalyst::View;
2
3 use Moose;
4 extends 'Catalyst::Component';
5
6 =head1 NAME
7
8 Catalyst::View - Catalyst View base class
9
10 =head1 SYNOPSIS
11
12     package Catalyst::View::Homebrew;
13
14     use base qw/Catalyst::View/;
15
16     sub process {
17     # template processing goes here.
18     }
19
20 =head1 DESCRIPTION
21
22 This is the Catalyst View base class. It's meant to be used as
23 a base class by Catalyst views.
24
25 As a convention, views are expected to read template names from
26 $c->stash->{template}, and put the output into $c->res->body.
27 Some views default to render a template named after the dispatched
28 action's private name. (See L<Catalyst::Action>.)
29
30 =head1 METHODS
31
32 Implements the same methods as other Catalyst components, see
33 L<Catalyst::Component>
34
35 =head2 process
36
37 gives an error message about direct use.
38
39 =cut
40
41 sub process {
42
43     Catalyst::Exception->throw( message => ( ref $_[0] || $_[0] ).
44             " directly inherits from Catalyst::View. You need to\n".
45             " inherit from a subclass like Catalyst::View::TT instead.\n" );
46
47 }
48
49 =head2 $c->merge_hash_config( $hashref, $hashref )
50
51 Merges two hashes together recursively, giving right-hand precedence.
52
53 =cut
54
55 =head1 AUTHOR
56
57 Sebastian Riedel, C<sri@oook.de>
58 Marcus Ramberg, C<mramberg@cpan.org>
59
60 =head1 COPYRIGHT
61
62 This program is free software, you can redistribute it and/or modify it under
63 the same terms as Perl itself.
64
65 =cut
66
67 1;