File Coverage

blib/lib/File/KeePass/KDBX/Tie/Group.pm
Criterion Covered Total %
statement 11 11 100.0
branch n/a
condition n/a
subroutine 5 5 100.0
pod 0 2 0.0
total 16 18 88.8


line stmt bran cond sub pod time code
1             package File::KeePass::KDBX::Tie::Group;
2             # ABSTRACT: Database group
3              
4 2     2   1014 use warnings;
  2         4  
  2         57  
5 2     2   9 use strict;
  2         4  
  2         43  
6              
7 2     2   7 use parent 'File::KeePass::KDBX::Tie::Hash';
  2         3  
  2         19  
8              
9             our $VERSION = '0.900'; # VERSION
10              
11             my %GET = (
12             accessed => sub { File::KeePass::KDBX::_decode_datetime($_[0]->last_access_time) },
13             usage_count => sub { $_[0]->usage_count },
14             expires_enabled => sub { $_[0]->expires ? 1 : 0 },
15             created => sub { File::KeePass::KDBX::_decode_datetime($_[0]->creation_time) },
16             expires => sub { File::KeePass::KDBX::_decode_datetime($_[0]->expiry_time) },
17             modified => sub { File::KeePass::KDBX::_decode_datetime($_[0]->last_modification_time) },
18             location_changed => sub { File::KeePass::KDBX::_decode_datetime($_[0]->location_changed) },
19             level => sub { $_[0]->depth },
20             notes => sub { $_[0]->notes },
21             id => sub { $_[0]->uuid },
22             expanded => sub { $_[0]->is_expanded ? 1 : 0 },
23             icon => sub { $_[0]->icon_id + 0 },
24             title => sub { $_[0]->name },
25             auto_type_default => sub { $_[0]->default_auto_type_sequence },
26             auto_type_enabled => sub { File::KeePass::KDBX::_decode_tristate($_[0]->enable_auto_type) },
27             enable_searching => sub { File::KeePass::KDBX::_decode_tristate($_[0]->enable_searching) },
28             groups => sub { $_[-1]->_tie([], 'GroupList', $_[0]) },
29             entries => sub { $_[-1]->_tie([], 'EntryList', $_[0], 'entries') },
30             );
31             my %SET = (
32             accessed => sub { $_[0]->last_access_time(File::KeePass::KDBX::_encode_datetime($_)) },
33             usage_count => sub { $_[0]->usage_count($_) },
34             expires_enabled => sub { $_[0]->expires($_) },
35             created => sub { $_[0]->creation_time(File::KeePass::KDBX::_encode_datetime($_)) },
36             expires => sub { $_[0]->expiry_time(File::KeePass::KDBX::_encode_datetime($_)) },
37             modified => sub { $_[0]->last_modification_time(File::KeePass::KDBX::_encode_datetime($_)) },
38             location_changed => sub { $_[0]->location_changed(File::KeePass::KDBX::_encode_datetime($_)) },
39             level => sub { }, # readonly
40             notes => sub { $_[0]->notes($_) },
41             id => sub { $_[0]->uuid(File::KeePass::KDBX::_encode_uuid($_)) },
42             expanded => sub { $_[0]->is_expanded($_) },
43             icon => sub { $_[0]->icon_id($_) },
44             title => sub { $_[0]->name($_) },
45             auto_type_default => sub { $_[0]->default_auto_type_sequence($_) },
46             auto_type_enabled => sub { $_[0]->enable_auto_type(File::KeePass::KDBX::_encode_tristate($_)) },
47             enable_searching => sub { $_[0]->enable_searching(File::KeePass::KDBX::_encode_tristate($_)) },
48             groups => sub { }, # TODO - Replace all subgroups
49             entries => sub { }, # TODO - Replace all entries
50             );
51              
52 2936     2936 0 6584 sub getters { \%GET }
53 429     429 0 1132 sub setters { \%SET }
54              
55             1;
56              
57             __END__