File Coverage

blib/lib/Envy/Load.pm
Criterion Covered Total %
statement 30 33 90.9
branch 1 2 50.0
condition n/a
subroutine 7 7 100.0
pod 0 3 0.0
total 38 45 84.4


line stmt bran cond sub pod time code
1 1     1   2113 use strict;
  1         2  
  1         46  
2             package Envy::Load;
3 1     1   6 use Carp;
  1         2  
  1         474  
4             require Envy::DB;
5              
6             $ENV{ENVY_CONTEXT} = $^X;
7              
8             sub import {
9 1     1   677 my ($me, @imports) = @_;
10 1         9 my $db = Envy::DB->new(\%ENV);
11 1         3 for my $pkg (@imports) {
12 1         5 $db->envy(0, $pkg);
13             }
14 1         5 $db->commit;
15 1         5 for ($db->warnings) { print STDERR $_; }
  0         0  
16 1         6 $me->sync($db);
17             }
18              
19             sub sync {
20 3     3 0 5 my ($e, $db) = @_;
21 3         10 for my $z ($db->to_sync()) {
22 20         29 my ($k,$v) = @$z;
23 20 50       31 if (defined $v) {
24 20         105 $ENV{$k} = $v;
25             } else {
26 0         0 delete $ENV{$k};
27             }
28             }
29             }
30              
31             sub new {
32 1     1 0 308 my $class = shift;
33 1         8 my %old = %ENV;
34 1         6 bless \%old, $class;
35             }
36              
37             sub load {
38 2     2 0 361 my $e = shift;
39 2         12 my $db = Envy::DB->new(\%ENV);
40 2         5 for my $pkg (@_) {
41 2         8 $db->envy(0, $pkg);
42             }
43 2         8 $db->commit;
44 2         7 $e->sync($db);
45 2         14 for ($db->warnings) { print STDERR $_; }
  0         0  
46             }
47              
48             sub DESTROY {
49 1     1   443 my $o = shift;
50 1         38 %ENV = %$o;
51             }
52              
53             1;
54             __END__