package CGI::Lazy::CSS; use strict; use CGI::Lazy::Globals; #------------------------------------------------------------------------------------------------- sub dir { my $self = shift; return $self->{_dir}; } #---------------------------------------------------------------------------------------- sub file { my $self = shift; my $file = shift; my $dir = $self->dir; return "$dir/$file"; } #---------------------------------------------------------------------------------------- sub load { my $self = shift; my $file = shift; my $dir = $self->dir; $dir =~ s/^\///; #strip a leading slash so we don't double it my $docroot = $ENV{DOCUMENT_ROOT}; $docroot =~ s/\/$//; #strip the trailing slash so we don't double it open IF, "< $docroot/$dir/$file" or $self->q->errorHandler->couldntOpenCssFile($docroot, $dir, $file, $!); my $script; $script .= $_ while ; close IF; return $self->q->csswrap($script); } #------------------------------------------------------------------------------------------------- sub new { my $class = shift; my $q = shift; return bless { _q => $q, _dir => $q->config->cssDir, }, $class; } #------------------------------------------------------------------------------------------------- sub q { my $self = shift; return $self->{_q}; } 1 __END__ =head1 LEGAL #=========================================================================== Copyright (C) 2008 by Nik Ogura. All rights reserved. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. Bug reports and comments to nik.ogura@gmail.com. #=========================================================================== =head1 NAME CGI::Lazy::CSS =head1 SYNOPSIS use CGI::Lazy; my $q = CGI::Lazy->new(); print $q->header, $q->css->load('somefile.css'); =head2 DESCRIPTION CGI::Lazy::CSS is just a convience module for accessing css files. =head1 METHODS =head2 dir () Returns directory containing css specified at lazy object creation =head2 file (css) Returns absolute path to file css parsed with document root and css directory =head3 css Css file name =head2 load (file) Reads file from css directory , wraps in script tags for output to browser =head3 file filename of cssfile =head2 new ( q ) constructor. =head3 q CGI::Lazy object =cut