File Coverage

blib/lib/JSV/Keyword.pm
Criterion Covered Total %
statement 16 19 84.2
branch n/a
condition 2 3 66.6
subroutine 6 9 66.6
pod 0 5 0.0
total 24 36 66.6


line stmt bran cond sub pod time code
1             package JSV::Keyword;
2              
3 44     44   191 use strict;
  44         66  
  44         1088  
4 44     44   236 use warnings;
  44         72  
  44         1069  
5              
6 44     44   188 use Carp;
  44         65  
  44         2367  
7 44     44   183 use Exporter qw(import);
  44         75  
  44         12547  
8              
9             our @EXPORT_OK = qw(
10             INSTANCE_TYPE_NUMERIC
11             INSTANCE_TYPE_STRING
12             INSTANCE_TYPE_ARRAY
13             INSTANCE_TYPE_OBJECT
14             INSTANCE_TYPE_ANY
15             );
16              
17             our %EXPORT_TAGS = (
18             constants => [qw(
19             INSTANCE_TYPE_NUMERIC
20             INSTANCE_TYPE_STRING
21             INSTANCE_TYPE_ARRAY
22             INSTANCE_TYPE_OBJECT
23             INSTANCE_TYPE_ANY
24             )]
25             );
26              
27             sub INSTANCE_TYPE_NUMERIC () { 1; }
28             sub INSTANCE_TYPE_STRING () { 2; }
29             sub INSTANCE_TYPE_ARRAY () { 3; }
30             sub INSTANCE_TYPE_OBJECT () { 4; }
31             sub INSTANCE_TYPE_ANY () { 5; }
32              
33             sub instance_type {
34 0     0 0 0 croak "instance_type method is abstract method";
35             }
36              
37             sub keyword {
38 0     0 0 0 croak "keyword method is abstract method";
39             }
40              
41 1312     1312 0 3653 sub additional_keywords { return []; }
42              
43             sub keyword_priority {
44 0     0 0 0 croak "keyword_priority method is abstract method";
45             }
46              
47             sub keyword_value {
48 2529     2529 0 4038 my ($class, $schema, $keyword) = @_;
49 2529   66     9841 $keyword ||= $class->keyword;
50 2529         13433 return $schema->{$keyword};
51             }
52              
53             1;