File Coverage

blib/lib/CSS/Object/Comment.pm
Criterion Covered Total %
statement 26 26 100.0
branch 2 2 100.0
condition 2 3 66.6
subroutine 9 9 100.0
pod 3 3 100.0
total 42 43 97.6


line stmt bran cond sub pod time code
1             ##----------------------------------------------------------------------------
2             ## CSS Object Oriented - ~/lib/CSS/Object/Comment.pm
3             ## Version v0.1.0
4             ## Copyright(c) 2020 DEGUEST Pte. Ltd.
5             ## Author: Jacques Deguest <@sitael.local>
6             ## Created 2020/06/21
7             ## Modified 2020/06/21
8             ##
9             ##----------------------------------------------------------------------------
10             package CSS::Object::Comment;
11             BEGIN
12             {
13 6     6   47 use strict;
  6         13  
  6         222  
14 6     6   32 use warnings;
  6         18  
  6         205  
15 6     6   32 use parent qw( CSS::Object::Element );
  6         14  
  6         36  
16 6     6   386 use Devel::Confess;
  6         14  
  6         40  
17             use overload (
18 6         45 '""' => 'as_string',
19             fallback => 1,
20 6     6   418 );
  6         19  
21 6     6   1818 our $VERSION = 'v0.1.0';
22             };
23              
24             sub init
25             {
26 8     8 1 924 my $self = shift( @_ );
27 8         94 my $this = shift( @_ );
28 8 100 66     77 if( CORE::length( $this ) && $self->_is_array( $this ) )
29             {
30 5         74 $self->values->push( @$this );
31             }
32             else
33             {
34 3         42 $self->values->push( $this );
35             }
36 8         1319 $self->SUPER::init( @_ );
37 8         36 return( $self );
38             }
39              
40             sub as_string
41             {
42 52     52 1 2285 my $self = shift( @_ );
43 52         176 return( $self->format->comment_as_string( $self ) );
44             }
45              
46 60     60 1 285 sub values { return( shift->_set_get_object_array_object( 'values', 'CSS::Object::Value', @_ ) ); }
47              
48             1;
49              
50             __END__
51              
52             =encoding utf-8
53              
54             =head1 NAME
55              
56             CSS::Object::Comment - CSS Object Oriented Comment
57              
58             =head1 SYNOPSIS
59              
60             use CSS::Object::Comment;
61             my $cmt = CSS::Object::Comment->new( "No comment" ) ||
62             die( CSS::Object::Comment->error );
63              
64             =head1 VERSION
65              
66             v0.1.0
67              
68             =head1 DESCRIPTION
69              
70             L<CSS::Object::Comment> represent a comment inside a style sheet.
71              
72             Comments can appear anywhere between rules or inside rules between properties.
73              
74             =head1 CONSTRUCTOR
75              
76             =head2 new
77              
78             It take either a string or an array reference of string representing comment data.
79              
80             It also takes the following optional arguments.
81              
82             =over 4
83              
84             =item I<debug>
85              
86             This is an integer. The bigger it is and the more verbose is the output.
87              
88             =item I<format>
89              
90             This is a L<CSS::Object::Format> object or one of its child modules.
91              
92             =back
93              
94             =head1 METHODS
95              
96             =head2 as_string
97              
98             This stringify the comment, formatting it propertly
99              
100             =head2 format
101              
102             This is a L<CSS::Object::Format> object or one of its child modules.
103              
104             =head2 values
105              
106             This sets or returns the array object containing the comment lines. This is a L<Module::Generic::Array> object.
107              
108             =head1 AUTHOR
109              
110             Jacques Deguest E<lt>F<jack@deguest.jp>E<gt>
111              
112             =head1 SEE ALSO
113              
114             L<CSS::Object>
115              
116             =head1 COPYRIGHT & LICENSE
117              
118             Copyright (c) 2020 DEGUEST Pte. Ltd.
119              
120             You can use, copy, modify and redistribute this package and associated
121             files under the same terms as Perl itself.
122              
123             =cut