File Coverage

blib/lib/App/SimpleScan/Substitution/Line.pm
Criterion Covered Total %
statement 38 38 100.0
branch 10 12 83.3
condition n/a
subroutine 11 11 100.0
pod 5 5 100.0
total 64 66 96.9


line stmt bran cond sub pod time code
1             package App::SimpleScan::Substitution::Line;
2 4     4   25187 use strict;
  4         9  
  4         145  
3 4     4   21 use warnings;
  4         9  
  4         122  
4 4     4   24 use Carp;
  4         8  
  4         537  
5              
6             our $VERSION = '1.00';
7              
8 4     4   30 use base qw(Class::Accessor::Fast Clone);
  4         9  
  4         3669  
9             __PACKAGE__->mk_accessors( qw(line) );
10              
11             use overload
12 4     4   43958 '""' => sub { $_[0]->line };
  4     22   1215  
  4         48  
  22         3595  
13              
14             sub new {
15 7     7 1 4857 my ($class, $line) = @_;
16 7         16 my $self = {};
17 7         20 bless $self, $class;
18              
19 7 100       52 croak "No line supplied" unless defined $line;
20              
21 6         23 $self->line($line);
22 6         495 $self->no_fixed;
23              
24 6         20 return $self;
25             }
26              
27             sub no_fixed {
28 7     7 1 515 my($self) = @_;
29 7         19 $self->{fixed} = {};
30             }
31              
32             sub fix {
33 24     24 1 89 my ($self, $var, $value) = @_;
34 24 100       62 croak "No variable supplied" unless defined $var;
35 23 100       56 croak "No value supplied" unless defined $value;
36              
37 22         70 $self->{fixed}->{$var} = $value;
38             }
39              
40             sub unfix {
41 1     1 1 2 my ($self, $var) = @_;
42 1 50       4 croak "No variable supplied" unless defined $var;
43 1 50       4 croak "Variable $var is not fixed" unless exists $self->{fixed}->{$var};
44 1         5 delete $self->{fixed}->{$var};
45             }
46              
47             sub fixed {
48 17     17 1 1072 my ($self, $var) = @_;
49 17 100       40 if (defined $var) {
50 2         11 return $self->{fixed}->{$var};
51             }
52             else {
53 15         17 return %{ $self->{fixed} };
  15         97  
54             }
55             }
56              
57             1;
58              
59             __END__