kharon 1.0.0 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/Gemfile.lock +4 -1
- data/README.md +29 -13
- data/dist/kharon-1.0.0.gem +0 -0
- data/doc/Kharon.html +4 -4
- data/doc/Kharon/Errors.html +1 -1
- data/doc/Kharon/Errors/Validation.html +1 -1
- data/doc/Kharon/Handlers.html +1 -1
- data/doc/Kharon/Handlers/Exceptions.html +1 -1
- data/doc/Kharon/Handlers/Messages.html +1 -1
- data/doc/Kharon/Validate.html +276 -0
- data/doc/Kharon/Validator.html +1 -1
- data/doc/_index.html +8 -4
- data/doc/class_list.html +1 -1
- data/doc/file.README.html +140 -157
- data/doc/file_list.html +0 -3
- data/doc/index.html +140 -157
- data/doc/method_list.html +12 -6
- data/doc/top-level-namespace.html +1 -1
- data/lib/kharon.rb +1 -1
- data/lib/kharon/validate.rb +21 -0
- data/lib/kharon/validator.rb +19 -1
- data/lib/kharon/version.rb +1 -1
- data/spec/lib/kharon/validate_spec.rb +20 -0
- data/spec/lib/kharon/validator_spec.rb +87 -36
- data/spec/results.html +824 -689
- metadata +6 -3
- data/spec/utils/fake_config.yml +0 -0
data/doc/Kharon/Validator.html
CHANGED
@@ -1953,7 +1953,7 @@ options pass).</p>
|
|
1953
1953
|
</div>
|
1954
1954
|
|
1955
1955
|
<div id="footer">
|
1956
|
-
Generated on Tue
|
1956
|
+
Generated on Tue May 17 11:54:24 2016 by
|
1957
1957
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
1958
1958
|
0.8.7.6 (ruby-1.9.3).
|
1959
1959
|
</div>
|
data/doc/_index.html
CHANGED
@@ -67,9 +67,6 @@
|
|
67
67
|
<li class="r1"><a href="index.html" title="README">README</a></li>
|
68
68
|
|
69
69
|
|
70
|
-
<li class="r2"><a href="file.results.html" title="results">results</a></li>
|
71
|
-
|
72
|
-
|
73
70
|
</ul>
|
74
71
|
|
75
72
|
<div class="clear"></div>
|
@@ -152,6 +149,13 @@
|
|
152
149
|
<li class="letter">V</li>
|
153
150
|
<ul>
|
154
151
|
|
152
|
+
<li>
|
153
|
+
<span class='object_link'><a href="Kharon/Validate.html" title="Kharon::Validate (module)">Validate</a></span>
|
154
|
+
|
155
|
+
<small>(Kharon)</small>
|
156
|
+
|
157
|
+
</li>
|
158
|
+
|
155
159
|
<li>
|
156
160
|
<span class='object_link'><a href="Kharon/Errors/Validation.html" title="Kharon::Errors::Validation (class)">Validation</a></span>
|
157
161
|
|
@@ -178,7 +182,7 @@
|
|
178
182
|
</div>
|
179
183
|
|
180
184
|
<div id="footer">
|
181
|
-
Generated on Tue
|
185
|
+
Generated on Tue May 17 11:54:24 2016 by
|
182
186
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
183
187
|
0.8.7.6 (ruby-1.9.3).
|
184
188
|
</div>
|
data/doc/class_list.html
CHANGED
@@ -50,7 +50,7 @@
|
|
50
50
|
|
51
51
|
<ul id="full_list" class="class">
|
52
52
|
<li><span class='object_link'><a href="top-level-namespace.html" title="Top Level Namespace (root)">Top Level Namespace</a></span></li>
|
53
|
-
<li><a class='toggle'></a> <span class='object_link'><a href="Kharon.html" title="Kharon (module)">Kharon</a></span><small class='search_info'>Top Level Namespace</small></li><ul><li><a class='toggle'></a> <span class='object_link'><a href="Kharon/Errors.html" title="Kharon::Errors (module)">Errors</a></span><small class='search_info'>Kharon</small></li><ul><li><span class='object_link'><a href="Kharon/Errors/Validation.html" title="Kharon::Errors::Validation (class)">Validation</a></span> < Exception<small class='search_info'>Kharon::Errors</small></li></ul><li><a class='toggle'></a> <span class='object_link'><a href="Kharon/Handlers.html" title="Kharon::Handlers (module)">Handlers</a></span><small class='search_info'>Kharon</small></li><ul><li><span class='object_link'><a href="Kharon/Handlers/Exceptions.html" title="Kharon::Handlers::Exceptions (class)">Exceptions</a></span> < Object<small class='search_info'>Kharon::Handlers</small></li><li><span class='object_link'><a href="Kharon/Handlers/Messages.html" title="Kharon::Handlers::Messages (class)">Messages</a></span> < Object<small class='search_info'>Kharon::Handlers</small></li></ul><li><span class='object_link'><a href="Kharon/Validator.html" title="Kharon::Validator (class)">Validator</a></span> < Object<small class='search_info'>Kharon</small></li></ul>
|
53
|
+
<li><a class='toggle'></a> <span class='object_link'><a href="Kharon.html" title="Kharon (module)">Kharon</a></span><small class='search_info'>Top Level Namespace</small></li><ul><li><a class='toggle'></a> <span class='object_link'><a href="Kharon/Errors.html" title="Kharon::Errors (module)">Errors</a></span><small class='search_info'>Kharon</small></li><ul><li><span class='object_link'><a href="Kharon/Errors/Validation.html" title="Kharon::Errors::Validation (class)">Validation</a></span> < Exception<small class='search_info'>Kharon::Errors</small></li></ul><li><a class='toggle'></a> <span class='object_link'><a href="Kharon/Handlers.html" title="Kharon::Handlers (module)">Handlers</a></span><small class='search_info'>Kharon</small></li><ul><li><span class='object_link'><a href="Kharon/Handlers/Exceptions.html" title="Kharon::Handlers::Exceptions (class)">Exceptions</a></span> < Object<small class='search_info'>Kharon::Handlers</small></li><li><span class='object_link'><a href="Kharon/Handlers/Messages.html" title="Kharon::Handlers::Messages (class)">Messages</a></span> < Object<small class='search_info'>Kharon::Handlers</small></li></ul><li><span class='object_link'><a href="Kharon/Validate.html" title="Kharon::Validate (module)">Validate</a></span><small class='search_info'>Kharon</small></li><li><span class='object_link'><a href="Kharon/Validator.html" title="Kharon::Validator (class)">Validator</a></span> < Object<small class='search_info'>Kharon</small></li></ul>
|
54
54
|
|
55
55
|
</ul>
|
56
56
|
</div>
|
data/doc/file.README.html
CHANGED
@@ -158,255 +158,238 @@
|
|
158
158
|
|
159
159
|
<h3>The helper</h3>
|
160
160
|
|
161
|
-
<p>This gem was firstly designed to be used
|
161
|
+
<p>This gem was firstly designed to be used in controllers for Rails or Sinatra applications. To use it easily in such a context, include the Kharon::Validate module and the validate method, for example for a Rails controller :</p>
|
162
162
|
|
163
|
-
<pre class="code ruby"><code class="ruby"><span class='
|
164
|
-
</
|
165
|
-
|
166
|
-
<p>From there, you can type it in any of the routes of this controller :</p>
|
163
|
+
<pre class="code ruby"><code class="ruby"><span class='kw'>class</span> <span class='const'>DummyController</span> <span class='op'><</span> <span class='const'>ApplicationController</span>
|
164
|
+
<span class='id identifier rubyid_include'>include</span> <span class='const'>Kharon</span><span class='op'>::</span><span class='const'>Validate</span>
|
167
165
|
|
168
|
-
<
|
169
|
-
|
166
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_show'>show</span>
|
167
|
+
<span class='id identifier rubyid_validate'>validate</span><span class='lparen'>(</span><span class='id identifier rubyid_params'>params</span><span class='rparen'>)</span> <span class='kw'>do</span>
|
168
|
+
<span class='id identifier rubyid_mongoid'>mongoid</span> <span class='symbol'>:id</span>
|
169
|
+
<span class='kw'>end</span>
|
170
|
+
<span class='kw'>end</span>
|
170
171
|
<span class='kw'>end</span>
|
171
172
|
</code></pre>
|
172
173
|
|
173
|
-
<
|
174
|
+
<pre class="code ruby"><code class="ruby">
|
175
|
+
This code is strictly equivalent to the one presented above, it uses the block syntax of ruby to give you a nice and fancy way to validate your datas !
|
176
|
+
|
177
|
+
## Full documentation
|
174
178
|
|
175
|
-
|
179
|
+
### Generated documentation
|
176
180
|
|
177
|
-
|
181
|
+
Generated documentation can be displayed by displaying the doc/index.html file in a browser.
|
178
182
|
|
179
|
-
|
183
|
+
### Methods
|
180
184
|
|
181
|
-
|
185
|
+
Methods signification are pretty straight-forward as it validates type :
|
182
186
|
|
183
|
-
|
187
|
+
- :integer
|
188
|
+
- :numeric
|
189
|
+
- :text
|
190
|
+
- :any
|
191
|
+
- :datetime
|
192
|
+
- :date
|
193
|
+
- :array
|
194
|
+
- :hash
|
195
|
+
- :boolean
|
196
|
+
- :mongoid
|
184
197
|
|
185
|
-
|
186
|
-
<li>:integer</li>
|
187
|
-
<li>:numeric</li>
|
188
|
-
<li>:text</li>
|
189
|
-
<li>:any</li>
|
190
|
-
<li>:datetime</li>
|
191
|
-
<li>:date</li>
|
192
|
-
<li>:array</li>
|
193
|
-
<li>:hash</li>
|
194
|
-
<li>:boolean</li>
|
195
|
-
<li>:mongoid</li>
|
196
|
-
</ul>
|
198
|
+
#### :any
|
197
199
|
|
198
|
-
|
200
|
+
This method will validate any value associated to the given key, it's useful if you just want to pass options like :required or :dependency without checking for a particular type.
|
199
201
|
|
200
|
-
|
202
|
+
#### :mongoid
|
201
203
|
|
202
|
-
|
204
|
+
This method is only useful if you use Mongoid or an ORM linking MongoDB to your application. It validates the data associated with the key only if it's a string formatted as a MongoDB unique identifier.
|
203
205
|
|
204
|
-
|
206
|
+
### Options
|
205
207
|
|
206
|
-
|
208
|
+
#### :required
|
207
209
|
|
208
|
-
|
210
|
+
This option can be given to say that a key has to be in the hash for it to be validated. It can be used with all methods.
|
209
211
|
|
210
|
-
|
212
|
+
#### :dependency
|
211
213
|
|
212
|
-
|
214
|
+
This option says that this key needs another key to be present for the hash to be validated. It can be used with all methods.
|
213
215
|
|
214
|
-
|
216
|
+
#### :dependencies
|
215
217
|
|
216
|
-
|
218
|
+
This options is used to pass several dependecies at once, as an array of keys. See :dependency option for details. It can be used with all methods.
|
219
|
+
Note: the :dependencies option *overrides* the :dependency option if both are given.
|
217
220
|
|
218
|
-
|
219
|
-
Note: the :dependencies option <em>overrides</em> the :dependency option if both are given.</p>
|
221
|
+
#### :in
|
220
222
|
|
221
|
-
|
223
|
+
This option is used to give an array of possible values for the given key. If the value of the key is not in thius array, the validator fails. It can be used with all methods.
|
222
224
|
|
223
|
-
|
225
|
+
#### :equals
|
224
226
|
|
225
|
-
|
227
|
+
this method compares the value of the given key in the hash to be equal to the given value. It can be used with all methods.
|
226
228
|
|
227
|
-
|
229
|
+
#### :equals_key
|
228
230
|
|
229
|
-
|
231
|
+
this method compares the value of the given key in the hash to be equal to the value associated with the compared key in the same hash. It can be used with all methods.
|
230
232
|
|
231
|
-
|
233
|
+
#### :min
|
232
234
|
|
233
|
-
|
235
|
+
This option allows you to specify a non-strict minimum limit for the value associated with the given key. The value has to be passed as an integer. It can be used with :numeric or :integer methods.
|
234
236
|
|
235
|
-
|
237
|
+
#### :max
|
236
238
|
|
237
|
-
|
239
|
+
This option allows you to specify a non-strict maximum limit for the value associated with the given key. The value has to be passed as an integer. It can be used with :numeric or :integer methods.
|
238
240
|
|
239
|
-
|
240
|
-
Note: the :between option <em>overrides</em> the :min <em>and</em> :max options if several are given.</p>
|
241
|
+
#### :between
|
241
242
|
|
242
|
-
|
243
|
+
This option gives an interval in which the value of the given key must be to fulfill the requirement. The value has to be passed as an array of two integers, first the minimum, then the maximum. It can be used with :numeric or :integer methods.
|
244
|
+
Note: the :between option *overrides* the :min *and* :max options if several are given.
|
243
245
|
|
244
|
-
|
246
|
+
#### :contains
|
245
247
|
|
246
|
-
|
248
|
+
This option is used to see if an array or a hash situated at the given key contains some values. The values must be passed as an array. This option can be used with the :hash and :array methods.
|
247
249
|
|
248
|
-
|
250
|
+
#### :has_keys
|
249
251
|
|
250
|
-
|
252
|
+
This option is used to see if a hash situated at the given key contains some keys. The values must be passed as an array. This option can be used with the :hash and :array methods.
|
251
253
|
|
252
|
-
|
254
|
+
#### :cast
|
253
255
|
|
254
|
-
|
256
|
+
This option, if not given, is set to TRUE. If given at false, doesn't type cast the result of the validation so you keep the original string and just check its type. It can be used with all methods.
|
255
257
|
|
256
|
-
|
258
|
+
#### :extract
|
257
259
|
|
258
|
-
|
260
|
+
This option, if not given, is set to TRUE. If given at false, doesn't extract the given key, just validate its type. It can be used with all methods.
|
259
261
|
|
260
|
-
|
262
|
+
#### :floor
|
261
263
|
|
262
|
-
|
264
|
+
If given and TRUE, floors the decimal number identified by this key. This option can be used with the :numeric method.
|
263
265
|
|
264
|
-
|
266
|
+
#### :ceil
|
265
267
|
|
266
|
-
|
268
|
+
If given and TRUE, ceils the decimal number identified by this key. This option can be used with the :numeric method.
|
267
269
|
|
268
|
-
|
270
|
+
#### :round
|
269
271
|
|
270
|
-
|
272
|
+
If given, as an integer, rounds the decimal number keeping the given number of digits after the comma ; if given as a boolean, rounds the decimal number, leaving no decimal digits. This option can be used with the :numeric method.
|
271
273
|
|
272
|
-
|
274
|
+
#### :regex
|
273
275
|
|
274
|
-
|
276
|
+
The value of this option must be passed as a string. If given as a string, verity that the associated string matches the given regular expression. This option can be used with the :text method.
|
275
277
|
|
276
|
-
|
278
|
+
#### :at_most
|
277
279
|
|
278
|
-
|
280
|
+
The value of this option must be passed as a box. When given, this option indicates the maximum value for the associated box. The associated box can't cross any of these coordinates.
|
279
281
|
|
280
|
-
|
282
|
+
#### :at_least
|
281
283
|
|
282
|
-
|
284
|
+
The value of this option must be passed as a box. When given, this option indicates the minimum value for the associated box. The associated box can't be tinier than the given box.
|
283
285
|
|
284
|
-
|
286
|
+
### Errors formats
|
285
287
|
|
286
|
-
|
288
|
+
In Kharon, errors are formatted in a particular way. Each error contains a hash (or associative array) describing its type, and giving special caracteristics if necessary.
|
287
289
|
|
288
|
-
|
290
|
+
#### Type error
|
289
291
|
|
290
|
-
|
291
|
-
<li>type : always has the value "type"</li>
|
292
|
-
<li>key : the key concerned by the error in the validated hash</li>
|
293
|
-
<li>supposed : the type of which the value associated with the key is supposed to be</li>
|
294
|
-
<li>given : the type effectively given for the value associated with the key</li>
|
295
|
-
</ul>
|
292
|
+
The most common error. It's raised when a type is expected for a key, and the given type for this key is different. It's formatted as followed :
|
296
293
|
|
297
|
-
|
294
|
+
- type : always has the value "type"
|
295
|
+
- key : the key concerned by the error in the validated hash
|
296
|
+
- supposed : the type of which the value associated with the key is supposed to be
|
297
|
+
- given : the type effectively given for the value associated with the key
|
298
298
|
|
299
|
-
|
299
|
+
#### required error
|
300
300
|
|
301
|
-
|
302
|
-
<li>type : always has the value "required"</li>
|
303
|
-
<li>key : the required, but not provided, key</li>
|
304
|
-
</ul>
|
301
|
+
This error is raised when a key was required in the validated hash, but was not given. It's formatted as followed :
|
305
302
|
|
306
|
-
|
303
|
+
- type : always has the value "required"
|
304
|
+
- key : the required, but not provided, key
|
307
305
|
|
308
|
-
|
306
|
+
#### dependency error
|
309
307
|
|
310
|
-
|
311
|
-
<li>type : always has the value "dependency"</li>
|
312
|
-
<li>key : the key needing another key to properly work</li>
|
313
|
-
<li>dependency : the needed, but not provided, dependency</li>
|
314
|
-
</ul>
|
308
|
+
This error is raised when a dependency was needed, but not provided, for a key. It's formatted as followed :
|
315
309
|
|
316
|
-
|
310
|
+
- type : always has the value "dependency"
|
311
|
+
- key : the key needing another key to properly work
|
312
|
+
- dependency : the needed, but not provided, dependency
|
317
313
|
|
318
|
-
|
314
|
+
#### min/max error
|
319
315
|
|
320
|
-
|
321
|
-
<li>type : has either "min" or "max" value</li>
|
322
|
-
<li>supposed : the maximum or minimum value the provided value mustn't exceed</li>
|
323
|
-
<li>key : the key concerned byt the error</li>
|
324
|
-
<li>value : the value not respecting the minimum or maximum asked</li>
|
325
|
-
</ul>
|
316
|
+
This error is raised when a key must have a minimum or maximum value, but the provided value is below the minimum or above the maximum. It's formatted as followed :
|
326
317
|
|
327
|
-
|
318
|
+
- type : has either "min" or "max" value
|
319
|
+
- supposed : the maximum or minimum value the provided value mustn't exceed
|
320
|
+
- key : the key concerned byt the error
|
321
|
+
- value : the value not respecting the minimum or maximum asked
|
328
322
|
|
329
|
-
|
323
|
+
#### in_array error
|
330
324
|
|
331
|
-
|
332
|
-
<li>type : always has the "array.in" value</li>
|
333
|
-
<li>key : the key concerned byt the error</li>
|
334
|
-
<li>supposed : the range of values in which the value associated with the key should belong to</li>
|
335
|
-
<li>value : the value provided with the key</li>
|
336
|
-
</ul>
|
325
|
+
This error is raised when the value associated with a key should belong to a range of values, and doesn't. It's formatted as followed :
|
337
326
|
|
338
|
-
|
327
|
+
- type : always has the "array.in" value
|
328
|
+
- key : the key concerned byt the error
|
329
|
+
- supposed : the range of values in which the value associated with the key should belong to
|
330
|
+
- value : the value provided with the key
|
339
331
|
|
340
|
-
|
332
|
+
#### equals error
|
341
333
|
|
342
|
-
|
343
|
-
<li>type : always has the "equals" value</li>
|
344
|
-
<li>key : the key concerned byt the error</li>
|
345
|
-
<li>supposed : the value the key was supposed to have</li>
|
346
|
-
<li>value : the effective value associated to the key</li>
|
347
|
-
</ul>
|
334
|
+
This error is raised when the value associated to a key was expected to be equal to a value, but wasn't. It's formatted as followed :
|
348
335
|
|
349
|
-
|
336
|
+
- type : always has the "equals" value
|
337
|
+
- key : the key concerned byt the error
|
338
|
+
- supposed : the value the key was supposed to have
|
339
|
+
- value : the effective value associated to the key
|
350
340
|
|
351
|
-
|
341
|
+
#### contains keys error
|
352
342
|
|
353
|
-
|
354
|
-
<li>type : always has the "contains.keys" value</li>
|
355
|
-
<li>key : the key concerned byt the error</li>
|
356
|
-
<li>required : the keys that must be contained in the value hash</li>
|
357
|
-
<li>value : the hash provided with the validated key</li>
|
358
|
-
</ul>
|
343
|
+
This error is raised when a key, which type is a hash, doesn't contain the provided values as keys. It's formatted as followed :
|
359
344
|
|
360
|
-
|
345
|
+
- type : always has the "contains.keys" value
|
346
|
+
- key : the key concerned byt the error
|
347
|
+
- required : the keys that must be contained in the value hash
|
348
|
+
- value : the hash provided with the validated key
|
361
349
|
|
362
|
-
|
350
|
+
#### contains values error
|
363
351
|
|
364
|
-
|
365
|
-
<li>type : always has the "contains.values" value</li>
|
366
|
-
<li>key : the key concerned byt the error</li>
|
367
|
-
<li>required : the values that must be contained in the value hash</li>
|
368
|
-
<li>value : the hash provided with the validated key</li>
|
369
|
-
</ul>
|
352
|
+
This error is raised when a key, which type is an array or a hash, doesn't contain the provided values. It's formatted as followed :
|
370
353
|
|
371
|
-
|
354
|
+
- type : always has the "contains.values" value
|
355
|
+
- key : the key concerned byt the error
|
356
|
+
- required : the values that must be contained in the value hash
|
357
|
+
- value : the hash provided with the validated key
|
372
358
|
|
373
|
-
|
359
|
+
#### regex error
|
374
360
|
|
375
|
-
|
376
|
-
<li>type : always has the "regex" value</li>
|
377
|
-
<li>key : the key concerned by the error</li>
|
378
|
-
<li>regex : the regular expression expected to be respected</li>
|
379
|
-
<li>value : the effective value not respecting the regular expression</li>
|
380
|
-
</ul>
|
361
|
+
This error is raised when a value was expecting to respect a regular expression, but didn't. It's formatted as followed :
|
381
362
|
|
382
|
-
|
363
|
+
- type : always has the "regex" value
|
364
|
+
- key : the key concerned by the error
|
365
|
+
- regex : the regular expression expected to be respected
|
366
|
+
- value : the effective value not respecting the regular expression
|
383
367
|
|
384
|
-
|
368
|
+
#### box format error
|
385
369
|
|
386
|
-
|
387
|
-
<li>type : always has the "box.format" value</li>
|
388
|
-
<li>key : the key concerned by the error</li>
|
389
|
-
<li>value : the effective value of the box, not respecting the format of a box</li>
|
390
|
-
</ul>
|
370
|
+
This error is raised when a geographic box is not well formatted. It's formatted as followed :
|
391
371
|
|
392
|
-
|
372
|
+
- type : always has the "box.format" value
|
373
|
+
- key : the key concerned by the error
|
374
|
+
- value : the effective value of the box, not respecting the format of a box
|
393
375
|
|
394
|
-
|
376
|
+
#### box containment error
|
395
377
|
|
396
|
-
|
397
|
-
<li>type : always has the "box.containment" value</li>
|
398
|
-
<li>key : the key concerned by the error</li>
|
399
|
-
<li>container : the box whithin which the contained box must be</li>
|
400
|
-
<li>contained : the box that must be contained in the container</li>
|
401
|
-
</ul>
|
378
|
+
This error is raised when a given key, as a box, is not contained in the box it should be (with the :at_most and :at_least options). It's formatted as followed :
|
402
379
|
|
403
|
-
|
380
|
+
- type : always has the "box.containment" value
|
381
|
+
- key : the key concerned by the error
|
382
|
+
- container : the box whithin which the contained box must be
|
383
|
+
- contained : the box that must be contained in the container
|
404
384
|
|
405
|
-
|
385
|
+
### Does it work ?
|
386
|
+
|
387
|
+
Yes, it works, unit tests results can be found here : {file:doc/results.html results of unit tests}
|
388
|
+
</code></pre>
|
406
389
|
</div></div>
|
407
390
|
|
408
391
|
<div id="footer">
|
409
|
-
Generated on Tue
|
392
|
+
Generated on Tue May 17 11:54:24 2016 by
|
410
393
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
411
394
|
0.8.7.6 (ruby-1.9.3).
|
412
395
|
</div>
|
data/doc/file_list.html
CHANGED