Add built local::lib
[catagits/Gitalist.git] / local-lib5 / man / man3 / MooseX::Clone::Meta::Attribute::Trait::StorableClone.3pm
CommitLineData
3fea05b9 1.\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.10)
2.\"
3.\" Standard preamble:
4.\" ========================================================================
5.de Sp \" Vertical space (when we can't use .PP)
6.if t .sp .5v
7.if n .sp
8..
9.de Vb \" Begin verbatim text
10.ft CW
11.nf
12.ne \\$1
13..
14.de Ve \" End verbatim text
15.ft R
16.fi
17..
18.\" Set up some character translations and predefined strings. \*(-- will
19.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
20.\" double quote, and \*(R" will give a right double quote. \*(C+ will
21.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
22.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
23.\" nothing in troff, for use with C<>.
24.tr \(*W-
25.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
26.ie n \{\
27. ds -- \(*W-
28. ds PI pi
29. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
30. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
31. ds L" ""
32. ds R" ""
33. ds C` ""
34. ds C' ""
35'br\}
36.el\{\
37. ds -- \|\(em\|
38. ds PI \(*p
39. ds L" ``
40. ds R" ''
41'br\}
42.\"
43.\" Escape single quotes in literal strings from groff's Unicode transform.
44.ie \n(.g .ds Aq \(aq
45.el .ds Aq '
46.\"
47.\" If the F register is turned on, we'll generate index entries on stderr for
48.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
49.\" entries marked with X<> in POD. Of course, you'll have to process the
50.\" output yourself in some meaningful fashion.
51.ie \nF \{\
52. de IX
53. tm Index:\\$1\t\\n%\t"\\$2"
54..
55. nr % 0
56. rr F
57.\}
58.el \{\
59. de IX
60..
61.\}
62.\"
63.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
64.\" Fear. Run. Save yourself. No user-serviceable parts.
65. \" fudge factors for nroff and troff
66.if n \{\
67. ds #H 0
68. ds #V .8m
69. ds #F .3m
70. ds #[ \f1
71. ds #] \fP
72.\}
73.if t \{\
74. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
75. ds #V .6m
76. ds #F 0
77. ds #[ \&
78. ds #] \&
79.\}
80. \" simple accents for nroff and troff
81.if n \{\
82. ds ' \&
83. ds ` \&
84. ds ^ \&
85. ds , \&
86. ds ~ ~
87. ds /
88.\}
89.if t \{\
90. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
91. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
92. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
93. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
94. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
95. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
96.\}
97. \" troff and (daisy-wheel) nroff accents
98.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
99.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
100.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
101.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
102.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
103.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
104.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
105.ds ae a\h'-(\w'a'u*4/10)'e
106.ds Ae A\h'-(\w'A'u*4/10)'E
107. \" corrections for vroff
108.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
109.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
110. \" for low resolution devices (crt and lpr)
111.if \n(.H>23 .if \n(.V>19 \
112\{\
113. ds : e
114. ds 8 ss
115. ds o a
116. ds d- d\h'-1'\(ga
117. ds D- D\h'-1'\(hy
118. ds th \o'bp'
119. ds Th \o'LP'
120. ds ae ae
121. ds Ae AE
122.\}
123.rm #[ #] #H #V #F C
124.\" ========================================================================
125.\"
126.IX Title "MooseX::Clone::Meta::Attribute::Trait::StorableClone 3"
127.TH MooseX::Clone::Meta::Attribute::Trait::StorableClone 3 "2009-04-11" "perl v5.8.8" "User Contributed Perl Documentation"
128.\" For nroff, turn off justification. Always turn off hyphenation; it makes
129.\" way too many mistakes in technical documents.
130.if n .ad l
131.nh
132.SH "NAME"
133MooseX::Clone::Meta::Attribute::Trait::StorableClone \- The Moose::Meta::Attribute
134trait for deeply cloning attributes using Storable.
135.SH "SYNOPSIS"
136.IX Header "SYNOPSIS"
137.Vb 1
138\& # see MooseX::Clone
139\&
140\& has foo => (
141\& traits => [qw(StorableClone)],
142\& isa => "Something",
143\& );
144\&
145\& my $clone = $object\->clone; # $clone\->foo will equal Storable::dclone($object\->foo)
146.Ve
147.SH "DESCRIPTION"
148.IX Header "DESCRIPTION"
149This meta attribute trait provides a \f(CW\*(C`clone_value\*(C'\fR method, in the spirit of
150\&\f(CW\*(C`get_value\*(C'\fR and \f(CW\*(C`set_value\*(C'\fR. This allows clone methods such as the one in
151MooseX::Clone to make use of this per-attribute cloning behavior.
152.SH "DERIVATION"
153.IX Header "DERIVATION"
154Deriving this role for your own cloning purposes is encouraged.
155.PP
156This will allow your fine grained cloning semantics to interact with
157MooseX::Clone in the RightX way.
158.SH "ATTRIBUTES"
159.IX Header "ATTRIBUTES"
160.IP "clone_only_objects" 4
161.IX Item "clone_only_objects"
162Whether or not Data::Visitor should be used to clone arbitrary structures.
163Objects found in these structures will be cloned using clone_object_value.
164.Sp
165If true then non object values will be copied over in shallow cloning semantics
166(shared reference).
167.Sp
168Defaults to false (all reference will be cloned).
169.IP "clone_visitor_config" 4
170.IX Item "clone_visitor_config"
171A hash ref used to construct \f(CW\*(C`clone_visitor\*(C'\fR. Defaults to the empty ref.
172.Sp
173This can be used to alter the cloning behavior for non object values.
174.IP "clone_visitor" 4
175.IX Item "clone_visitor"
176The Data::Visitor::Callback object that will be used to clone.
177.Sp
178It has an \f(CW\*(C`object\*(C'\fR handler that delegates to \f(CW\*(C`clone_object_value\*(C'\fR and sets
179\&\f(CW\*(C`tied_as_objects\*(C'\fR to true in order to deeply clone tied structures while
180retaining magic.
181.Sp
182Only used if \f(CW\*(C`clone_only_objects\*(C'\fR is false and the value of the attribute is
183not an object.
184.SH "METHODS"
185.IX Header "METHODS"
186.ie n .IP "clone_value $target, $proto, %args" 4
187.el .IP "clone_value \f(CW$target\fR, \f(CW$proto\fR, \f(CW%args\fR" 4
188.IX Item "clone_value $target, $proto, %args"
189Clones the value the attribute encapsulates from \f(CW$proto\fR into \f(CW$target\fR.
190.ie n .IP "clone_value_data $value, %args" 4
191.el .IP "clone_value_data \f(CW$value\fR, \f(CW%args\fR" 4
192.IX Item "clone_value_data $value, %args"
193Does the actual cloning of the value data by delegating to a \f(CW\*(C`clone\*(C'\fR method on
194the object if any.
195.Sp
196If the object does not support a \f(CW\*(C`clone\*(C'\fR method an error is thrown.
197.Sp
198If the value is not an object then it will not be cloned.
199.Sp
200In the future support for deep cloning of simple refs will be added too.
201.ie n .IP "clone_object_value $object, %args" 4
202.el .IP "clone_object_value \f(CW$object\fR, \f(CW%args\fR" 4
203.IX Item "clone_object_value $object, %args"
204This is the actual workhorse of \f(CW\*(C`clone_value_data\*(C'\fR.
205.ie n .IP "clone_any_value $value, %args" 4
206.el .IP "clone_any_value \f(CW$value\fR, \f(CW%args\fR" 4
207.IX Item "clone_any_value $value, %args"
208Uses \f(CW\*(C`clone_visitor\*(C'\fR to clone all non object values.
209.Sp
210Called from \f(CW\*(C`clone_value_data\*(C'\fR if the value is not an object and
211\&\f(CW\*(C`clone_only_objects\*(C'\fR is false.