File Coverage

blib/lib/reform/Property.pm
Criterion Covered Total %
statement 3 16 18.7
branch 0 4 0.0
condition n/a
subroutine 1 4 25.0
pod n/a
total 4 24 16.6


line stmt bran cond sub pod time code
1             # reform::Property.pm
2             # Binds a scalar (typically an instance field) to getter
3             # and setter methods.
4             #
5             # Written by Henning Koch .
6            
7             package reform::Property;
8            
9 1     1   1809 use strict;
  1         2  
  1         355  
10            
11             # this is the constructor for scalar ties
12             sub TIESCALAR {
13 0     0     my ($class, $object, $field) = @_;
14 0           my $self = { object => $object,
15             field => $field };
16 0           bless($self, $class);
17 0           $self;
18             }
19            
20             # this intercepts read accesses
21             sub FETCH
22             {
23 0     0     my ($self) = @_;
24 0           my $getter = "\$self->{object}->get_" . $self->{field} . "()";
25             # print "$getter\n";
26 0           my $re = eval $getter;
27 0 0         $@ and die "Error performing $getter: $@";
28 0           $re;
29             }
30            
31             # this intercepts write accesses
32             sub STORE
33             {
34 0     0     my ($self, $value) = @_;
35 0           my $setter = "\$self->{object}->set_" . $self->{field} . "(\$value)";
36             # print "$setter\n";
37 0           eval $setter;
38 0 0         $@ and die "Error performing $setter: $@";
39             }
40            
41             1;
42