CSS-Inliner
view release on metacpan or search on metacpan
lib/CSS/Inliner/Parser.pm view on Meta::CPAN
# Based in large part on the CSS::Tiny CPAN Module
# http://search.cpan.org/~adamk/CSS-Tiny/
#
# This is version 2 of this module, which concerns itself with very strictly preserving ordering of rules,
# something that has been the focus of this module series from the beginning. We focus more on preservation
# of rule ordering than we do on ease of modifying enclosed rules. If you are attempting to modify
# rules through an API please see CSS::Simple
package CSS::Inliner::Parser;
use strict;
use warnings;
use Carp;
use Storable qw(dclone);
=pod
=head1 NAME
CSS::Inliner::Parser - Interface through which to read/write CSS files while respecting the cascade order
NOTE: This sub-module very seriously focuses on respecting cascade order. As such this module is not for you
if you want to modified a stylesheet once it's read. If you are looking for that functionality you may
want to look at the sister module, CSS::Simple
=head1 SYNOPSIS
use CSS::Inliner::Parser;
my $css = new CSS::Inliner::Parser();
$css->read({ filename => 'input.css' });
#perform manipulations...
$css->write({ filename => 'output.css' });
=head1 DESCRIPTION
Class for reading and writing CSS. Unlike other CSS classes on CPAN this particular module
focuses on respecting the order of selectors. This is very useful for things like... inlining
CSS, or for similar "strict" CSS work.
=cut
BEGIN {
my $members = ['ordered','stylesheet','warns_as_errors','content_warnings'];
#generate all the getter/setter we need
foreach my $member (@{$members}) {
no strict 'refs';
*{'_' . $member} = sub {
my ($self,$value) = @_;
$self->_check_object();
$self->{$member} = $value if defined($value);
return $self->{$member};
}
}
}
=pod
=head1 CONSTRUCTOR
=over 4
=item new ([ OPTIONS ])
Instantiates the CSS::Inliner::Parser object. Sets up class variables that are used during file parsing/processing.
B<warns_as_errors> (optional). Boolean value to indicate whether fatal errors should occur during parse failures.
=back
=cut
sub new {
( run in 0.467 second using v1.01-cache-2.11-cpan-56fb94df46f )