Add built local::lib
[catagits/Gitalist.git] / local-lib5 / man / man3 / PPI::Cache.3pm
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 "PPI::Cache 3"
127 .TH PPI::Cache 3 "2009-08-08" "perl v5.8.7" "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"
133 PPI::Cache \- The PPI Document Caching Layer
134 .SH "SYNOPSIS"
135 .IX Header "SYNOPSIS"
136 .Vb 2
137 \&  # Set the cache
138 \&  use PPI::Cache path => \*(Aq/var/cache/ppi\-cache\*(Aq;
139 \&  
140 \&  # Manually create a cache
141 \&  my $Cache = PPI::Cache\->new(
142 \&      path     => \*(Aq/var/cache/perl/class\-PPI\*(Aq,
143 \&      readonly => 1,
144 \&  );
145 .Ve
146 .SH "DESCRIPTION"
147 .IX Header "DESCRIPTION"
148 \&\f(CW\*(C`PPI::Cache\*(C'\fR provides the default caching functionality for \s-1PPI\s0.
149 .PP
150 It integrates automatically with \s-1PPI\s0 itself. Once enabled, any attempt
151 to load a document from the filesystem will be cached via cache.
152 .PP
153 Please note that creating a PPI::Document from raw source or something
154 other object will \fBnot\fR be cached.
155 .SS "Using PPI::Cache"
156 .IX Subsection "Using PPI::Cache"
157 The most common way of using \f(CW\*(C`PPI::Cache\*(C'\fR is to provide parameters to
158 the \f(CW\*(C`use\*(C'\fR statement at the beginning of your program.
159 .PP
160 .Vb 2
161 \&  # Load the class but do not set a cache
162 \&  use PPI::Cache;
163 \&  
164 \&  # Use a fairly normal cache location
165 \&  use PPI::Cache path => \*(Aq/var/cache/ppi\-cache\*(Aq;
166 .Ve
167 .PP
168 Any of the arguments that can be provided to the \f(CW\*(C`new\*(C'\fR constructor can
169 also be provided to \f(CW\*(C`use\*(C'\fR.
170 .SH "METHODS"
171 .IX Header "METHODS"
172 .ie n .SS "new param => $value, ..."
173 .el .SS "new param => \f(CW$value\fP, ..."
174 .IX Subsection "new param => $value, ..."
175 The \f(CW\*(C`new\*(C'\fR constructor creates a new standalone cache object.
176 .PP
177 It takes a number of parameters to control the cache.
178 .IP "path" 4
179 .IX Item "path"
180 The \f(CW\*(C`path\*(C'\fR param sets the base directory for the cache. It must already
181 exist, and must be writable.
182 .IP "readonly" 4
183 .IX Item "readonly"
184 The \f(CW\*(C`readonly\*(C'\fR param is a true/false flag that allows the use of an
185 existing cache by a less-privileged user (such as the web user).
186 .Sp
187 Existing documents will be retrieved from the cache, but new documents
188 will not be written to it.
189 .PP
190 Returns a new \f(CW\*(C`PPI::Cache\*(C'\fR object, or dies on error.
191 .SS "path"
192 .IX Subsection "path"
193 The \f(CW\*(C`path\*(C'\fR accessor returns the path on the local filesystem that is the
194 root of the cache.
195 .SS "readonly"
196 .IX Subsection "readonly"
197 The \f(CW\*(C`readonly\*(C'\fR accessor returns true if documents should not be written
198 to the cache.
199 .ie n .SS "get_document $md5sum | \e$source"
200 .el .SS "get_document \f(CW$md5sum\fP | \e$source"
201 .IX Subsection "get_document $md5sum | $source"
202 The \f(CW\*(C`get_document\*(C'\fR method checks to see if a Document is stored in the
203 cache and retrieves it if so.
204 .ie n .SS "store_document $Document"
205 .el .SS "store_document \f(CW$Document\fP"
206 .IX Subsection "store_document $Document"
207 The \f(CW\*(C`store_document\*(C'\fR method takes a PPI::Document as argument and
208 explicitly adds it to the cache.
209 .PP
210 Returns true if saved, or \f(CW\*(C`undef\*(C'\fR (or dies) on error.
211 .PP
212 \&\s-1FIXME\s0 (make this return either one or the other, not both)
213 .SH "TO DO"
214 .IX Header "TO DO"
215 \&\- Finish the basic functionality
216 .PP
217 \&\- Add support for use PPI::Cache auto-setting \f(CW$PPI::Document::CACHE\fR
218 .SH "SUPPORT"
219 .IX Header "SUPPORT"
220 See the support section in the main module.
221 .SH "AUTHOR"
222 .IX Header "AUTHOR"
223 Adam Kennedy <adamk@cpan.org>
224 .SH "COPYRIGHT"
225 .IX Header "COPYRIGHT"
226 Copyright 2005 Adam Kennedy.
227 .PP
228 This program is free software; you can redistribute
229 it and/or modify it under the same terms as Perl itself.
230 .PP
231 The full text of the license can be found in the
232 \&\s-1LICENSE\s0 file included with this module.