--- trunk/lib/Frey/Web.pm 2008/07/14 21:22:43 121 +++ trunk/lib/Frey/Web.pm 2008/07/17 17:04:21 154 @@ -6,13 +6,13 @@ use Data::Dump qw/dump/; use Carp qw/confess/; -has 'javascript' => ( +has 'js' => ( metaclass => 'Collection::Array', is => 'rw', isa => 'ArrayRef[Str]', default => sub { [] }, provides => { - 'push' => 'add_javascript', + 'push' => 'add_js', }, ); @@ -43,18 +43,50 @@ return $out; } +=head2 add_head + + $o->add_head( 'path/to/external.js' ); + + my $size = $o->add_head( 'path/to/external.css' ); + +=cut + +sub add_head { + my ( $self, $path ) = @_; + return if ! defined $path || $path eq ''; + $path =~ s!^/!!; + + if ( -e $path ) { + if ( $path =~ m/\.js$/ ) { + $self->add_js( $path ); + } elsif ( $path =~ m/\.css$/ ) { + $self->add_css( $path ); + } else { + confess "can't add_head( $path ) it's not js or css"; + } + } else { + confess "can't find $path: $!"; + } + + return -s $path; +} + +our $reload_counter = 0; + sub page { my $self = shift; my $a = {@_}; + $reload_counter++; + my $html = qq|| - . _unroll_markup( qq||, $self->javascript ) + . _unroll_markup( qq||, $self->js ) . _unroll_markup( qq||, $self->css ) . '' . ( $a->{title} || ref($self) ) . '' . ( $a->{head} || '' ) . '' . ( $a->{body} || '' ) - . qq|
Frey $Frey::VERSION
| + . qq|
Frey $Frey::VERSION reload
| . '' ;