Add built local::lib
[catagits/Gitalist.git] / local-lib5 / man / man3 / Moose::Cookbook::Snack::Types.3pm
CommitLineData
3fea05b9 1.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.3
2.\"
3.\" Standard preamble:
4.\" ========================================================================
5.de Sh \" Subsection heading
6.br
7.if t .Sp
8.ne 5
9.PP
10\fB\\$1\fR
11.PP
12..
13.de Sp \" Vertical space (when we can't use .PP)
14.if t .sp .5v
15.if n .sp
16..
17.de Vb \" Begin verbatim text
18.ft CW
19.nf
20.ne \\$1
21..
22.de Ve \" End verbatim text
23.ft R
24.fi
25..
26.\" Set up some character translations and predefined strings. \*(-- will
27.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
28.\" double quote, and \*(R" will give a right double quote. | will give a
29.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
30.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
31.\" expand to `' in nroff, nothing in troff, for use with C<>.
32.tr \(*W-|\(bv\*(Tr
33.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
34.ie n \{\
35. ds -- \(*W-
36. ds PI pi
37. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
38. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
39. ds L" ""
40. ds R" ""
41. ds C` ""
42. ds C' ""
43'br\}
44.el\{\
45. ds -- \|\(em\|
46. ds PI \(*p
47. ds L" ``
48. ds R" ''
49'br\}
50.\"
51.\" If the F register is turned on, we'll generate index entries on stderr for
52.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
53.\" entries marked with X<> in POD. Of course, you'll have to process the
54.\" output yourself in some meaningful fashion.
55.if \nF \{\
56. de IX
57. tm Index:\\$1\t\\n%\t"\\$2"
58..
59. nr % 0
60. rr F
61.\}
62.\"
63.\" For nroff, turn off justification. Always turn off hyphenation; it makes
64.\" way too many mistakes in technical documents.
65.hy 0
66.if n .na
67.\"
68.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
69.\" Fear. Run. Save yourself. No user-serviceable parts.
70. \" fudge factors for nroff and troff
71.if n \{\
72. ds #H 0
73. ds #V .8m
74. ds #F .3m
75. ds #[ \f1
76. ds #] \fP
77.\}
78.if t \{\
79. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
80. ds #V .6m
81. ds #F 0
82. ds #[ \&
83. ds #] \&
84.\}
85. \" simple accents for nroff and troff
86.if n \{\
87. ds ' \&
88. ds ` \&
89. ds ^ \&
90. ds , \&
91. ds ~ ~
92. ds /
93.\}
94.if t \{\
95. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
96. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
97. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
98. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
99. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
100. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
101.\}
102. \" troff and (daisy-wheel) nroff accents
103.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
104.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
105.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
106.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
107.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
108.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
109.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
110.ds ae a\h'-(\w'a'u*4/10)'e
111.ds Ae A\h'-(\w'A'u*4/10)'E
112. \" corrections for vroff
113.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
114.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
115. \" for low resolution devices (crt and lpr)
116.if \n(.H>23 .if \n(.V>19 \
117\{\
118. ds : e
119. ds 8 ss
120. ds o a
121. ds d- d\h'-1'\(ga
122. ds D- D\h'-1'\(hy
123. ds th \o'bp'
124. ds Th \o'LP'
125. ds ae ae
126. ds Ae AE
127.\}
128.rm #[ #] #H #V #F C
129.\" ========================================================================
130.\"
131.IX Title "Moose::Cookbook::Snack::Types 3"
132.TH Moose::Cookbook::Snack::Types 3 "2009-03-14" "perl v5.8.7" "User Contributed Perl Documentation"
133.SH "NAME"
134Moose::Cookbook::Snack::Types \- Snippets of code for using Types and Type Constraints
135.SH "SYNOPSIS"
136.IX Header "SYNOPSIS"
137.Vb 2
138\& package Point;
139\& use Moose;
140.Ve
141.PP
142.Vb 2
143\& has 'x' => ( isa => 'Int', is => 'ro' );
144\& has 'y' => ( isa => 'Int', is => 'rw' );
145.Ve
146.PP
147.Vb 1
148\& package main;
149.Ve
150.PP
151.Vb 1
152\& my $point = eval { Point\->new( x => 'fifty', y => 'forty' ); };
153.Ve
154.PP
155.Vb 3
156\& if ($@) {
157\& print "Oops: $@";
158\& }
159.Ve
160.PP
161.Vb 4
162\& my $point;
163\& my $xval = 'forty\-two';
164\& my $xattribute = Point\->meta\->find_attribute_by_name('x');
165\& my $xtype_constraint = $xattribute\->type_constraint;
166.Ve
167.PP
168.Vb 6
169\& if ( $xtype_constraint\->check($xval) ) {
170\& $point = Point\->new( x => $xval, y => 0 );
171\& }
172\& else {
173\& print "Value: $xval is not an " . $xtype_constraint\->name . "\en";
174\& }
175.Ve
176.SH "DESCRIPTION"
177.IX Header "DESCRIPTION"
178This is the Point example from Moose::Cookbook::Basics::Recipe1
179with type checking added.
180.PP
181If we try to assign a string value to an attribute that is an \f(CW\*(C`Int\*(C'\fR,
182Moose will die with an explicit error message. The error will include
183the attribute name, as well as the type constraint name and the value
184which failed the constraint check.
185.PP
186We use \f(CW\*(C`eval\*(C'\fR to catch this error message in \f(CW$@\fR.
187.PP
188Later, we get the Moose::Meta::TypeConstraint object from a
189Moose::Meta::Attribute and use the Moose::Meta::TypeConstraint
190to check a value directly.
191.SH "SEE ALSO"
192.IX Header "SEE ALSO"
193.IP "Moose::Cookbook::Basics::Recipe1" 4
194.IX Item "Moose::Cookbook::Basics::Recipe1"
195.PD 0
196.IP "Moose::Utils::TypeConstraints" 4
197.IX Item "Moose::Utils::TypeConstraints"
198.IP "Moose::Meta::Attribute" 4
199.IX Item "Moose::Meta::Attribute"
200.PD
201.SH "AUTHOR"
202.IX Header "AUTHOR"
203Jess Robinson <cpan@desert\-island.me.uk>
204.SH "COPYRIGHT AND LICENSE"
205.IX Header "COPYRIGHT AND LICENSE"
206Copyright 2006\-2009 by Infinity Interactive, Inc.
207.PP
208<http://www.iinteractive.com>
209.PP
210This library is free software; you can redistribute it and/or modify
211it under the same terms as Perl itself.