File Coverage

blib/lib/SpeL/Object/Bracketconstruction.pm
Criterion Covered Total %
statement 32 34 94.1
branch 9 14 64.2
condition n/a
subroutine 7 7 100.0
pod 1 1 100.0
total 49 56 87.5


line stmt bran cond sub pod time code
1             # -*- cperl -*-
2             # ABSTRACT: LaTeX bracketconstruction (math) object
3              
4              
5 41     41   1642 use strict;
  41         92  
  41         1553  
6 41     41   228 use warnings;
  41         77  
  41         2692  
7             package SpeL::Object::Bracketconstruction;
8              
9 41     41   246 use parent 'Exporter';
  41         73  
  41         222  
10 41     41   2385 use Carp;
  41         83  
  41         2852  
11 41     41   2226 use SpeL::I18n;
  41         134  
  41         1163  
12 41     41   907 use SpeL::Object::MathUnit;
  41         74  
  41         21449  
13              
14              
15              
16              
17             sub read {
18 79     79 1 795 my $self = shift;
19 79         190 my ( $level ) = @_;
20              
21 79         263 $self->{obracket} =~ s/\\left\s*//;
22 79         227 $self->{cbracket} =~ s/\\right\s*//;
23 79         742 my $matchof = {
24             '(' => ')',
25             '[' => ']',
26             '{' => '}',
27             '\{' => '\}',
28             '|' => '|',
29             '\|' => '\|',
30             '.' => '.',
31             };
32 79 100       331 if ( $matchof->{$self->{obracket}} eq $self->{cbracket} ) {
33 77 100       522 if ( $self->{obracket} =~ /\(|\[|\{|\\\{/ ) {
    50          
    0          
34 72         366 return $self->{Component}->read( $level + 1 );
35             }
36             elsif ( $self->{obracket} eq '|' ) {
37             return $SpeL::I18n::lh->maketext( 'Absval',
38 5         34 $self->{Component}->read( $level + 1 ) );
39             }
40             elsif ( $self->{obracket} eq '\|' ) {
41             return $SpeL::I18n::lh->maketext( 'Norm',
42 0         0 $self->{Component}->read( $level + 1 ) );
43             }
44             }
45             else {
46 2 100       8 if ( $self->{obracket} eq '.' ) {
47 1 50       5 if ( $self->{cbracket} eq '|' ) {
48             return $SpeL::I18n::lh->maketext( 'Subjectto',
49 1         37 $self->{Component}->read( $level + 1 ) );
50             }
51             }
52 1 50       4 if ( $self->{cbracket} eq '.' ) {
53 1         6 return $self->{Component}->read( $level + 1 );
54             }
55             }
56 0           die( "Error: I don't know how to read a construct with\n" .
57             " left bracket '$self->{obracket}' and\n" .
58             " right bracket '$self->{cbracket}'.\n" .
59             " If you know how you would like to have it read out loud,\n" .
60             " send it to the maintainer of this package.\n" .
61             " (mailto:walter.daems\@uantwerpen.be)\n" );
62             }
63              
64             1;
65              
66             __END__