—package
JQuery::CSS ;
our
$VERSION
=
'1.00'
;
use
strict ;
use
warnings ;
use
CSS ;
use
Carp ;
sub
new {
my
$this
=
shift
;
my
$class
=
ref
(
$this
) ||
$this
;
my
$my
;
croak
"Invalid number of argument"
if
@_
% 2 ;
%{
$my
->{param}} =
@_
;
carp
"Must have file, hash or text"
unless
exists
$my
->{param}{file} or
exists
$my
->{param}{hash} or
exists
$my
->{param}{text} ;
my
$css
= new CSS({
'adaptor'
=>
'CSS::Adaptor::Pretty'
});
if
(
exists
$my
->{param}{file}) {
my
$file
=
$my
->{param}{file} ;
}
if
(
exists
$my
->{param}{text}) {
$css
->read_string(
$my
->{param}{text}) ;
}
if
(
exists
$my
->{param}{hash}) {
my
$text
;
my
$hash
=
$my
->{param}{hash} ;
for
my
$key
(
keys
%$hash
) {
$text
.=
"$key {"
;
my
@subKeys
=
keys
(%{
$hash
->{
$key
}}) ;
for
my
$subKey
(
@subKeys
) {
$text
.=
$subKey
.
": "
;
my
$v
=
$hash
->{
$key
}{
$subKey
} ;
$text
.=
$v
.
"; "
;
}
$text
.=
"}\n"
;
}
$css
->read_string(
$text
) ;
}
$my
->{css} =
$css
;
bless
$my
,
$class
;
return
$my
;
}
sub
output_text {
my
$my
=
shift
;
my
$id
=
shift
;
# This is a filename
if
(
exists
$my
->{param}{file}) {
my
$fileName
=
$my
->{param}{file} ;
my
$css
=
qq[<style type="text/css">\@import "$fileName";</style>\n]
;
return
$css
;
}
if
(
exists
$my
->{param}{text} or
exists
$my
->{param}{hash}) {
my
$css
=
$my
->{css} ;
my
$result
=
qq[<style type="text/css">\n]
.
$css
->output() .
"</style>"
;
return
$result
;
}
}
1;
__END__
=head1 NAME
JQuery::CSS - a CSS helper
=head1 VERSION
Version 1.00
=cut
=head1 SYNOPSIS
Allow CSS to be defined either as a file, text or a hash
my $css = new JQuery::CSS(file => '/jquery_js/dates/default.css') ;
$css->output_text ;
=head1 DESCRIPTION
The CSS is created and will normally be added to JQuery. JQuery will
then output the css automatically, so there will generally be no need
to call $css->output_text.
my $css = new JQuery::CSS(file => '/jquery_js/dates/default.css') ;
$css->output_text ;
my $css = new JQuery::CSS( text => "tr.alt td {background: #ecf6fc;} \
tr.over td {background: #bcd4ec;} \
") ;
$css->output_text ;
$css = new JQuery::CSS( hash => {
'.odd' => {'background-color' => "#FFF"} ,
'.even' => {'background-color' => "#D7FF00"} ,
'.highlight' => {'background-color' => "#333",
'color' => '#FFF',
'font-weight' => 'bold',
'border-left' => '1px solid #FFF',
'border-right' => '1px solid #FFF' },
'table' => {width => '900px', 'font-size' => '16px'},
}) ;
$css->output_text ;
my $css = new JQuery::CSS(text => 'body {font-family: Arial, Sans-Serif;font-size: 10px;}') ;
$css->output_text ;
my $css = new JQuery::CSS(text => ['body {font-family: Arial, Sans-Serif;font-size: 10px;}',
'head {font-family: Arial, Sans-Serif;font-size: 10px;}']) ;
=head1 FUNCTIONS
=over
=item new
Instantiate the object
=item output_text
Get the text for the object. Usually, JQuery takes care of calling
this and the user program should not need to call it.
=back
=head1 AUTHOR
Peter Gordon, C<< <peter at pg-consultants.com> >>
=head1 BUGS
Please report any bugs or feature requests to
C<bug-jquery-taconite at rt.cpan.org>, or through the web interface at
I will be notified, and then you'll automatically be notified of progress on
your bug as I make changes.
=head1 SUPPORT
You can find documentation for this module with the perldoc command.
perldoc JQuery
You can also look for information at:
=over 4
=item * AnnoCPAN: Annotated CPAN documentation
=item * CPAN Ratings
=item * RT: CPAN's request tracker
=item * Search CPAN
=back
=head1 ACKNOWLEDGEMENTS
=head1 COPYRIGHT & LICENSE
Copyright 2007 Peter Gordon, all rights reserved.
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
=cut
1; # End of JQuery::CSS