--- trunk/lib/Frey/Web.pm 2008/07/16 23:21:19 153 +++ 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,6 +43,34 @@ 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 { @@ -52,7 +80,7 @@ $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} || '' )