File Coverage

blib/lib/CQL/ProxModifierSet.pm
Criterion Covered Total %
statement 28 28 100.0
branch 6 6 100.0
condition 2 3 66.6
subroutine 7 7 100.0
pod 1 1 100.0
total 44 45 97.7


line stmt bran cond sub pod time code
1             package CQL::ProxModifierSet;
2              
3 8     8   45 use strict;
  8         18  
  8         235  
4 8     8   42 use warnings;
  8         18  
  8         186  
5 8     8   49 use base qw( CQL::ModifierSet );
  8         11  
  8         1228  
6 8     8   53 use CQL::Utils qw( indent xq );
  8         14  
  8         437  
7 8     8   40 use Carp qw( croak );
  8         12  
  8         342  
8 8     8   40 use CQL::ModifierSet;
  8         15  
  8         1426  
9              
10             =head1 NAME
11              
12             CQL::ProxModifierSet - represents a base string and modifier strings
13              
14             =head1 SYNOPSIS
15              
16             =head1 DESCRIPTION
17              
18             This class is used as a delegate by CQLProxNode based on ModifierSet
19             data structure.
20              
21             =head1 METHODS
22              
23             =head2 toCQL()
24              
25             =cut
26              
27             sub toCQL {
28 10     10 1 49 my $self = shift;
29 10         31 my $cql = $self->{base};
30              
31 10         60 my $distance = $self->modifier("distance");
32 10         34 my $relation = $self->modifier("relation");
33 10         99 my $unit = $self->modifier("unit");
34 10         43 my $ordering = $self->modifier("ordering");
35              
36 10 100 66     67 $cql .= "/distance$relation$distance"
37             if defined $distance and defined $relation;
38 10 100       31 $cql .= "/unit=$unit" if defined $unit;
39 10 100       27 $cql .= "/$ordering" if defined $ordering;
40              
41 10         55 return $cql;
42             }
43              
44             1;