valise 0.8.2 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,367 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!-- Created with Inkscape (http://www.inkscape.org/) -->
3
+
4
+ <svg
5
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
6
+ xmlns:cc="http://creativecommons.org/ns#"
7
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
8
+ xmlns:svg="http://www.w3.org/2000/svg"
9
+ xmlns="http://www.w3.org/2000/svg"
10
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
11
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
12
+ width="744.09448819"
13
+ height="1052.3622047"
14
+ id="svg2"
15
+ version="1.1"
16
+ inkscape:version="0.48.4 r9939"
17
+ sodipodi:docname="New document 1">
18
+ <defs
19
+ id="defs4">
20
+ <marker
21
+ inkscape:stockid="Arrow2Lend"
22
+ orient="auto"
23
+ refY="0.0"
24
+ refX="0.0"
25
+ id="Arrow2Lend"
26
+ style="overflow:visible;">
27
+ <path
28
+ id="path4033"
29
+ style="fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
30
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
31
+ transform="scale(1.1) rotate(180) translate(1,0)" />
32
+ </marker>
33
+ <marker
34
+ inkscape:stockid="Arrow1Lstart"
35
+ orient="auto"
36
+ refY="0.0"
37
+ refX="0.0"
38
+ id="Arrow1Lstart"
39
+ style="overflow:visible">
40
+ <path
41
+ id="path4012"
42
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
43
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
44
+ transform="scale(0.8) translate(12.5,0)" />
45
+ </marker>
46
+ </defs>
47
+ <sodipodi:namedview
48
+ id="base"
49
+ pagecolor="#ffffff"
50
+ bordercolor="#666666"
51
+ borderopacity="1.0"
52
+ inkscape:pageopacity="0.0"
53
+ inkscape:pageshadow="2"
54
+ inkscape:zoom="0.69120603"
55
+ inkscape:cx="343.55061"
56
+ inkscape:cy="810.9786"
57
+ inkscape:document-units="px"
58
+ inkscape:current-layer="layer1"
59
+ showgrid="false"
60
+ inkscape:window-width="1313"
61
+ inkscape:window-height="537"
62
+ inkscape:window-x="0"
63
+ inkscape:window-y="24"
64
+ inkscape:window-maximized="0" />
65
+ <metadata
66
+ id="metadata7">
67
+ <rdf:RDF>
68
+ <cc:Work
69
+ rdf:about="">
70
+ <dc:format>image/svg+xml</dc:format>
71
+ <dc:type
72
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
73
+ <dc:title></dc:title>
74
+ </cc:Work>
75
+ </rdf:RDF>
76
+ </metadata>
77
+ <g
78
+ inkscape:label="Layer 1"
79
+ inkscape:groupmode="layer"
80
+ id="layer1">
81
+ <g
82
+ id="g3798"
83
+ transform="translate(-19.949479,41.955652)">
84
+ <rect
85
+ rx="8.6162024"
86
+ y="200.83377"
87
+ x="62.030285"
88
+ height="27.033594"
89
+ width="531.12671"
90
+ id="rect2985"
91
+ style="color:#000000;fill:none;stroke:#000000;stroke-width:0.71428078;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
92
+ <text
93
+ sodipodi:linespacing="100%"
94
+ id="text3755"
95
+ y="217.47655"
96
+ x="76.677567"
97
+ style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:100%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
98
+ xml:space="preserve"><tspan
99
+ y="217.47655"
100
+ x="76.677567"
101
+ id="tspan3757"
102
+ sodipodi:role="line">./.appname</tspan></text>
103
+ <text
104
+ sodipodi:linespacing="100%"
105
+ id="text3759"
106
+ y="218.8242"
107
+ x="610.65436"
108
+ style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:100%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
109
+ xml:space="preserve"><tspan
110
+ y="218.8242"
111
+ x="610.65436"
112
+ id="tspan3761"
113
+ sodipodi:role="line">Valise::SearchRoot</tspan></text>
114
+ </g>
115
+ <g
116
+ id="g3798-0"
117
+ transform="translate(-19.949479,95.600395)">
118
+ <rect
119
+ rx="8.6162024"
120
+ y="200.83377"
121
+ x="62.030285"
122
+ height="27.033594"
123
+ width="531.12671"
124
+ id="rect2985-0"
125
+ style="color:#000000;fill:none;stroke:#000000;stroke-width:0.71428078;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
126
+ <text
127
+ sodipodi:linespacing="100%"
128
+ id="text3755-0"
129
+ y="217.47655"
130
+ x="76.677567"
131
+ style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:100%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
132
+ xml:space="preserve"><tspan
133
+ y="217.47655"
134
+ x="76.677567"
135
+ id="tspan3757-9"
136
+ sodipodi:role="line">~/.appname</tspan></text>
137
+ <text
138
+ sodipodi:linespacing="100%"
139
+ id="text3759-9"
140
+ y="218.8242"
141
+ x="610.65436"
142
+ style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:100%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
143
+ xml:space="preserve"><tspan
144
+ y="218.8242"
145
+ x="610.65436"
146
+ id="tspan3761-9"
147
+ sodipodi:role="line">Valise::SearchRoot</tspan></text>
148
+ </g>
149
+ <g
150
+ id="g3798-06"
151
+ transform="translate(-19.949479,149.2451)">
152
+ <rect
153
+ rx="8.6162024"
154
+ y="200.83377"
155
+ x="62.030285"
156
+ height="27.033594"
157
+ width="531.12671"
158
+ id="rect2985-4"
159
+ style="color:#000000;fill:none;stroke:#000000;stroke-width:0.71428078;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
160
+ <text
161
+ sodipodi:linespacing="100%"
162
+ id="text3755-6"
163
+ y="217.47655"
164
+ x="76.677567"
165
+ style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:100%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
166
+ xml:space="preserve"><tspan
167
+ y="217.47655"
168
+ x="76.677567"
169
+ id="tspan3757-92"
170
+ sodipodi:role="line">//usr/share/conf/appname</tspan></text>
171
+ <text
172
+ sodipodi:linespacing="100%"
173
+ id="text3759-2"
174
+ y="218.8242"
175
+ x="610.65436"
176
+ style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:100%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
177
+ xml:space="preserve"><tspan
178
+ y="218.8242"
179
+ x="610.65436"
180
+ id="tspan3761-6"
181
+ sodipodi:role="line">Valise::SearchRoot</tspan></text>
182
+ </g>
183
+ <g
184
+ id="g3798-2"
185
+ transform="translate(-19.949479,202.88984)">
186
+ <rect
187
+ rx="8.6162024"
188
+ y="200.83377"
189
+ x="62.030285"
190
+ height="27.033594"
191
+ width="531.12671"
192
+ id="rect2985-3"
193
+ style="color:#000000;fill:none;stroke:#000000;stroke-width:0.71428078;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
194
+ <text
195
+ sodipodi:linespacing="100%"
196
+ id="text3755-8"
197
+ y="217.47655"
198
+ x="76.677567"
199
+ style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:100%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
200
+ xml:space="preserve"><tspan
201
+ y="217.47655"
202
+ x="76.677567"
203
+ id="tspan3757-1"
204
+ sodipodi:role="line">/etc/appname/</tspan></text>
205
+ <text
206
+ sodipodi:linespacing="100%"
207
+ id="text3759-8"
208
+ y="218.8242"
209
+ x="610.65436"
210
+ style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:100%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
211
+ xml:space="preserve"><tspan
212
+ y="218.8242"
213
+ x="610.65436"
214
+ id="tspan3761-8"
215
+ sodipodi:role="line">Valise::SearchRoot</tspan></text>
216
+ </g>
217
+ <g
218
+ id="g3973">
219
+ <rect
220
+ rx="5.5654726"
221
+ y="130.67731"
222
+ x="234.26569"
223
+ height="321.39227"
224
+ width="23.362465"
225
+ id="rect3872"
226
+ style="color:#000000;fill:none;stroke:#000000;stroke-width:0.69948387;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
227
+ <text
228
+ transform="matrix(0,1,-1,0,0,0)"
229
+ sodipodi:linespacing="100%"
230
+ id="text3874"
231
+ y="-242.63637"
232
+ x="150.679"
233
+ style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:100%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
234
+ xml:space="preserve"><tspan
235
+ y="-242.63637"
236
+ x="150.679"
237
+ id="tspan3876"
238
+ sodipodi:role="line">conf.yaml</tspan></text>
239
+ <text
240
+ transform="matrix(0,1,-1,0,0,0)"
241
+ sodipodi:linespacing="100%"
242
+ id="text3935"
243
+ y="-241.47328"
244
+ x="470.08115"
245
+ style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:100%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
246
+ xml:space="preserve"><tspan
247
+ id="tspan3939"
248
+ y="-241.47328"
249
+ x="470.08115"
250
+ sodipodi:role="line">Valise::Stack</tspan></text>
251
+ </g>
252
+ <g
253
+ id="g3980">
254
+ <text
255
+ transform="matrix(0,1,-1,0,0,0)"
256
+ sodipodi:linespacing="100%"
257
+ id="text3878"
258
+ y="-310.91714"
259
+ x="151.69505"
260
+ style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:100%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
261
+ xml:space="preserve"><tspan
262
+ y="-310.91714"
263
+ x="151.69505"
264
+ id="tspan3880"
265
+ sodipodi:role="line">cache.txt</tspan></text>
266
+ <rect
267
+ rx="5.5625463"
268
+ y="117.66273"
269
+ x="303.7157"
270
+ height="332.95395"
271
+ width="23.350182"
272
+ id="rect3872-3"
273
+ style="color:#000000;fill:none;stroke:#000000;stroke-width:0.71176708;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
274
+ <text
275
+ transform="matrix(0,1,-1,0,0,0)"
276
+ sodipodi:linespacing="100%"
277
+ id="text3935-6"
278
+ y="-310.91714"
279
+ x="470.08115"
280
+ style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:100%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
281
+ xml:space="preserve"><tspan
282
+ id="tspan3939-5"
283
+ y="-310.91714"
284
+ x="470.08115"
285
+ sodipodi:role="line">Valise::Stack</tspan></text>
286
+ </g>
287
+ <g
288
+ id="g3987">
289
+ <text
290
+ transform="matrix(0,1,-1,0,0,0)"
291
+ sodipodi:linespacing="100%"
292
+ id="text3882"
293
+ y="-381.52408"
294
+ x="54.397758"
295
+ style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:100%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
296
+ xml:space="preserve"><tspan
297
+ y="-381.52408"
298
+ x="54.397758"
299
+ id="tspan3884"
300
+ sodipodi:role="line">templates/index.html.erb</tspan></text>
301
+ <rect
302
+ rx="5.5437078"
303
+ y="39.577957"
304
+ x="373.19907"
305
+ height="412.44595"
306
+ width="23.271101"
307
+ id="rect3872-0"
308
+ style="color:#000000;fill:none;stroke:#000000;stroke-width:0.79084736;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
309
+ <text
310
+ transform="matrix(0,1,-1,0,0,0)"
311
+ sodipodi:linespacing="100%"
312
+ id="text3935-8"
313
+ y="-380.36099"
314
+ x="470.08115"
315
+ style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:100%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
316
+ xml:space="preserve"><tspan
317
+ id="tspan3939-56"
318
+ y="-380.36099"
319
+ x="470.08115"
320
+ sodipodi:role="line">Valise::Stack</tspan></text>
321
+ </g>
322
+ <rect
323
+ style="color:#000000;fill:none;stroke:#000000;stroke-width:0.91399997;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
324
+ id="rect3994"
325
+ width="710.3526"
326
+ height="231.47946"
327
+ x="17.36096"
328
+ y="216.14262"
329
+ rx="5.5437078" />
330
+ <rect
331
+ style="color:#000000;fill:none;stroke:#000000;stroke-width:0.91399997;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
332
+ id="rect3996"
333
+ width="41.955654"
334
+ height="43.402401"
335
+ x="363.13339"
336
+ y="287.0332"
337
+ rx="5.5437078" />
338
+ <text
339
+ xml:space="preserve"
340
+ style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:100%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
341
+ x="645.24902"
342
+ y="204.56866"
343
+ id="text3998"
344
+ sodipodi:linespacing="100%"><tspan
345
+ sodipodi:role="line"
346
+ id="tspan4000"
347
+ x="645.24902"
348
+ y="204.56866">Valise::Set</tspan></text>
349
+ <text
350
+ xml:space="preserve"
351
+ style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:100%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
352
+ x="386.28137"
353
+ y="608.21094"
354
+ id="text4002"
355
+ sodipodi:linespacing="100%"><tspan
356
+ sodipodi:role="line"
357
+ id="tspan4004"
358
+ x="386.28137"
359
+ y="608.21094">Valise::Item for (~/.appname/templates/index.html.erb)</tspan></text>
360
+ <path
361
+ style="color:#000000;fill:none;stroke:#000000;stroke-width:0.91399997000000011;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;marker-end:url(#Arrow2Lend)"
362
+ d="m 543.97674,580.72278 c 0,0 -99.82553,-248.84042 -135.99419,-263.30789"
363
+ id="path4006"
364
+ inkscape:connector-curvature="0"
365
+ sodipodi:nodetypes="cc" />
366
+ </g>
367
+ </svg>
@@ -0,0 +1,47 @@
1
+ module Valise
2
+ module Strategies
3
+ class Serialization
4
+ class Tilt < Serialization
5
+ register :tilt
6
+
7
+ def self.template_cache
8
+ @template_cache ||= ::Tilt::Cache.new
9
+ end
10
+
11
+ def initialize(options)
12
+ options ||= {}
13
+ @template_options = options[:template_options] || {}
14
+ @template_cache = options[:template_cache] || self.class.template_cache
15
+ end
16
+
17
+ def dump(item)
18
+ super.data
19
+ end
20
+
21
+ def load(item)
22
+ @template_cache.fetch(item.full_path, @template_options) do
23
+ ::Tilt.new(item.full_path, @template_options) do |tmpl|
24
+ super
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+
32
+ class Set
33
+ def templates(rel_path=nil)
34
+ rel_path ||= "templates"
35
+ new_set = self.sub_set(rel_path)
36
+ new_set = new_set.exts(*([""] + Tilt.mappings.map{|mapping, _| "." + mapping}))
37
+ ::Tilt.mappings.each do |mapping, _|
38
+ options = nil
39
+ if block_given?
40
+ options = yield(mapping)
41
+ end
42
+ new_set.add_serialization_handler("**/*.#{mapping}", :tilt, options)
43
+ end
44
+ new_set
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,18 @@
1
+
2
+ module Valise
3
+ module Adapters
4
+ def self.adapter_for(library, valise_file=nil)
5
+ begin
6
+ require library
7
+ rescue LoadError
8
+ return false
9
+ end
10
+
11
+ valise_file ||= "valise/adapters/#{library}"
12
+ require valise_file
13
+ return true
14
+ end
15
+
16
+ adapter_for "tilt"
17
+ end
18
+ end
data/lib/valise/errors.rb CHANGED
@@ -12,13 +12,10 @@ module Valise
12
12
  class RootNotInSet < Error; end
13
13
  class UnderIndented < Error; end
14
14
 
15
- class WouldClobber < Error
16
- def initialize(item)
17
- @item = item
18
- super("Would clobber #{item.segments.inspect}")
15
+ class UnregisteredStrategy < Error
16
+ def initialize(klass, type)
17
+ super("No #{klass} strategy is registered for #{type.inspect}")
19
18
  end
20
-
21
- attr_reader :item
22
19
  end
23
20
 
24
21
  class CantPopulate < Error
@@ -0,0 +1,39 @@
1
+ module Valise
2
+ module ItemEnum
3
+ include Enumerable
4
+
5
+ class Enumerator
6
+ include ItemEnum
7
+
8
+ def initialize(list, &filter)
9
+ @list = list
10
+ @filter = proc(&filter)
11
+ end
12
+
13
+ def each
14
+ @list.each do |item|
15
+ next unless @filter[item]
16
+ yield(item)
17
+ end
18
+ end
19
+ end
20
+
21
+ def writable
22
+ Enumerator.new(self) do |item|
23
+ item.writable?
24
+ end
25
+ end
26
+
27
+ def absent
28
+ Enumerator.new(self) do |item|
29
+ not item.present?
30
+ end
31
+ end
32
+
33
+ def present
34
+ Enumerator.new(self) do |item|
35
+ item.present?
36
+ end
37
+ end
38
+ end
39
+ end
data/lib/valise/item.rb CHANGED
@@ -1,52 +1,15 @@
1
1
  require 'yaml'
2
2
  require 'valise/utils'
3
+ require 'valise/strategies/serialization'
3
4
 
4
5
  module Valise
5
- class Serialization
6
- @@classes = {}
7
-
8
- class << self
9
- def [](index)
10
- @@classes[index]
11
- end
12
-
13
- def register(index)
14
- @@classes[index] = self
15
- end
16
- end
17
-
18
- class Raw < Serialization
19
- register :raw
20
-
21
- def self.dump(value)
22
- value
23
- end
24
-
25
- def self.load(raw)
26
- raw
27
- end
28
- end
29
-
30
- class YAML < Serialization
31
- register :yaml
32
-
33
- def self.dump(value)
34
- ::YAML::dump(value)
35
- end
36
-
37
- def self.load(raw)
38
- ::YAML::load(raw)
39
- end
40
- end
41
- end
42
-
43
6
  class Item
44
7
  include Unpath
45
8
 
46
9
  def initialize(stack, root, dump_load)
47
10
  @stack = stack
48
11
  @root = root
49
- @dump_load = dump_load || Serialization::Raw
12
+ @dump_load = dump_load
50
13
  @contents = nil
51
14
  end
52
15
 
@@ -85,6 +48,10 @@ module Valise
85
48
  File::open(full_path)
86
49
  end
87
50
 
51
+ def raw_contents
52
+ @root.get_from(self)
53
+ end
54
+
88
55
  def open(&block)
89
56
  File::open(full_path, "r", &block)
90
57
  end
@@ -104,11 +71,11 @@ module Valise
104
71
  end
105
72
 
106
73
  def dump_contents
107
- @dump_load.dump(load_contents) #@contents?
74
+ @dump_load.dump(self) #@contents?
108
75
  end
109
76
 
110
77
  def load_contents
111
- @contents ||= @dump_load.load(@root.get_from(self))
78
+ @contents ||= @dump_load.load(self)
112
79
  end
113
80
  end
114
81
  end
@@ -3,6 +3,7 @@ require 'valise/utils'
3
3
  module Valise
4
4
  class PathMatcher
5
5
  include Unpath
6
+ include Enumerable
6
7
 
7
8
  def self.build(path, value = true)
8
9
  case path
@@ -36,6 +37,12 @@ module Valise
36
37
  yield(segments, @value) if @value
37
38
  end
38
39
 
40
+ def each(prefix = [])
41
+ each_pair do |segments, value|
42
+ yield(segments) if !!value
43
+ end
44
+ end
45
+
39
46
  def merge!(other)
40
47
  other.each_pair do |path, value|
41
48
  self[path] = value
@@ -84,7 +91,7 @@ module Valise
84
91
  case index
85
92
  when "**"; DirGlob.new.tap{|m| @children << m}
86
93
  when /.*[*].*/; FileGlob.new(index).tap{|m| @children << m}
87
- else; PathMatcher.new(index).tap{|m| @children << m}
94
+ else; PathMatcher.new(index).tap{|m| @children.unshift m}
88
95
  end
89
96
  target.store(segments, result)
90
97
  end
@@ -102,9 +109,9 @@ module Valise
102
109
 
103
110
  def access(segments)
104
111
  if segments.empty?
105
- return nil
112
+ return @value
106
113
  else
107
- super || access(segments.drop(1))
114
+ retreive(segments) || access(segments.drop(1))
108
115
  end
109
116
  end
110
117
  end
@@ -112,7 +119,7 @@ module Valise
112
119
  class FileGlob < PathMatcher
113
120
  def initialize(segment)
114
121
  super
115
- @regex = %r{^#{segment.gsub(/[*]/,".*")}$}
122
+ @regex = %r{^#{segment.gsub(/[.]/, "[.]").gsub(/[*]/,".*")}$}
116
123
  end
117
124
 
118
125
  def match?(segment)
@@ -15,7 +15,15 @@ module Valise
15
15
 
16
16
  attr_accessor :segments
17
17
 
18
- def each
18
+ #ALL_FILES = PathMatcher.build('**')
19
+ def each(pathmatch = nil)
20
+ # pathmatch ||= ALL_FILES
21
+ # files = pathmatch.fnmatchers(@segments).inject([]) do |list, fnmatch|
22
+ # list + Dir.glob(fnmatch).find_all{|path| File::file?(path)}
23
+ # end
24
+ # pathmatch.sort(files).each
25
+ #
26
+ #
19
27
  paths = [[]]
20
28
  until paths.empty?
21
29
  rel = paths.shift
@@ -63,15 +71,6 @@ module Valise
63
71
  return File::exists?(full_path(segments))
64
72
  end
65
73
 
66
- def insert(item)
67
- if(File::exists?(item.full_path))
68
- raise Errors::WouldClobber.new(Item.new(item.stack.segments, self, nil))
69
- else
70
- write(item)
71
- return item
72
- end
73
- end
74
-
75
74
  def get_from(item)
76
75
  File::read(item.full_path)
77
76
  end
@@ -85,10 +84,6 @@ module Valise
85
84
  def write(item)
86
85
  raise Errors::ReadOnly
87
86
  end
88
-
89
- def insert(item)
90
- raise Errors::ReadOnly
91
- end
92
87
  end
93
88
 
94
89
  class DefinedDefaults < ReadOnlySearchRoot
@@ -100,6 +95,10 @@ module Valise
100
95
  raise Errors::VirtualSearchPath, "does not have a real path"
101
96
  end
102
97
 
98
+ def full_path(segments)
99
+ "<DEFAULTS>:" + repath(segments)
100
+ end
101
+
103
102
  def present?(segments)
104
103
  @files.has_key?(segments)
105
104
  end