1package Toader::Render::Entry::backends::html;
2
3use warnings;
4use strict;
5use base 'Error::Helper';
6
7=head1 NAME
8
9Toader::Render::Entry::backends::html - This handles the html backend stuff for Toader::Render::Entry.
10
11=head1 VERSION
12
13Version 0.1.0
14
15=cut
16
17our $VERSION = '0.1.0';
18
19=head1 SYNOPSIS
20
21    use Toader::Render::Entry::backends::html;
22
23    my $renderer=Toader::Render::Directory::backends::html->new({ toader=>$toader, obj=>$entryObj });
24    my $rendered;
25    if ( $renderer->error ){
26        warn( 'Error:'.$renderer->error.': '.$renderer->errorString );
27    }else{
28        $rendered=$renderer->render($torender);
29    }
30
31While this will error etc, this module is basically a pass through as HTML the native.
32
33=head1 METHODS
34
35=head2 new
36
37This initiates the object.
38
39=head3 args hash ref
40
41=head4 obj
42
43This is the L<Toader::Entry> object to render.
44
45=head4 toader
46
47This is the L<Toader> object to use.
48
49	my $foo=Toader::Render::Entry::backends::html->new(\%args);
50    if($foo->error){
51        warn('error: '.$foo->error.":".$foo->errorString);
52    }
53
54=cut
55
56sub new{
57	my %args;
58	if(defined($_[1])){
59		%args= %{$_[1]};
60	};
61
62	my $self={
63			  error=>undef,
64			  errorString=>'',
65			  perror=>undef,
66			  errorExtra=>{
67				  flags=>{
68					  1=>'noObj',
69					  2=>'noToaderObj',
70					  3=>'objPerror',
71					  4=>'toaderPerror',
72					  5=>'noDirSet',
73					  6=>'nothingToRender',
74				  },
75			  },
76			  };
77	bless $self;
78
79	#make sure we have a Toader::Entry object.
80	if ( ! defined( $args{obj} ) ){
81		$self->{perror}=1;
82		$self->{error}=1;
83		$self->{errorString}='Nothing defined for the Toader::Directory object';
84		$self->warn;
85		return $self;
86	}
87	if ( ref( $args{obj} ) ne 'Toader::Entry' ){
88        $self->{perror}=1;
89        $self->{error}=1;
90        $self->{errorString}='The specified object is not a Toader::Entry object, but a "'.
91			ref( $args{obj} ).'"';
92 		$self->warn;
93		return $self;
94	}
95	$self->{obj}=$args{obj};
96
97	#make sure the object does not have a permanent error set
98	if( ! $self->{obj}->errorblank ){
99		$self->{perror}=1;
100		$self->{error}=3;
101		$self->{errorString}='The Toader::Entry object has a permanent error set';
102		$self->warn;
103		return $self;
104	}
105
106	#make sure a Toader object is given
107    if ( ! defined( $args{toader} ) ){
108        $self->{perror}=1;
109        $self->{error}=2;
110        $self->{errorString}='Nothing defined for the Toader object';
111        $self->warn;
112        return $self;
113    }
114    if ( ref( $args{toader} ) ne 'Toader' ){
115        $self->{perror}=1;
116        $self->{error}=2;
117        $self->{errorString}='The specified object is not a Toader object, but a "'.
118            ref( $args{toader} ).'"';
119        $self->warn;
120        return $self;
121    }
122	$self->{toader}=$args{toader};
123
124    #make sure the Toader object does not have a permanent error set
125    if( ! $self->{toader}->errorblank ){
126        $self->{perror}=1;
127        $self->{error}=4;
128        $self->{errorString}='The Toader object has an permanent error set';
129        $self->warn;
130        return $self;
131    }
132
133    #make sure a directory is set
134    if( ! defined( $self->{obj}->dirGet ) ){
135        $self->{perror}=1;
136        $self->{error}=5;
137        $self->{errorString}='The Toader::Entry object does not have a directory set';
138        $self->warn;
139        return $self;
140    }
141
142	return $self;
143}
144
145=head2 render
146
147This renders the object.
148
149No arguments are taken.
150
151=cut
152
153sub render{
154	my $self=$_[0];
155	my $torender=$_[1];
156
157	if ( ! $self->errorblank ){
158		return undef;
159	}
160
161	if ( !defined( $torender ) ){
162		$self->{error}=6;
163		$self->{errorString}='Nothing to render specified';
164		$self->warn;
165		return undef;
166	}
167
168
169
170	return $torender;
171}
172
173=head1 ERROR CODES
174
175=head2 1, noObj
176
177No L<Toader::Entry> object specified.
178
179=head2 2, noToaderObj
180
181No L<Toader> object specified.
182
183=head2 3, objPerror
184
185The L<Toader::Entry> object has a permanent error set.
186
187=head2 4, toaderPerror
188
189The L<Toader> object has a permanent error set.
190
191=head2 5, noDirSet
192
193The L<Toader::Entry> object does not have a directory set.
194
195=head2 6, nothingToRender
196
197Nothing specified to render.
198
199=head1 AUTHOR
200
201Zane C. Bowers-Hadley, C<< <vvelox at vvelox.net> >>
202
203=head1 BUGS
204
205Please report any bugs or feature requests to C<bug-toader at rt.cpan.org>, or through
206the web interface at L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Toader>.  I will be notified, and then you'll
207automatically be notified of progress on your bug as I make changes.
208
209=head1 SUPPORT
210
211You can find documentation for this module with the perldoc command.
212
213    perldoc Toader::Render::Entry::backends::html
214
215
216You can also look for information at:
217
218=over 4
219
220=item * RT: CPAN's request tracker
221
222L<http://rt.cpan.org/NoAuth/Bugs.html?Dist=Toader>
223
224=item * AnnoCPAN: Annotated CPAN documentation
225
226L<http://annocpan.org/dist/Toader>
227
228=item * CPAN Ratings
229
230L<http://cpanratings.perl.org/d/Toader>
231
232=item * Search CPAN
233
234L<http://search.cpan.org/dist/Toader/>
235
236=back
237
238
239=head1 ACKNOWLEDGEMENTS
240
241
242=head1 LICENSE AND COPYRIGHT
243
244Copyright 2013. Zane C. Bowers-Hadley.
245
246This program is free software; you can redistribute it and/or modify it
247under the terms of either: the GNU General Public License as published
248by the Free Software Foundation; or the Artistic License.
249
250See http://dev.perl.org/licenses/ for more information.
251
252
253=cut
254
2551; # End of Toader::Render::Entry::backends::html
256