The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
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 <IF>;

	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