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 47     47   237 use strict;
  47         89  
  47         1253  
4 47     47   247 use warnings;
  47         87  
  47         1315  
5              
6 47     47   244 use Carp;
  47         75  
  47         2984  
7 47     47   236 use Exporter qw(import);
  47         92  
  47         15364  
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 4022 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 2571     2571 0 4325 my ($class, $schema, $keyword) = @_;
49 2571   66     10831 $keyword ||= $class->keyword;
50 2571         9488 return $schema->{$keyword};
51             }
52              
53             1;