File Coverage

lib/WebService/OpenSky/Types.pm
Criterion Covered Total %
statement 12 12 100.0
branch n/a
condition n/a
subroutine 5 5 100.0
pod n/a
total 17 17 100.0


line stmt bran cond sub pod time code
1             package WebService::OpenSky::Types;
2              
3             # ABSTRACT: Type library for WebService::OpenSky
4              
5 9     9   114 use v5.20.0;
  9         33  
6 9     9   51 use warnings;
  9         22  
  9         406  
7              
8             use Type::Library
9 9         129 -base,
10             -declare => qw(
11             Longitude
12             Latitude
13             Route
14 9     9   55 );
  9         27  
15              
16 9     9   7459 use Type::Utils -all;
  9         23  
  9         91  
17             our $VERSION = '0.3';
18              
19             BEGIN {
20 9     9   25598 extends qw(
21             Types::Standard
22             Types::Common::Numeric
23             Types::Common::String
24             );
25             }
26              
27             declare Longitude, as Num, where { $_ >= -180 and $_ <= 180 };
28             declare Latitude, as Num, where { $_ >= -90 and $_ <= 90 };
29             declare Route, as NonEmptySimpleStr, where {
30             $_ =~ m{
31             ^
32             /\w+
33             (?:/\w+)*
34             $}x
35             };
36              
37             __END__
38              
39             =pod
40              
41             =encoding UTF-8
42              
43             =head1 NAME
44              
45             WebService::OpenSky::Types - Type library for WebService::OpenSky
46              
47             =head1 VERSION
48              
49             version 0.3
50              
51             =head1 DESCRIPTION
52              
53             No user-serviceable parts inside.
54              
55             =head1 CUSTOM TYPES
56              
57             =head2 Longitude
58              
59             A number between -180 and 180, inclusive.
60              
61             =head2 Latitude
62              
63             A number between -90 and 90, inclusive.
64              
65             =head2 Route
66              
67             A non-empty string that matches C<< /^\/\w+(?:\/\w+)*$/ >>.
68              
69             =head1 AUTHOR
70              
71             Curtis "Ovid" Poe <curtis.poe@gmail.com>
72              
73             =head1 COPYRIGHT AND LICENSE
74              
75             This software is Copyright (c) 2023 by Curtis "Ovid" Poe.
76              
77             This is free software, licensed under:
78              
79             The Artistic License 2.0 (GPL Compatible)
80              
81             =cut