File Coverage

blib/lib/Pad/Tie/Plugin/Scalar.pm
Criterion Covered Total %
statement 24 24 100.0
branch n/a
condition 1 3 33.3
subroutine 8 8 100.0
pod 1 2 50.0
total 34 37 91.8


line stmt bran cond sub pod time code
1 1     1   839 use strict;
  1         3  
  1         31  
2 1     1   5 use warnings;
  1         2  
  1         32  
3              
4             package Pad::Tie::Plugin::Scalar;
5              
6 1     1   5 use base 'Pad::Tie::Plugin';
  1         2  
  1         305  
7              
8 1     1 1 4 sub provides { 'scalar' }
9              
10             sub scalar {
11 1     1 0 3 my ($plugin, $ctx, $self, $args) = @_;
12 1   33     10 my $class = ref($plugin) || $plugin;
13 1         9 $args = $plugin->canon_args($args);
14 1         5 for my $method (keys %$args) {
15 1         3 my $name = $args->{$method};
16 1         11 tie $ctx->{"\$$name"}, $class, $self, $method;
17             }
18             }
19              
20             sub TIESCALAR {
21 1     1   2 my ($class, $inv, $method) = @_;
22 1         17 return bless [ $inv, $method ] => $class;
23             }
24              
25             sub FETCH {
26 1     1   37 my ($self, $method) = @{+shift};
  1         9  
27 1         4 return $self->$method;
28             }
29              
30             sub STORE {
31 1     1   1793 my ($self, $method) = @{+shift};
  1         3  
32 1         6 $self->$method(@_);
33             }
34              
35             1;