schemacop 2.0.0 → 2.3.2

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.
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