File Coverage

blib/lib/Language/P/Toy/Value/ActiveScalar.pm
Criterion Covered Total %
statement 18 34 52.9
branch n/a
condition n/a
subroutine 6 15 40.0
pod 0 5 0.0
total 24 54 44.4


line stmt bran cond sub pod time code
1             package Language::P::Toy::Value::ActiveScalar;
2              
3 100     100   1425 use strict;
  100         217  
  100         4911  
4 100     100   554 use warnings;
  100         202  
  100         3621  
5 100     100   513 use base qw(Language::P::Toy::Value::Scalar);
  100         228  
  100         41630  
6              
7             sub _get {
8 0     0     my( $self ) = @_;
9              
10 0           Carp::confess "Implement active _get";
11             }
12              
13             sub _set {
14 0     0     my( $self, $other ) = @_;
15              
16 0           Carp::confess "Implement active _set";
17             }
18              
19             sub as_scalar {
20 0     0 0   my( $self ) = @_;
21              
22 0           return $self->_get;
23             }
24              
25             sub assign {
26 0     0 0   my( $self, $other ) = @_;
27              
28 0           $self->_set( $other );
29             }
30              
31             sub as_string {
32 0     0 0   my( $self ) = @_;
33              
34 0           return $self->_get->as_string;
35             }
36              
37             sub as_integer {
38 0     0 0   my( $self ) = @_;
39              
40 0           return $self->_get->as_integer;
41             }
42              
43             sub as_float {
44 0     0 0   my( $self ) = @_;
45              
46 0           return $self->_get->as_float;
47             }
48              
49             package Language::P::Toy::Value::ActiveScalarCallbacks;
50              
51 100     100   599 use strict;
  100         233  
  100         2981  
52 100     100   572 use warnings;
  100         213  
  100         4060  
53 100     100   578 use base qw(Language::P::Toy::Value::ActiveScalar);
  100         212  
  100         17525  
54              
55             __PACKAGE__->mk_ro_accessors( qw(get_callback set_callback) );
56              
57 0     0     sub _get { $_[0]->get_callback->( $_[0] ) }
58 0     0     sub _set { $_[0]->set_callback->( $_[0], $_[1] ) }
59              
60             1;