File Coverage

blib/lib/CSS/SAC/Selector/Conditional.pm
Criterion Covered Total %
statement 22 22 100.0
branch 3 6 50.0
condition n/a
subroutine 7 7 100.0
pod 3 3 100.0
total 35 38 92.1


line stmt bran cond sub pod time code
1            
2             ###
3             # CSS::SAC::Selector::Conditional - SAC ConditionalSelector
4             # Robin Berjon
5             # 24/02/2001
6             ###
7            
8             package CSS::SAC::Selector::Conditional;
9 2     2   12 use strict;
  2         5  
  2         81  
10 2     2   12 use vars qw($VERSION);
  2         3  
  2         117  
11             $VERSION = $CSS::SAC::VERSION || '0.03';
12            
13 2     2   10 use base qw(CSS::SAC::Selector::Simple);
  2         5  
  2         227  
14            
15            
16             #---------------------------------------------------------------------#
17             # build the fields for an array based object
18             #---------------------------------------------------------------------#
19 2         18 use Class::ArrayObjects extend => {
20             class => 'CSS::SAC::Selector::Simple',
21             with => [qw(
22             _selector_
23             _condition_
24             )],
25 2     2   12 };
  2         4  
26             #---------------------------------------------------------------------#
27            
28            
29            
30            
31             ### Constructor #######################################################
32             # #
33             # #
34            
35            
36             #---------------------------------------------------------------------#
37             # CSS::SAC::Selector::Conditional->new($type,$selector,$condition)
38             # creates a new sac ConditionalSelector object
39             #---------------------------------------------------------------------#
40             sub new {
41 34 50   34 1 75 my $class = ref($_[0])?ref(shift):shift;
42 34         43 my $type = shift;
43 34         34 my $selector = shift;
44 34         30 my $condition = shift;
45            
46             # create a selector
47 34         121 my $csel = $class->SUPER::new($type);
48            
49             # add our fields
50 34         256 $csel->[_condition_] = $condition;
51 34         48 $csel->[_selector_] = $selector;
52            
53 34         104 return $csel;
54             }
55             #---------------------------------------------------------------------#
56            
57            
58             # #
59             # #
60             ### Constructor #######################################################
61            
62            
63            
64             ### Accessors #########################################################
65             # #
66             # #
67            
68             *CSS::SAC::Selector::Conditional::getCondition = \&Condition;
69             *CSS::SAC::Selector::Conditional::getSimpleSelector = \&SimpleSelector;
70            
71             #---------------------------------------------------------------------#
72             # my $cond = $csel->Condition()
73             # $csel->Condition($cond)
74             # get/set the selector's condition
75             #---------------------------------------------------------------------#
76             sub Condition {
77 34 50   34 1 164 (@_==2) ? $_[0]->[_condition_] = $_[1] :
78             $_[0]->[_condition_];
79             }
80             #---------------------------------------------------------------------#
81            
82            
83             #---------------------------------------------------------------------#
84             # my $cond = $csel->SimpleSelector()
85             # $csel->SimpleSelector($cond)
86             # get/set the selector's simple selector
87             #---------------------------------------------------------------------#
88             sub SimpleSelector {
89 34 50   34 1 652 (@_==2) ? $_[0]->[_selector_] = $_[1] :
90             $_[0]->[_selector_];
91             }
92             #---------------------------------------------------------------------#
93            
94            
95             # #
96             # #
97             ### Accessors #########################################################
98            
99            
100            
101             1;
102            
103             =pod
104            
105             =head1 NAME
106            
107             CSS::SAC::Selector::Conditional - SAC ConditionalSelector
108            
109             =head1 SYNOPSIS
110            
111             see CSS::SAC::Selector
112            
113             =head1 DESCRIPTION
114            
115             This is a subclass of CSS::SAC::Selector::Simple, look there for more
116             documentation. This class adds the following methods (which also exist
117             in spec style, simply prepend them with 'get'):
118            
119             =head1 METHODS
120            
121             =over
122            
123             =item * CSS::SAC::Selector::Conditional->new($type,$selector,$condition)
124             =item * $sel->new($type,$selector,$condition)
125            
126             Creates a new conditional selector.
127            
128             =item * $csel->Condition([$cond])
129            
130             get/set the selector's condition
131            
132             =item * $csel->SimpleSelector([$cond])
133            
134             get/set the selector's simple selector
135            
136             =back
137            
138             =head1 AUTHOR
139            
140             Robin Berjon
141            
142             This module is licensed under the same terms as Perl itself.
143            
144             =cut
145            
146