Added Runtime skeleton.
[catagits/Catalyst-Runtime.git] / lib / Catalyst / View.pm
index d9e884f..51ff5d4 100644 (file)
@@ -32,6 +32,42 @@ action's private name. (See L<Catalyst::Action>.)
 Implements the same methods as other Catalyst components, see
 L<Catalyst::Component>
 
+=head2 process
+
+gives an error message about direct use.
+
+=cut
+
+sub process {
+
+    Catalyst::Exception->throw( message => ( ref $_[0] || $_[0] ).
+            " directly inherits from Catalyst::View. You need to\n".
+            " inherit from a subclass like Catalyst::View::TT instead.\n" );
+
+}
+
+=head2 $c->merge_hash_config( $hashref, $hashref )
+
+Merges two hashes together recursively, giving right-hand precedence.
+
+=cut
+
+sub merge_config_hashes {
+    my ( $self, $lefthash, $righthash ) = @_;
+
+    my %merged = %$lefthash;
+    for my $key ( keys %$righthash ) {\r
+        my $right_ref = ( ref $righthash->{ $key } || '' ) eq 'HASH';\r
+        my $left_ref  = ( ( exists $lefthash->{ $key } && ref $lefthash->{ $key } ) || '' ) eq 'HASH';\r
+        if( $right_ref and $left_ref ) {\r
+            $merged{ $key } = $self->merge_config_hashes(
+                $lefthash->{ $key }, $righthash->{ $key }
+            );\r
+        }
+    }
+}
+
+
 =head1 AUTHOR
 
 Sebastian Riedel, C<sri@oook.de>