File Coverage

blib/lib/Repl/Spec/Types.pm
Criterion Covered Total %
statement 111 111 100.0
branch n/a
condition n/a
subroutine 37 37 100.0
pod n/a
total 148 148 100.0


line stmt bran cond sub pod time code
1             package Repl::Spec::Types;
2            
3 1     1   6 use strict;
  1         3  
  1         36  
4 1     1   6 use warnings;
  1         3  
  1         31  
5            
6 1     1   557 use Repl::Spec::Type::WhateverType;
  1         3  
  1         32  
7 1     1   638 use Repl::Spec::Type::DefinedType;
  1         4  
  1         24  
8 1     1   475 use Repl::Spec::Type::ScalarType;
  1         2  
  1         22  
9 1     1   470 use Repl::Spec::Type::BooleanType;
  1         6  
  1         24  
10 1     1   506 use Repl::Spec::Type::IntegerType;
  1         3  
  1         26  
11 1     1   591 use Repl::Spec::Type::InstanceType;
  1         3  
  1         36  
12 1     1   619 use Repl::Spec::Type::CheckedArrayType;
  1         4  
  1         30  
13 1     1   669 use Repl::Spec::Type::CheckedHashType;
  1         1  
  1         26  
14 1     1   491 use Repl::Spec::Type::IntegerRangeType;
  1         2  
  1         22  
15 1     1   462 use Repl::Spec::Type::PatternType;
  1         3  
  1         1397  
16 1     1   698 use Repl::Spec::Type::StringEnumType;
  1         3  
  1         32  
17 1     1   639 use Repl::Spec::Type::NumberType;
  1         3  
  1         30  
18 1     1   630 use Repl::Spec::Type::FileType;
  1         2  
  1         26  
19            
20 1     1   585 use Repl::Spec::Args::StdArgList;
  1         3  
  1         166  
21            
22             require Exporter;
23             our @ISA = qw(Exporter);
24             our @EXPORT = qw(
25             WHATEVER_TYPE DEFINED_TYPE
26             SCALAR_TYPE
27             BOOLEAN_TYPE INTEGER_TYPE NUMBER_TYPE HASH_TYPE ARRAY_TYPE PAIR_TYPE LAMBDA_TYPE
28             HASH_HASH_TYPE
29             ARRAY_NUMBER_TYPE
30             MONTH_TYPE DAY_TYPE HOUR_TYPE MINUTE_TYPE SECOND_TYPE
31             EMAIL_TYPE
32             READABLEFILE_TYPE ARRAY_READABLEFILE_TYPE
33            
34             NO_ARGS);
35            
36             our @EXPORT_OK = qw();
37            
38 1     1   8 use constant WHATEVER_TYPE => new Repl::Spec::Type::WhateverType();
  1         2  
  1         9  
39 1     1   4 use constant DEFINED_TYPE => new Repl::Spec::Type::DefinedType();
  1         2  
  1         9  
40 1     1   5 use constant SCALAR_TYPE => new Repl::Spec::Type::ScalarType();
  1         2  
  1         8  
41 1     1   4 use constant BOOLEAN_TYPE => new Repl::Spec::Type::BooleanType();
  1         2  
  1         8  
42 1     1   5 use constant INTEGER_TYPE => new Repl::Spec::Type::IntegerType();
  1         2  
  1         9  
43 1     1   4 use constant NUMBER_TYPE => new Repl::Spec::Type::NumberType();
  1         2  
  1         8  
44 1     1   4 use constant HASH_TYPE => new Repl::Spec::Type::InstanceType("HASH");
  1         3  
  1         9  
45 1     1   4 use constant ARRAY_TYPE => new Repl::Spec::Type::InstanceType("ARRAY");
  1         2  
  1         10  
46 1     1   6 use constant PAIR_TYPE => new Repl::Spec::Type::InstanceType("Repl::Core::Pair");
  1         7  
  1         18  
47 1     1   5 use constant LAMBDA_TYPE => new Repl::Spec::Type::InstanceType("Repl::Core::Lambda");
  1         1  
  1         4  
48            
49 1     1   5 use constant HASH_HASH_TYPE => new Repl::Spec::Type::CheckedHashType(HASH_TYPE);
  1         2  
  1         7  
50 1     1   6 use constant ARRAY_NUMBER_TYPE => new Repl::Spec::Type::CheckedArrayType(NUMBER_TYPE);
  1         2  
  1         8  
51            
52 1     1   5 use constant MONTH_TYPE => new Repl::Spec::Type::IntegerRangeType(1, 12);
  1         2  
  1         9  
53 1     1   5 use constant DAY_TYPE => new Repl::Spec::Type::IntegerRangeType(1, 31);
  1         1  
  1         4  
54 1     1   5 use constant HOUR_TYPE => new Repl::Spec::Type::IntegerRangeType(0, 23);
  1         1  
  1         4  
55 1     1   4 use constant MINUTE_TYPE => new Repl::Spec::Type::IntegerRangeType(0, 59);
  1         2  
  1         4  
56 1     1   5 use constant SECOND_TYPE => new Repl::Spec::Type::IntegerRangeType(0, 59);
  1         2  
  1         3  
57            
58 1     1   5 use constant EMAIL_TYPE => new Repl::Spec::Type::PatternType('email address', '^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$');
  1         2  
  1         9  
59            
60 1     1   5 use constant READABLEFILE_TYPE => new Repl::Spec::Type::FileType(ISFILE=>1, READABLE=>1);
  1         1  
  1         7  
61 1     1   4 use constant ARRAY_READABLEFILE_TYPE => new Repl::Spec::Type::CheckedArrayType(READABLEFILE_TYPE);
  1         2  
  1         4  
62            
63 1     1   5 use constant NO_ARGS => new Repl::Spec::Args::StdArgList([], [], []);
  1         1  
  1         6  
64            
65             1;
66            
67             __END__