schemacop 2.0.0 → 2.3.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. checksums.yaml +5 -5
  2. data/.rubocop.yml +1 -17
  3. data/.travis.yml +0 -2
  4. data/CHANGELOG.md +49 -0
  5. data/LICENSE +1 -1
  6. data/README.md +66 -17
  7. data/Rakefile +5 -1
  8. data/VERSION +1 -1
  9. data/doc/Schemacop.html +5 -5
  10. data/doc/Schemacop/ArrayValidator.html +3 -3
  11. data/doc/Schemacop/BooleanValidator.html +4 -4
  12. data/doc/Schemacop/Collector.html +208 -32
  13. data/doc/Schemacop/Exceptions.html +3 -3
  14. data/doc/Schemacop/Exceptions/InvalidSchemaError.html +3 -3
  15. data/doc/Schemacop/Exceptions/ValidationError.html +3 -3
  16. data/doc/Schemacop/FieldNode.html +3 -3
  17. data/doc/Schemacop/FloatValidator.html +4 -4
  18. data/doc/Schemacop/HashValidator.html +33 -7
  19. data/doc/Schemacop/IntegerValidator.html +4 -4
  20. data/doc/Schemacop/NilValidator.html +4 -4
  21. data/doc/Schemacop/Node.html +4 -4
  22. data/doc/Schemacop/NodeResolver.html +3 -3
  23. data/doc/Schemacop/NodeSupportingField.html +4 -4
  24. data/doc/Schemacop/NodeSupportingType.html +4 -4
  25. data/doc/Schemacop/NodeWithBlock.html +4 -4
  26. data/doc/Schemacop/NumberValidator.html +4 -4
  27. data/doc/Schemacop/ObjectValidator.html +20 -10
  28. data/doc/Schemacop/RootNode.html +4 -4
  29. data/doc/Schemacop/Schema.html +4 -4
  30. data/doc/Schemacop/StringValidator.html +3 -3
  31. data/doc/Schemacop/SymbolValidator.html +145 -0
  32. data/doc/ScopedEnv.html +3 -3
  33. data/doc/_index.html +11 -4
  34. data/doc/class_list.html +1 -1
  35. data/doc/css/style.css +10 -6
  36. data/doc/file.README.html +76 -30
  37. data/doc/frames.html +1 -1
  38. data/doc/index.html +76 -30
  39. data/doc/js/app.js +55 -0
  40. data/doc/method_list.html +57 -41
  41. data/doc/top-level-namespace.html +3 -3
  42. data/lib/schemacop.rb +2 -0
  43. data/lib/schemacop/collector.rb +21 -2
  44. data/lib/schemacop/node.rb +6 -2
  45. data/lib/schemacop/node_supporting_field.rb +2 -6
  46. data/lib/schemacop/schema.rb +1 -1
  47. data/lib/schemacop/validator/hash_validator.rb +15 -2
  48. data/lib/schemacop/validator/object_validator.rb +7 -1
  49. data/lib/schemacop/validator/symbol_validator.rb +5 -0
  50. data/schemacop.gemspec +9 -9
  51. data/test/collector_test.rb +45 -0
  52. data/test/custom_check_test.rb +7 -0
  53. data/test/short_forms_test.rb +15 -0
  54. data/test/types_test.rb +1 -0
  55. data/test/validator_object_test.rb +18 -0
  56. data/test/validator_symbol_test.rb +16 -0
  57. metadata +23 -18
@@ -2,7 +2,7 @@
2
2
  <html>
3
3
  <head>
4
4
  <meta charset="utf-8">
5
- <title>Documentation by YARD 0.9.9</title>
5
+ <title>Documentation by YARD 0.9.20</title>
6
6
  </head>
7
7
  <script type="text/javascript" charset="utf-8">
8
8
  var match = unescape(window.location.hash).match(/^#!(.+)/);
@@ -6,7 +6,7 @@
6
6
  <title>
7
7
  File: README
8
8
 
9
- &mdash; Documentation by YARD 0.9.9
9
+ &mdash; Documentation by YARD 0.9.20
10
10
 
11
11
  </title>
12
12
 
@@ -132,7 +132,7 @@ around at runtime. Those two steps look as follows:</p>
132
132
 
133
133
  <p>At runtime:</p>
134
134
 
135
- <pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_my_shema'>my_shema</span><span class='period'>.</span><span class='id identifier rubyid_validate!'>validate!</span><span class='lparen'>(</span>
135
+ <pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_my_schema'>my_schema</span><span class='period'>.</span><span class='id identifier rubyid_validate!'>validate!</span><span class='lparen'>(</span>
136
136
  <span class='comment'># Your data goes here
137
137
  </span><span class='rparen'>)</span>
138
138
  </code></pre>
@@ -161,7 +161,7 @@ this:</p>
161
161
  <pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_s'>s</span> <span class='op'>=</span> <span class='const'>Schema</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span> <span class='kw'>do</span>
162
162
  <span class='id identifier rubyid_type'>type</span> <span class='symbol'>:integer</span>
163
163
  <span class='id identifier rubyid_type'>type</span> <span class='symbol'>:hash</span> <span class='kw'>do</span>
164
- <span class='id identifier rubyid_req'>req</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>name</span><span class='tstring_end'>&#39;</span></span> <span class='kw'>do</span>
164
+ <span class='id identifier rubyid_req'>req</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>present</span><span class='tstring_end'>&#39;</span></span> <span class='kw'>do</span>
165
165
  <span class='id identifier rubyid_type'>type</span> <span class='symbol'>:boolean</span>
166
166
  <span class='kw'>end</span>
167
167
  <span class='kw'>end</span>
@@ -235,7 +235,7 @@ proc returns false.&quot;</p>
235
235
 
236
236
  <p>The corresponding schema would look as follows:</p>
237
237
 
238
- <pre class="code ruby"><code class="ruby"><span class='const'>Schma</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span> <span class='kw'>do</span>
238
+ <pre class="code ruby"><code class="ruby"><span class='const'>Schema</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span> <span class='kw'>do</span>
239
239
  <span class='id identifier rubyid_type'>type</span> <span class='symbol'>:integer</span><span class='comma'>,</span> <span class='label'>if:</span> <span class='id identifier rubyid_proc'>proc</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_data'>data</span><span class='op'>|</span> <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_odd?'>odd?</span> <span class='rbrace'>}</span><span class='comma'>,</span> <span class='label'>max:</span> <span class='int'>15</span>
240
240
  <span class='id identifier rubyid_type'>type</span> <span class='symbol'>:integer</span>
241
241
  <span class='kw'>end</span>
@@ -256,8 +256,8 @@ the type checking, meaning that it only gets executed if the data has the right
256
256
  type and the proc in <code>if</code> (if any) has returned true.</p>
257
257
 
258
258
  <p>The proc passed to the <code>check</code> option is given the data being analyzed. It is to
259
- return true if the data passes the custom check. If it returns false, Schemacop
260
- considers the data to be invalid.</p>
259
+ return true if the data passes the custom check. If it returns false or an error
260
+ message as a string, Schemacop considers the data to be invalid.</p>
261
261
 
262
262
  <p>The following example illustrates the use of the option <code>check</code>: Consider a
263
263
  scenario in which you want the following rule set:</p>
@@ -278,10 +278,19 @@ scenario in which you want the following rule set:</p>
278
278
  <p>The above Type Line has type <code>:string</code> and two options (<code>min</code> and <code>check</code>). The
279
279
  option <code>min</code> is supported by the <code>:string</code> validator (covered later).</p>
280
280
 
281
+ <p>You can also specify a custom error message by returning a string:</p>
282
+
283
+ <pre class="code ruby"><code class="ruby"><span class='const'>Schema</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span> <span class='kw'>do</span>
284
+ <span class='id identifier rubyid_type'>type</span> <span class='symbol'>:integer</span><span class='comma'>,</span> <span class='label'>check:</span> <span class='id identifier rubyid_proc'>proc</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_i'>i</span><span class='op'>|</span> <span class='id identifier rubyid_i'>i</span><span class='period'>.</span><span class='id identifier rubyid_even?'>even?</span> <span class='op'>?</span> <span class='kw'>true</span> <span class='op'>:</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>Custom error</span><span class='tstring_end'>&#39;</span></span> <span class='rbrace'>}</span>
285
+ <span class='kw'>end</span>
286
+ </code></pre>
287
+
288
+ <p>This will include <code>Custom error</code> in the validation error message.</p>
289
+
281
290
  <h3>Field Line</h3>
282
291
 
283
- <p>Inside a Type Line of type <code>:hash</code> or <code>Hash</code>, you may specify an arbitrary
284
- number of field lines (one for each key-value pair you want to be in the hash).</p>
292
+ <p>Inside a Type Line of type <code>:hash</code>, you may specify an arbitrary number of field
293
+ lines (one for each key-value pair you want to be in the hash).</p>
285
294
 
286
295
  <p>Field Lines start with one of the following six identifiers: <code>req</code>, <code>req?</code>,
287
296
  <code>req!</code>, <code>opt</code>, <code>opt?</code> or <code>opt!</code>:</p>
@@ -327,12 +336,41 @@ non-nil field of type Integer or Date under the key <code>:age</code>.</p>
327
336
  <p>You might find the notation cumbersome, and you&#39;d be right to say so. Luckily
328
337
  there are plenty of short forms available which we will see below.</p>
329
338
 
339
+ <h4>Handling hashes with indifferent access</h4>
340
+
341
+ <p>Schemacop has special handling for objects of the class
342
+ <code>ActiveSupport::HashWithIndifferentAccess</code>: You may specify the keys as symbols
343
+ or strings, and Schemacop will handle the conversion necessary for proper
344
+ validation internally. Note that if you define the same key as string and
345
+ symbol, it will throw a <code>ValidationError</code> <a href="#exceptions">exception</a> when asked to
346
+ validate a hash with indifferent access.</p>
347
+
348
+ <p>Thus, the following two schema definitions are equivalent when validating a hash
349
+ with indifferent access:</p>
350
+
351
+ <pre class="code ruby"><code class="ruby"><span class='const'>Schema</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span> <span class='kw'>do</span>
352
+ <span class='id identifier rubyid_type'>type</span> <span class='symbol'>:hash</span> <span class='kw'>do</span>
353
+ <span class='id identifier rubyid_req'>req</span> <span class='symbol'>:name</span> <span class='kw'>do</span>
354
+ <span class='id identifier rubyid_type'>type</span> <span class='symbol'>:string</span>
355
+ <span class='kw'>end</span>
356
+ <span class='kw'>end</span>
357
+ <span class='kw'>end</span>
358
+
359
+ <span class='const'>Schema</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span> <span class='kw'>do</span>
360
+ <span class='id identifier rubyid_type'>type</span> <span class='symbol'>:hash</span> <span class='kw'>do</span>
361
+ <span class='id identifier rubyid_req'>req</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>name</span><span class='tstring_end'>&#39;</span></span> <span class='kw'>do</span>
362
+ <span class='id identifier rubyid_type'>type</span> <span class='symbol'>:string</span>
363
+ <span class='kw'>end</span>
364
+ <span class='kw'>end</span>
365
+ <span class='kw'>end</span>
366
+ </code></pre>
367
+
330
368
  <h2>Types</h2>
331
369
 
332
- <p>The following types are supported by Schemacop:</p>
370
+ <p>Types are defined via their validators, which is a class under <code>validator/</code>.
371
+ Each validator is sourced by <code>schemacop.rb</code>.</p>
333
372
 
334
- <!-- TODO: Test the following statement: (you can easily extend them by writing
335
- another `your_validator.rb` class under `validator/`): -->
373
+ <p>The following types are supported by Schemacop by default:</p>
336
374
 
337
375
  <ul>
338
376
  <li><p><code>:boolean</code> accepts a Ruby TrueClass or FalseClass instance.</p></li>
@@ -356,31 +394,39 @@ another `your_validator.rb` class under `validator/`): -->
356
394
  <ul>
357
395
  <li>supported options: <code>min</code>, <code>max</code> (bounds for string length)</li>
358
396
  </ul></li>
359
- <li><p><code>:object</code> accepts an arbitrary Ruby object (any object if no option is given).</p>
397
+ <li><p><code>:symbol</code> accepts a Ruby Symbol.</p></li>
398
+ <li><p><code>:object</code> accepts an arbitrary Ruby object (any object if no option is given).</p></li>
399
+ </ul>
400
+
401
+ <p>Supported options:</p>
360
402
 
361
403
  <ul>
362
- <li>supported option: <code>classes</code>: Ruby class (or an array of them) that will be
363
- the only recognized filters. Unlike other options, this one affects not the
364
- validation but the type recognition, meaning that you can have multiple Type
365
- Lines with different <code>classes</code> option for the same field, each having its
366
- own validation (e.g. through the option <code>check</code>).</li>
367
- </ul></li>
368
- <li><p><code>:array</code> accepts a Ruby Array.</p>
404
+ <li><p><code>classes</code>: Ruby class (or an array of them) that will be the only recognized
405
+ filters. Unlike other options, this one affects not the validation but the
406
+ type recognition, meaning that you can have multiple Type Lines with
407
+ different <code>classes</code> option for the same field, each having its own
408
+ validation (e.g. through the option <code>check</code>).</p></li>
409
+ <li><p><code>strict</code>: Boolean option, defaults to true. If set to false, the validator
410
+ also allows derived classes of those specified with <code>classes</code>.</p>
369
411
 
370
412
  <ul>
371
- <li>supported options: <code>min</code>, <code>max</code> (bounds for array size) and <code>nil</code>: TODO</li>
372
- <li>accepts a block with an arbitrary number of Type Lines.</li>
373
- <li>TODO no lookahead for different arrays, see
374
- validator_array_test#test_multiple_arrays</li>
413
+ <li><code>:array</code> accepts a Ruby Array.</li>
375
414
  </ul></li>
376
- <li><p><code>:hash</code> accepts a Ruby Hash.</p>
415
+ <li><p>supported options: <code>min</code>, <code>max</code> (bounds for array size) and <code>nil</code>: TODO</p></li>
416
+ <li><p>accepts a block with an arbitrary number of Type Lines.</p></li>
417
+ <li><p>TODO no lookahead for different arrays, see
418
+ validator_array_test#test_multiple_arrays</p>
377
419
 
378
420
  <ul>
379
- <li>accepts a block with an arbitrary number of Field Lines.</li>
421
+ <li><code>:hash</code> accepts a Ruby Hash or an <code>ActiveSupport::HashWithIndifferentAccess</code>.</li>
380
422
  </ul></li>
381
- <li><p><code>:nil</code>: accepts a Ruby NilClass instance. If you want to allow <code>nil</code> as a
423
+ <li><p>accepts a block with an arbitrary number of Field Lines.</p>
424
+
425
+ <ul>
426
+ <li><code>:nil</code>: accepts a Ruby NilClass instance. If you want to allow <code>nil</code> as a
382
427
  value in a field, see above for the usage of the suffixes <code>-!</code> and <code>-?</code> for
383
- Field Lines.</p></li>
428
+ Field Lines.</li>
429
+ </ul></li>
384
430
  </ul>
385
431
 
386
432
  <p>All types support the options <code>if</code> and <code>check</code> (see the section about Type Lines
@@ -585,13 +631,13 @@ to <a href="http://www.subgit.com/">SubGit</a> for their great open source licen
585
631
 
586
632
  <h2>Copyright</h2>
587
633
 
588
- <p>Copyright (c) 2017 Sitrox. See <code>LICENSE</code> for further details.</p>
634
+ <p>Copyright (c) 2019 Sitrox. See <code>LICENSE</code> for further details.</p>
589
635
  </div></div>
590
636
 
591
637
  <div id="footer">
592
- Generated on Mon May 15 17:46:05 2017 by
638
+ Generated on Thu Sep 26 13:19:46 2019 by
593
639
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
594
- 0.9.9 (ruby-2.3.1).
640
+ 0.9.20 (ruby-2.6.2).
595
641
  </div>
596
642
 
597
643
  </div>
@@ -120,6 +120,49 @@ function summaryToggle() {
120
120
  } else { localStorage.summaryCollapsed = "expand"; }
121
121
  }
122
122
 
123
+ function constantSummaryToggle() {
124
+ $('.constants_summary_toggle').click(function(e) {
125
+ e.preventDefault();
126
+ localStorage.summaryCollapsed = $(this).text();
127
+ $('.constants_summary_toggle').each(function() {
128
+ $(this).text($(this).text() == "collapse" ? "expand" : "collapse");
129
+ var next = $(this).parent().parent().nextAll('dl.constants').first();
130
+ if (next.hasClass('compact')) {
131
+ next.toggle();
132
+ next.nextAll('dl.constants').first().toggle();
133
+ }
134
+ else if (next.hasClass('constants')) {
135
+ var list = $('<dl class="constants compact" />');
136
+ list.html(next.html());
137
+ list.find('dt').each(function() {
138
+ $(this).addClass('summary_signature');
139
+ $(this).text( $(this).text().split('=')[0]);
140
+ if ($(this).has(".deprecated").length) {
141
+ $(this).addClass('deprecated');
142
+ };
143
+ });
144
+ // Add the value of the constant as "Tooltip" to the summary object
145
+ list.find('pre.code').each(function() {
146
+ console.log($(this).parent());
147
+ var dt_element = $(this).parent().prev();
148
+ var tooltip = $(this).text();
149
+ if (dt_element.hasClass("deprecated")) {
150
+ tooltip = 'Deprecated. ' + tooltip;
151
+ };
152
+ dt_element.attr('title', tooltip);
153
+ });
154
+ list.find('.docstring, .tags, dd').remove();
155
+ next.before(list);
156
+ next.toggle();
157
+ }
158
+ });
159
+ return false;
160
+ });
161
+ if (localStorage.summaryCollapsed == "collapse") {
162
+ $('.constants_summary_toggle').first().click();
163
+ } else { localStorage.summaryCollapsed = "expand"; }
164
+ }
165
+
123
166
  function generateTOC() {
124
167
  if ($('#filecontents').length === 0) return;
125
168
  var _toc = $('<ol class="top"></ol>');
@@ -232,6 +275,16 @@ function mainFocus() {
232
275
  setTimeout(function() { $('#main').focus(); }, 10);
233
276
  }
234
277
 
278
+ function navigationChange() {
279
+ // This works around the broken anchor navigation with the YARD template.
280
+ window.onpopstate = function() {
281
+ var hash = window.location.hash;
282
+ if (hash !== '' && $(hash)[0]) {
283
+ $(hash)[0].scrollIntoView();
284
+ }
285
+ };
286
+ }
287
+
235
288
  $(document).ready(function() {
236
289
  navResizer();
237
290
  navExpander();
@@ -241,8 +294,10 @@ $(document).ready(function() {
241
294
  searchFrameButtons();
242
295
  linkSummaries();
243
296
  summaryToggle();
297
+ constantSummaryToggle();
244
298
  generateTOC();
245
299
  mainFocus();
300
+ navigationChange();
246
301
  });
247
302
 
248
303
  })();
@@ -118,8 +118,8 @@
118
118
 
119
119
  <li class="even ">
120
120
  <div class="item">
121
- <span class='object_link'><a href="Schemacop/Node.html#exec_block-instance_method" title="Schemacop::Node#exec_block (method)">#exec_block</a></span>
122
- <small>Schemacop::Node</small>
121
+ <span class='object_link'><a href="Schemacop/Collector.html#exceptions-instance_method" title="Schemacop::Collector#exceptions (method)">#exceptions</a></span>
122
+ <small>Schemacop::Collector</small>
123
123
  </div>
124
124
  </li>
125
125
 
@@ -134,56 +134,56 @@
134
134
 
135
135
  <li class="even ">
136
136
  <div class="item">
137
- <span class='object_link'><a href="Schemacop/NodeSupportingType.html#exec_block-instance_method" title="Schemacop::NodeSupportingType#exec_block (method)">#exec_block</a></span>
138
- <small>Schemacop::NodeSupportingType</small>
137
+ <span class='object_link'><a href="Schemacop/Node.html#exec_block-instance_method" title="Schemacop::Node#exec_block (method)">#exec_block</a></span>
138
+ <small>Schemacop::Node</small>
139
139
  </div>
140
140
  </li>
141
141
 
142
142
 
143
143
  <li class="odd ">
144
144
  <div class="item">
145
- <span class='object_link'><a href="Schemacop/NodeSupportingField.html#fields-instance_method" title="Schemacop::NodeSupportingField#fields (method)">#fields</a></span>
146
- <small>Schemacop::NodeSupportingField</small>
145
+ <span class='object_link'><a href="Schemacop/NodeSupportingType.html#exec_block-instance_method" title="Schemacop::NodeSupportingType#exec_block (method)">#exec_block</a></span>
146
+ <small>Schemacop::NodeSupportingType</small>
147
147
  </div>
148
148
  </li>
149
149
 
150
150
 
151
151
  <li class="even ">
152
152
  <div class="item">
153
- <span class='object_link'><a href="Schemacop/Node.html#initialize-instance_method" title="Schemacop::Node#initialize (method)">#initialize</a></span>
154
- <small>Schemacop::Node</small>
153
+ <span class='object_link'><a href="Schemacop/NodeSupportingField.html#fields-instance_method" title="Schemacop::NodeSupportingField#fields (method)">#fields</a></span>
154
+ <small>Schemacop::NodeSupportingField</small>
155
155
  </div>
156
156
  </li>
157
157
 
158
158
 
159
159
  <li class="odd ">
160
160
  <div class="item">
161
- <span class='object_link'><a href="Schemacop/Schema.html#initialize-instance_method" title="Schemacop::Schema#initialize (method)">#initialize</a></span>
162
- <small>Schemacop::Schema</small>
161
+ <span class='object_link'><a href="Schemacop/Collector.html#ignore_next_segment-instance_method" title="Schemacop::Collector#ignore_next_segment (method)">#ignore_next_segment</a></span>
162
+ <small>Schemacop::Collector</small>
163
163
  </div>
164
164
  </li>
165
165
 
166
166
 
167
167
  <li class="even ">
168
168
  <div class="item">
169
- <span class='object_link'><a href="Schemacop/Collector.html#initialize-instance_method" title="Schemacop::Collector#initialize (method)">#initialize</a></span>
170
- <small>Schemacop::Collector</small>
169
+ <span class='object_link'><a href="Schemacop/Node.html#initialize-instance_method" title="Schemacop::Node#initialize (method)">#initialize</a></span>
170
+ <small>Schemacop::Node</small>
171
171
  </div>
172
172
  </li>
173
173
 
174
174
 
175
175
  <li class="odd ">
176
176
  <div class="item">
177
- <span class='object_link'><a href="Schemacop/FieldNode.html#initialize-instance_method" title="Schemacop::FieldNode#initialize (method)">#initialize</a></span>
178
- <small>Schemacop::FieldNode</small>
177
+ <span class='object_link'><a href="Schemacop/NodeSupportingField.html#initialize-instance_method" title="Schemacop::NodeSupportingField#initialize (method)">#initialize</a></span>
178
+ <small>Schemacop::NodeSupportingField</small>
179
179
  </div>
180
180
  </li>
181
181
 
182
182
 
183
183
  <li class="even ">
184
184
  <div class="item">
185
- <span class='object_link'><a href="ScopedEnv.html#initialize-instance_method" title="ScopedEnv#initialize (method)">#initialize</a></span>
186
- <small>ScopedEnv</small>
185
+ <span class='object_link'><a href="Schemacop/Schema.html#initialize-instance_method" title="Schemacop::Schema#initialize (method)">#initialize</a></span>
186
+ <small>Schemacop::Schema</small>
187
187
  </div>
188
188
  </li>
189
189
 
@@ -198,8 +198,8 @@
198
198
 
199
199
  <li class="even ">
200
200
  <div class="item">
201
- <span class='object_link'><a href="Schemacop/NodeSupportingField.html#initialize-instance_method" title="Schemacop::NodeSupportingField#initialize (method)">#initialize</a></span>
202
- <small>Schemacop::NodeSupportingField</small>
201
+ <span class='object_link'><a href="Schemacop/Collector.html#initialize-instance_method" title="Schemacop::Collector#initialize (method)">#initialize</a></span>
202
+ <small>Schemacop::Collector</small>
203
203
  </div>
204
204
  </li>
205
205
 
@@ -220,6 +220,22 @@
220
220
  </li>
221
221
 
222
222
 
223
+ <li class="odd ">
224
+ <div class="item">
225
+ <span class='object_link'><a href="Schemacop/FieldNode.html#initialize-instance_method" title="Schemacop::FieldNode#initialize (method)">#initialize</a></span>
226
+ <small>Schemacop::FieldNode</small>
227
+ </div>
228
+ </li>
229
+
230
+
231
+ <li class="even ">
232
+ <div class="item">
233
+ <span class='object_link'><a href="ScopedEnv.html#initialize-instance_method" title="ScopedEnv#initialize (method)">#initialize</a></span>
234
+ <small>ScopedEnv</small>
235
+ </div>
236
+ </li>
237
+
238
+
223
239
  <li class="odd ">
224
240
  <div class="item">
225
241
  <span class='object_link'><a href="Schemacop/Schema.html#invalid%3F-instance_method" title="Schemacop::Schema#invalid? (method)">#invalid?</a></span>
@@ -270,7 +286,7 @@
270
286
 
271
287
  <li class="odd ">
272
288
  <div class="item">
273
- <span class='object_link'><a href="Schemacop/Node.html#option-class_method" title="Schemacop::Node.option (method)">option</a></span>
289
+ <span class='object_link'><a href="Schemacop/Node.html#option-instance_method" title="Schemacop::Node#option (method)">#option</a></span>
274
290
  <small>Schemacop::Node</small>
275
291
  </div>
276
292
  </li>
@@ -278,7 +294,7 @@
278
294
 
279
295
  <li class="even ">
280
296
  <div class="item">
281
- <span class='object_link'><a href="Schemacop/Node.html#option-instance_method" title="Schemacop::Node#option (method)">#option</a></span>
297
+ <span class='object_link'><a href="Schemacop/Node.html#option-class_method" title="Schemacop::Node.option (method)">option</a></span>
282
298
  <small>Schemacop::Node</small>
283
299
  </div>
284
300
  </li>
@@ -398,31 +414,31 @@
398
414
 
399
415
  <li class="odd ">
400
416
  <div class="item">
401
- <span class='object_link'><a href="Schemacop/Node.html#type_label-instance_method" title="Schemacop::Node#type_label (method)">#type_label</a></span>
402
- <small>Schemacop::Node</small>
417
+ <span class='object_link'><a href="Schemacop/ObjectValidator.html#type_label-instance_method" title="Schemacop::ObjectValidator#type_label (method)">#type_label</a></span>
418
+ <small>Schemacop::ObjectValidator</small>
403
419
  </div>
404
420
  </li>
405
421
 
406
422
 
407
423
  <li class="even ">
408
424
  <div class="item">
409
- <span class='object_link'><a href="Schemacop/ObjectValidator.html#type_label-instance_method" title="Schemacop::ObjectValidator#type_label (method)">#type_label</a></span>
410
- <small>Schemacop::ObjectValidator</small>
425
+ <span class='object_link'><a href="Schemacop/Node.html#type_label-instance_method" title="Schemacop::Node#type_label (method)">#type_label</a></span>
426
+ <small>Schemacop::Node</small>
411
427
  </div>
412
428
  </li>
413
429
 
414
430
 
415
431
  <li class="odd ">
416
432
  <div class="item">
417
- <span class='object_link'><a href="Schemacop/Node.html#type_matches%3F-class_method" title="Schemacop::Node.type_matches? (method)">type_matches?</a></span>
418
- <small>Schemacop::Node</small>
433
+ <span class='object_link'><a href="Schemacop/ObjectValidator.html#type_matches%3F-instance_method" title="Schemacop::ObjectValidator#type_matches? (method)">#type_matches?</a></span>
434
+ <small>Schemacop::ObjectValidator</small>
419
435
  </div>
420
436
  </li>
421
437
 
422
438
 
423
439
  <li class="even ">
424
440
  <div class="item">
425
- <span class='object_link'><a href="Schemacop/Node.html#type_matches%3F-instance_method" title="Schemacop::Node#type_matches? (method)">#type_matches?</a></span>
441
+ <span class='object_link'><a href="Schemacop/Node.html#type_matches%3F-class_method" title="Schemacop::Node.type_matches? (method)">type_matches?</a></span>
426
442
  <small>Schemacop::Node</small>
427
443
  </div>
428
444
  </li>
@@ -430,32 +446,32 @@
430
446
 
431
447
  <li class="odd ">
432
448
  <div class="item">
433
- <span class='object_link'><a href="Schemacop/ObjectValidator.html#type_matches%3F-instance_method" title="Schemacop::ObjectValidator#type_matches? (method)">#type_matches?</a></span>
434
- <small>Schemacop::ObjectValidator</small>
449
+ <span class='object_link'><a href="Schemacop/Node.html#type_matches%3F-instance_method" title="Schemacop::Node#type_matches? (method)">#type_matches?</a></span>
450
+ <small>Schemacop::Node</small>
435
451
  </div>
436
452
  </li>
437
453
 
438
454
 
439
455
  <li class="even ">
440
456
  <div class="item">
441
- <span class='object_link'><a href="Schemacop/Schema.html#valid%3F-instance_method" title="Schemacop::Schema#valid? (method)">#valid?</a></span>
442
- <small>Schemacop::Schema</small>
457
+ <span class='object_link'><a href="Schemacop/Collector.html#valid%3F-instance_method" title="Schemacop::Collector#valid? (method)">#valid?</a></span>
458
+ <small>Schemacop::Collector</small>
443
459
  </div>
444
460
  </li>
445
461
 
446
462
 
447
463
  <li class="odd ">
448
464
  <div class="item">
449
- <span class='object_link'><a href="Schemacop/Collector.html#valid%3F-instance_method" title="Schemacop::Collector#valid? (method)">#valid?</a></span>
450
- <small>Schemacop::Collector</small>
465
+ <span class='object_link'><a href="Schemacop/Schema.html#valid%3F-instance_method" title="Schemacop::Schema#valid? (method)">#valid?</a></span>
466
+ <small>Schemacop::Schema</small>
451
467
  </div>
452
468
  </li>
453
469
 
454
470
 
455
471
  <li class="even ">
456
472
  <div class="item">
457
- <span class='object_link'><a href="Schemacop/Node.html#validate-instance_method" title="Schemacop::Node#validate (method)">#validate</a></span>
458
- <small>Schemacop::Node</small>
473
+ <span class='object_link'><a href="Schemacop/StringValidator.html#validate-instance_method" title="Schemacop::StringValidator#validate (method)">#validate</a></span>
474
+ <small>Schemacop::StringValidator</small>
459
475
  </div>
460
476
  </li>
461
477
 
@@ -470,16 +486,16 @@
470
486
 
471
487
  <li class="even ">
472
488
  <div class="item">
473
- <span class='object_link'><a href="Schemacop/FieldNode.html#validate-instance_method" title="Schemacop::FieldNode#validate (method)">#validate</a></span>
474
- <small>Schemacop::FieldNode</small>
489
+ <span class='object_link'><a href="Schemacop/NodeSupportingType.html#validate-instance_method" title="Schemacop::NodeSupportingType#validate (method)">#validate</a></span>
490
+ <small>Schemacop::NodeSupportingType</small>
475
491
  </div>
476
492
  </li>
477
493
 
478
494
 
479
495
  <li class="odd ">
480
496
  <div class="item">
481
- <span class='object_link'><a href="Schemacop/NodeSupportingType.html#validate-instance_method" title="Schemacop::NodeSupportingType#validate (method)">#validate</a></span>
482
- <small>Schemacop::NodeSupportingType</small>
497
+ <span class='object_link'><a href="Schemacop/Node.html#validate-instance_method" title="Schemacop::Node#validate (method)">#validate</a></span>
498
+ <small>Schemacop::Node</small>
483
499
  </div>
484
500
  </li>
485
501
 
@@ -510,8 +526,8 @@
510
526
 
511
527
  <li class="odd ">
512
528
  <div class="item">
513
- <span class='object_link'><a href="Schemacop/StringValidator.html#validate-instance_method" title="Schemacop::StringValidator#validate (method)">#validate</a></span>
514
- <small>Schemacop::StringValidator</small>
529
+ <span class='object_link'><a href="Schemacop/FieldNode.html#validate-instance_method" title="Schemacop::FieldNode#validate (method)">#validate</a></span>
530
+ <small>Schemacop::FieldNode</small>
515
531
  </div>
516
532
  </li>
517
533