File Coverage

blib/lib/Renard/Curie/Types.pm
Criterion Covered Total %
statement 21 21 100.0
branch n/a
condition n/a
subroutine 7 7 100.0
pod n/a
total 28 28 100.0


line stmt bran cond sub pod time code
1 10     10   5357 use Renard::Curie::Setup;
  10         20  
  10         56  
2             package Renard::Curie::Types;
3             # ABSTRACT: Type library
4             $Renard::Curie::Types::VERSION = '0.002';
5 10         134 use Type::Library 0.008 -base,
6             -declare => [qw(
7             DocumentModel
8             RenderableDocumentModel
9             PageNumber
10 10     10   70 )];
  10         267  
11 10     10   7913 use Type::Utils -all;
  10         37323  
  10         96  
12              
13             # Listed here so that scan-perl-deps can find them
14 10     10   37833 use Types::Path::Tiny ();
  10         162112  
  10         296  
15 10     10   72 use Types::Standard ();
  10         21  
  10         192  
16 10     10   4016 use Types::Common::Numeric qw(PositiveInt PositiveOrZeroInt PositiveNum);
  10         113650  
  10         75  
17              
18 10     10   11565 use Type::Libraries;
  10         4506  
  10         44  
19             Type::Libraries->setup_class(
20             __PACKAGE__,
21             qw(
22             Types::Standard
23             Types::Path::Tiny
24             Types::Common::Numeric
25             )
26             );
27              
28              
29             class_type "DocumentModel",
30             { class => "Renard::Curie::Model::Document" };
31              
32             role_type "RenderableDocumentModel",
33             { role => "Renard::Curie::Model::Document::Role::Renderable" };
34              
35             role_type "RenderablePageModel",
36             { role => "Renard::Curie::Model::Page::Role::CairoRenderable" };
37              
38             declare "PageNumber", parent => PositiveInt;
39              
40             declare "LaxPageNumber", parent => PositiveOrZeroInt;
41              
42             declare "ZoomLevel", parent => PositiveNum;
43              
44             1;
45              
46             __END__
47              
48             =pod
49              
50             =encoding UTF-8
51              
52             =head1 NAME
53              
54             Renard::Curie::Types - Type library
55              
56             =head1 VERSION
57              
58             version 0.002
59              
60             =head1 EXTENDS
61              
62             =over 4
63              
64             =item * L<Type::Library>
65              
66             =item * L<Type::Library>
67              
68             =back
69              
70             =head1 TYPES
71              
72             =head2 DocumentModel
73              
74             A type for any reference that extends L<Renard::Curie::Model::Document>.
75              
76             =head2 RenderableDocumentModel
77              
78             A type for any reference that does
79             L<Renard::Curie::Model::Document::Role::Renderable>.
80              
81             =head2 RenderablePageModel
82              
83             A type for any reference that does
84             L<Renard::Curie::Model::Page::Role::CairoRenderable>.
85              
86             =head2 PageNumber
87              
88             An alias to L<PositiveInt> that can be used for document page number semantics.
89              
90             =head2 LaxPageNumber
91              
92             An alias to L<PositiveOrZeroInt> that can be used for document page number
93             semantics when the source data may contain invalid pages.
94              
95             =head2 ZoomLevel
96              
97             The amount to zoom in on a page. This is a multiplier such that
98              
99             =over 4
100              
101             =item *
102              
103             when the value is C<1.0>, the page area is the standard area
104              
105             =item *
106              
107             when the value is C<2.0>, the page is C<4> times the standard area
108              
109             =item *
110              
111             when the value is C<0.5>, the page is C<0.25> times the standard area
112              
113             =back
114              
115             =head1 TYPE LIBRARIES
116              
117             =over 4
118              
119             =item *
120              
121             L<Types::Standard>
122              
123             =item *
124              
125             L<Types::Path::Tiny>
126              
127             =item *
128              
129             L<Types::Common::Numeric>
130              
131             =back
132              
133             =head1 AUTHOR
134              
135             Project Renard
136              
137             =head1 COPYRIGHT AND LICENSE
138              
139             This software is copyright (c) 2016 by Project Renard.
140              
141             This is free software; you can redistribute it and/or modify it under
142             the same terms as the Perl 5 programming language system itself.
143              
144             =cut