schemacop 2.3.2 → 2.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +15 -0
- data/README.md +190 -2
- data/RUBY_VERSION +1 -1
- data/Rakefile +6 -5
- data/VERSION +1 -1
- data/doc/Schemacop.html +30 -3
- data/doc/Schemacop/ArrayValidator.html +2 -2
- data/doc/Schemacop/BooleanValidator.html +1 -1
- data/doc/Schemacop/Caster.html +379 -0
- data/doc/Schemacop/Collector.html +178 -102
- data/doc/Schemacop/Exceptions.html +1 -1
- data/doc/Schemacop/Exceptions/InvalidSchemaError.html +1 -1
- data/doc/Schemacop/Exceptions/ValidationError.html +1 -1
- data/doc/Schemacop/FieldNode.html +17 -5
- data/doc/Schemacop/FloatValidator.html +1 -1
- data/doc/Schemacop/HashValidator.html +1 -1
- data/doc/Schemacop/IntegerValidator.html +1 -1
- data/doc/Schemacop/NilValidator.html +1 -1
- data/doc/Schemacop/Node.html +95 -83
- data/doc/Schemacop/NodeResolver.html +26 -10
- data/doc/Schemacop/NodeSupportingField.html +1 -1
- data/doc/Schemacop/NodeSupportingType.html +2 -4
- data/doc/Schemacop/NodeWithBlock.html +1 -1
- data/doc/Schemacop/NumberValidator.html +1 -1
- data/doc/Schemacop/ObjectValidator.html +1 -1
- data/doc/Schemacop/RootNode.html +1 -1
- data/doc/Schemacop/Schema.html +3 -3
- data/doc/Schemacop/StringValidator.html +1 -1
- data/doc/Schemacop/SymbolValidator.html +1 -1
- data/doc/ScopedEnv.html +1 -1
- data/doc/_index.html +8 -1
- data/doc/class_list.html +1 -1
- data/doc/file.README.html +184 -3
- data/doc/index.html +184 -3
- data/doc/method_list.html +93 -61
- data/doc/top-level-namespace.html +1 -1
- data/lib/schemacop.rb +14 -0
- data/lib/schemacop/caster.rb +38 -0
- data/lib/schemacop/collector.rb +34 -6
- data/lib/schemacop/field_node.rb +25 -3
- data/lib/schemacop/node.rb +10 -2
- data/lib/schemacop/node_resolver.rb +10 -2
- data/lib/schemacop/node_supporting_type.rb +21 -1
- data/lib/schemacop/schema.rb +2 -2
- data/lib/schemacop/validator/array_validator.rb +1 -1
- data/lib/schemacop/validator/float_validator.rb +1 -1
- data/lib/schemacop/validator/integer_validator.rb +1 -1
- data/schemacop.gemspec +14 -8
- data/test/casting_test.rb +90 -0
- data/test/custom_check_test.rb +14 -14
- data/test/custom_if_test.rb +12 -12
- data/test/defaults_test.rb +71 -0
- data/test/nil_dis_allow_test.rb +6 -6
- data/test/node_resolver_test.rb +26 -0
- data/test/short_forms_test.rb +73 -66
- data/test/test_helper.rb +7 -0
- data/test/types_test.rb +5 -5
- data/test/validator_array_test.rb +16 -16
- data/test/validator_boolean_test.rb +2 -2
- data/test/validator_float_test.rb +15 -15
- data/test/validator_hash_test.rb +5 -5
- data/test/validator_integer_test.rb +9 -9
- data/test/validator_nil_test.rb +1 -1
- data/test/validator_number_test.rb +19 -19
- data/test/validator_object_test.rb +18 -18
- data/test/validator_string_test.rb +12 -12
- data/test/validator_symbol_test.rb +2 -2
- metadata +42 -6
data/doc/index.html
CHANGED
@@ -177,12 +177,38 @@ FalseClass).</p>
|
|
177
177
|
<h3><code>validate</code> vs <code>validate!</code> vs <code>valid?</code></h3>
|
178
178
|
|
179
179
|
<p>The method <code>validate</code> will return a <code>Collector</code> object that contains all
|
180
|
-
validation errors (if any)
|
181
|
-
and
|
180
|
+
validation errors (if any) as well as a deep copy of your data with applied
|
181
|
+
defaults and castings, whereas <code>validate!</code> will accumulate all violations
|
182
|
+
and finally throw an exception describing them or, if the validation was
|
183
|
+
successful, a deep-copy of your supplied data with defaults and castings
|
184
|
+
applied.</p>
|
182
185
|
|
183
186
|
<p>For simply querying the validity of some data, use the methods <code>valid?</code> or
|
184
187
|
<code>invalid?</code>.</p>
|
185
188
|
|
189
|
+
<p>Examples:</p>
|
190
|
+
|
191
|
+
<pre class="code ruby"><code class="ruby"><span class='comment'># validate! returns your modified data or throws a validation error
|
192
|
+
</span><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>
|
193
|
+
<span class='id identifier rubyid_req'>req</span> <span class='symbol'>:foo</span><span class='comma'>,</span> <span class='label'>default:</span> <span class='int'>42</span>
|
194
|
+
<span class='kw'>end</span>
|
195
|
+
<span class='id identifier rubyid_s'>s</span><span class='period'>.</span><span class='id identifier rubyid_validate!'>validate!</span><span class='lparen'>(</span><span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span> <span class='comment'># => { foo: 42 }
|
196
|
+
</span>
|
197
|
+
<span class='comment'># validate returns a collector
|
198
|
+
</span><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>
|
199
|
+
<span class='id identifier rubyid_req'>req</span> <span class='symbol'>:foo</span><span class='comma'>,</span> <span class='label'>default:</span> <span class='int'>42</span>
|
200
|
+
<span class='kw'>end</span>
|
201
|
+
|
202
|
+
<span class='id identifier rubyid_collector'>collector</span> <span class='op'>=</span> <span class='id identifier rubyid_s'>s</span><span class='period'>.</span><span class='id identifier rubyid_validate'>validate</span><span class='lparen'>(</span><span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
203
|
+
<span class='id identifier rubyid_collector'>collector</span><span class='period'>.</span><span class='id identifier rubyid_valid?'>valid?</span> <span class='comment'># true
|
204
|
+
</span><span class='id identifier rubyid_collector'>collector</span><span class='period'>.</span><span class='id identifier rubyid_data'>data</span> <span class='comment'># => { foo: 42 }
|
205
|
+
</span>
|
206
|
+
<span class='id identifier rubyid_collector'>collector</span> <span class='op'>=</span> <span class='id identifier rubyid_s'>s</span><span class='period'>.</span><span class='id identifier rubyid_validate'>validate</span><span class='lparen'>(</span><span class='lbrace'>{</span> <span class='label'>foo:</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>invalid</span><span class='tstring_end'>'</span></span> <span class='rbrace'>}</span><span class='rparen'>)</span>
|
207
|
+
<span class='id identifier rubyid_collector'>collector</span><span class='period'>.</span><span class='id identifier rubyid_valid?'>valid?</span> <span class='comment'># false
|
208
|
+
</span><span class='id identifier rubyid_collector'>collector</span><span class='period'>.</span><span class='id identifier rubyid_data'>data</span> <span class='comment'># => nil
|
209
|
+
</span><span class='id identifier rubyid_collector'>collector</span><span class='period'>.</span><span class='id identifier rubyid_exceptions'>exceptions</span> <span class='comment'># => Validation error
|
210
|
+
</span></code></pre>
|
211
|
+
|
186
212
|
<h2>Schemacop's DSL</h2>
|
187
213
|
|
188
214
|
<p>In this section, we will ignore <a href="#short-forms">short forms</a> and explicitly
|
@@ -540,6 +566,10 @@ write Field Lines in the schema instantiation:</p>
|
|
540
566
|
<span class='kw'>end</span>
|
541
567
|
</code></pre>
|
542
568
|
|
569
|
+
<p>Note that this does not allow you to specify any options for the hash itself.
|
570
|
+
You still need to specify <code>:hash</code> as a type if you want to pass any options to
|
571
|
+
the hash (i.e. a <code>default</code>).</p>
|
572
|
+
|
543
573
|
<h3>Shortform for subtypes</h3>
|
544
574
|
|
545
575
|
<p>In case of nested arrays, you can group all Type Lines to a single one.</p>
|
@@ -595,6 +625,145 @@ of type Array with children of type Array with children of type Hash in which at
|
|
595
625
|
least one of the Symbol keys <code>:food</code> and <code>:drink</code> (with any non-nil value type)
|
596
626
|
is present.</p>
|
597
627
|
|
628
|
+
<h2>Defaults</h2>
|
629
|
+
|
630
|
+
<p>Starting from version 2.4.0, Schemacop allows you to define default values at
|
631
|
+
any point in your schema. If the validated data contains a nil value, it will be
|
632
|
+
substituted by the given default value.</p>
|
633
|
+
|
634
|
+
<p>Note that Schemacop never modifies the data you pass to it. If you want to
|
635
|
+
benefit from Schemacop-applied defaults, you need to access the cloned, modified
|
636
|
+
data returned by <code>validate</code> or <code>validate!</code>.</p>
|
637
|
+
|
638
|
+
<p>Applying defaults is done before validating the substructure and before any type
|
639
|
+
casting. The provided default will be validated same as user-supplied data, so
|
640
|
+
if your given default does not validate properly, a validation error is thrown.
|
641
|
+
Make sure your default values always match the underlying schema.</p>
|
642
|
+
|
643
|
+
<p>Defaults can be specified at any point:</p>
|
644
|
+
|
645
|
+
<pre class="code ruby"><code class="ruby"><span class='comment'># Basic usage
|
646
|
+
</span><span class='const'>Schema</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span> <span class='kw'>do</span>
|
647
|
+
<span class='id identifier rubyid_type'>type</span> <span class='symbol'>:string</span><span class='comma'>,</span> <span class='label'>default:</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>Hello World</span><span class='tstring_end'>'</span></span>
|
648
|
+
<span class='kw'>end</span>
|
649
|
+
|
650
|
+
<span class='comment'># The default given for the first type will match
|
651
|
+
</span><span class='const'>Schema</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span> <span class='kw'>do</span>
|
652
|
+
<span class='id identifier rubyid_type'>type</span> <span class='symbol'>:string</span><span class='comma'>,</span> <span class='label'>default:</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>Hello World</span><span class='tstring_end'>'</span></span> <span class='comment'># This will always be applied of no value is supplied
|
653
|
+
</span> <span class='id identifier rubyid_type'>type</span> <span class='symbol'>:integer</span><span class='comma'>,</span> <span class='label'>default:</span> <span class='int'>42</span>
|
654
|
+
<span class='kw'>end</span>
|
655
|
+
|
656
|
+
<span class='comment'># You can also pass entire hashes or arrays to your defaults
|
657
|
+
</span><span class='const'>Schema</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span> <span class='kw'>do</span>
|
658
|
+
<span class='id identifier rubyid_req'>req</span> <span class='symbol'>:foo</span><span class='comma'>,</span> <span class='symbol'>:hash</span><span class='comma'>,</span> <span class='label'>default:</span> <span class='lbrace'>{</span> <span class='label'>foo:</span> <span class='symbol'>:bar</span> <span class='rbrace'>}</span> <span class='kw'>do</span>
|
659
|
+
<span class='id identifier rubyid_req'>req</span> <span class='symbol'>:foo</span><span class='comma'>,</span> <span class='symbol'>:symbol</span>
|
660
|
+
<span class='kw'>end</span>
|
661
|
+
<span class='id identifier rubyid_req'>req</span> <span class='symbol'>:bar</span><span class='comma'>,</span> <span class='symbol'>:array</span><span class='comma'>,</span> <span class='symbol'>:integer</span><span class='comma'>,</span> <span class='label'>default:</span> <span class='lbracket'>[</span><span class='int'>1</span><span class='comma'>,</span> <span class='int'>2</span><span class='comma'>,</span> <span class='int'>3</span><span class='rbracket'>]</span>
|
662
|
+
<span class='kw'>end</span>
|
663
|
+
|
664
|
+
<span class='comment'># Defaults must match the given schema. The following will fail.
|
665
|
+
</span><span class='const'>Schema</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span> <span class='kw'>do</span>
|
666
|
+
<span class='id identifier rubyid_req'>req</span> <span class='symbol'>:foo</span><span class='comma'>,</span> <span class='label'>default:</span> <span class='lbrace'>{</span> <span class='label'>bar:</span> <span class='symbol'>:baz</span> <span class='rbrace'>}</span> <span class='kw'>do</span>
|
667
|
+
<span class='id identifier rubyid_req'>req</span> <span class='symbol'>:foo</span>
|
668
|
+
<span class='kw'>end</span>
|
669
|
+
<span class='kw'>end</span>
|
670
|
+
</code></pre>
|
671
|
+
|
672
|
+
<h3>Required data points</h3>
|
673
|
+
|
674
|
+
<p>Note that any <em>required</em> validation is done before applying the defaults. If you
|
675
|
+
specify a <code>req</code> field, it must always be given, no matter if you have specified
|
676
|
+
a default or not. Therefore, specifying <code>req</code> fields do not make sense in
|
677
|
+
conjunction with defaults, as the default is always ignored.</p>
|
678
|
+
|
679
|
+
<h2>Type casting</h2>
|
680
|
+
|
681
|
+
<p>Starting from version 2.4.0, Schemacop allows you to specify type castings that
|
682
|
+
can alter the validated data. Consider the following:</p>
|
683
|
+
|
684
|
+
<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>
|
685
|
+
<span class='id identifier rubyid_req'>req</span> <span class='symbol'>:id</span><span class='comma'>,</span> <span class='symbol'>:integer</span><span class='comma'>,</span> <span class='label'>cast:</span> <span class='lbracket'>[</span><span class='const'>String</span><span class='rbracket'>]</span>
|
686
|
+
<span class='kw'>end</span>
|
687
|
+
|
688
|
+
<span class='id identifier rubyid_data'>data</span> <span class='op'>=</span> <span class='id identifier rubyid_s'>s</span><span class='period'>.</span><span class='id identifier rubyid_validate!'>validate!</span><span class='lparen'>(</span><span class='label'>id:</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>42</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
|
689
|
+
<span class='id identifier rubyid_data'>data</span> <span class='comment'># => { id: 42 }
|
690
|
+
</span></code></pre>
|
691
|
+
|
692
|
+
<p>Note that Schemacop never modifies the data you pass to it. If you want to
|
693
|
+
benefit from Schemacop-applied castings, you need to access the cloned, modified
|
694
|
+
data returned by <code>validate</code> or <code>validate!</code>.</p>
|
695
|
+
|
696
|
+
<h3>Specifying type castings</h3>
|
697
|
+
|
698
|
+
<p>Type castings can be specified using two forms: Either as a hash or as an array.
|
699
|
+
While using an array only allows you to specify the supported source types to be
|
700
|
+
casted, using a hash allows you to specify custom casting logic as blocks.</p>
|
701
|
+
|
702
|
+
<p>For hashes, the key must be a class and the value must be either <code>:default</code> for
|
703
|
+
using a built-in caster or a callable object (proc or lambda) that receives the
|
704
|
+
value and is supposed to cast it. If the value can't be casted, the proc must
|
705
|
+
fail with an exception. The exception message will then be contained in the
|
706
|
+
collected validation errors.</p>
|
707
|
+
|
708
|
+
<p>Example:</p>
|
709
|
+
|
710
|
+
<pre class="code ruby"><code class="ruby">Schema.new do
|
711
|
+
# Pass array to `cast`. This enables casting from String or Float to Integer
|
712
|
+
# using the built-in casters.
|
713
|
+
req: id_1, :integer, cast: [String, Float]
|
714
|
+
|
715
|
+
# Pass hash to `cast`. This enables casting from Float to Integer using the
|
716
|
+
# built-in caster and from String to Integer using a custom callback.
|
717
|
+
req :id_2, :integer, cast: { Float => :default, String => proc { |s| Integer(s) }
|
718
|
+
end
|
719
|
+
</code></pre>
|
720
|
+
|
721
|
+
<h3>Built-in casters</h3>
|
722
|
+
|
723
|
+
<p>Schemacop comes with the following casters:</p>
|
724
|
+
|
725
|
+
<ul>
|
726
|
+
<li><code>String</code> to <code>Integer</code> and <code>Float</code></li>
|
727
|
+
<li><code>Float</code> to <code>Integer</code></li>
|
728
|
+
<li><code>Integer</code> to <code>Float</code></li>
|
729
|
+
</ul>
|
730
|
+
|
731
|
+
<p>Note that all built-in casters are precise, so the string <code>foo</code> will fail with
|
732
|
+
an error if casted to an Integer. When casting float values and strings
|
733
|
+
containing float values to integers, the decimal places will be discarded
|
734
|
+
however.</p>
|
735
|
+
|
736
|
+
<h3>Execution order</h3>
|
737
|
+
|
738
|
+
<p>The casting is done <em>before</em> the options <code>if</code> and <code>check</code> are evaluated.
|
739
|
+
Example:</p>
|
740
|
+
|
741
|
+
<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>
|
742
|
+
<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_i'>i</span><span class='op'>|</span> <span class='id identifier rubyid_i'>i</span> <span class='op'>==</span> <span class='int'>42</span> <span class='rbrace'>}</span> <span class='comment'># 1
|
743
|
+
</span> <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='op'><</span> <span class='int'>3</span> <span class='rbrace'>}</span> <span class='comment'># 2
|
744
|
+
</span> <span class='id identifier rubyid_type'>type</span> <span class='symbol'>:string</span>
|
745
|
+
<span class='kw'>end</span>
|
746
|
+
|
747
|
+
<span class='id identifier rubyid_s'>s</span><span class='period'>.</span><span class='id identifier rubyid_validate!'>validate!</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>42</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span> <span class='comment'># 1 will match
|
748
|
+
</span><span class='id identifier rubyid_s'>s</span><span class='period'>.</span><span class='id identifier rubyid_validate!'>validate!</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>2</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span> <span class='comment'># 2 will match
|
749
|
+
</span><span class='id identifier rubyid_s'>s</span><span class='period'>.</span><span class='id identifier rubyid_validate!'>validate!</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>234</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span> <span class='comment'># 3 will match
|
750
|
+
</span><span class='id identifier rubyid_s'>s</span><span class='period'>.</span><span class='id identifier rubyid_validate!'>validate!</span><span class='lparen'>(</span><span class='int'>5</span><span class='rparen'>)</span> <span class='comment'># Will fail, as nothing matches
|
751
|
+
</span></code></pre>
|
752
|
+
|
753
|
+
<h3>Caveats</h3>
|
754
|
+
|
755
|
+
<p>Casting only works with type definitions that only include one type. For
|
756
|
+
instance, the <code>Numeric</code> validator includes both <code>Integer</code> and <code>Float</code>, which
|
757
|
+
would made it unclear what to cast a string into:</p>
|
758
|
+
|
759
|
+
<pre class="code ruby"><code class="ruby"><span class='comment'># This does not work, as it is unclear whether to cast the String into an
|
760
|
+
</span><span class='comment'># Integer or a Float.
|
761
|
+
</span><span class='id identifier rubyid_type'>type</span> <span class='symbol'>:number</span><span class='comma'>,</span> <span class='label'>cast:</span> <span class='lbracket'>[</span><span class='const'>String</span><span class='rbracket'>]</span>
|
762
|
+
</code></pre>
|
763
|
+
|
764
|
+
<p>The same also applies to booleans, as they compound both <code>TrueClass</code> and
|
765
|
+
<code>FalseClass</code>. This may be tackled in future releases.</p>
|
766
|
+
|
598
767
|
<h2>Exceptions</h2>
|
599
768
|
|
600
769
|
<p>Schemacop will throw one of the following checked exceptions:</p>
|
@@ -623,6 +792,18 @@ needs to be given only if field <code>b</code> is present).</p></li>
|
|
623
792
|
<li><p>Schemacop does not yet support string regex matching.</p></li>
|
624
793
|
</ul>
|
625
794
|
|
795
|
+
<h2>Development</h2>
|
796
|
+
|
797
|
+
<p>To run tests:</p>
|
798
|
+
|
799
|
+
<ul>
|
800
|
+
<li><p>Check out the source</p></li>
|
801
|
+
<li><p>Run <code>bundle install</code></p></li>
|
802
|
+
<li><p>Run <code>bundle exec rake test</code> to run all tests</p></li>
|
803
|
+
<li><p>Run <code>bundle exec rake test TEST=test/unit/some/file.rb</code> to run a single test
|
804
|
+
file</p></li>
|
805
|
+
</ul>
|
806
|
+
|
626
807
|
<h2>Contributors</h2>
|
627
808
|
|
628
809
|
<p>Thanks to <a href="https://github.com/bbatsov/rubocop">Rubocop</a> for great inspiration
|
@@ -635,7 +816,7 @@ to <a href="http://www.subgit.com/">SubGit</a> for their great open source licen
|
|
635
816
|
</div></div>
|
636
817
|
|
637
818
|
<div id="footer">
|
638
|
-
Generated on
|
819
|
+
Generated on Mon Oct 28 16:21:59 2019 by
|
639
820
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
640
821
|
0.9.20 (ruby-2.6.2).
|
641
822
|
</div>
|
data/doc/method_list.html
CHANGED
@@ -68,6 +68,22 @@
|
|
68
68
|
</li>
|
69
69
|
|
70
70
|
|
71
|
+
<li class="even ">
|
72
|
+
<div class="item">
|
73
|
+
<span class='object_link'><a href="Schemacop/Caster.html#cast-instance_method" title="Schemacop::Caster#cast (method)">#cast</a></span>
|
74
|
+
<small>Schemacop::Caster</small>
|
75
|
+
</div>
|
76
|
+
</li>
|
77
|
+
|
78
|
+
|
79
|
+
<li class="odd ">
|
80
|
+
<div class="item">
|
81
|
+
<span class='object_link'><a href="Schemacop/Caster.html#castable%3F-instance_method" title="Schemacop::Caster#castable? (method)">#castable?</a></span>
|
82
|
+
<small>Schemacop::Caster</small>
|
83
|
+
</div>
|
84
|
+
</li>
|
85
|
+
|
86
|
+
|
71
87
|
<li class="even ">
|
72
88
|
<div class="item">
|
73
89
|
<span class='object_link'><a href="Schemacop/Node.html#class_matches%3F-class_method" title="Schemacop::Node.class_matches? (method)">class_matches?</a></span>
|
@@ -94,7 +110,7 @@
|
|
94
110
|
|
95
111
|
<li class="odd ">
|
96
112
|
<div class="item">
|
97
|
-
<span class='object_link'><a href="Schemacop/Collector.html#
|
113
|
+
<span class='object_link'><a href="Schemacop/Collector.html#data-instance_method" title="Schemacop::Collector#data (method)">#data</a></span>
|
98
114
|
<small>Schemacop::Collector</small>
|
99
115
|
</div>
|
100
116
|
</li>
|
@@ -126,24 +142,24 @@
|
|
126
142
|
|
127
143
|
<li class="odd ">
|
128
144
|
<div class="item">
|
129
|
-
<span class='object_link'><a href="Schemacop/
|
130
|
-
<small>Schemacop::
|
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>
|
131
147
|
</div>
|
132
148
|
</li>
|
133
149
|
|
134
150
|
|
135
151
|
<li class="even ">
|
136
152
|
<div class="item">
|
137
|
-
<span class='object_link'><a href="Schemacop/
|
138
|
-
<small>Schemacop::
|
153
|
+
<span class='object_link'><a href="Schemacop/NodeWithBlock.html#exec_block-instance_method" title="Schemacop::NodeWithBlock#exec_block (method)">#exec_block</a></span>
|
154
|
+
<small>Schemacop::NodeWithBlock</small>
|
139
155
|
</div>
|
140
156
|
</li>
|
141
157
|
|
142
158
|
|
143
159
|
<li class="odd ">
|
144
160
|
<div class="item">
|
145
|
-
<span class='object_link'><a href="Schemacop/
|
146
|
-
<small>Schemacop::
|
161
|
+
<span class='object_link'><a href="Schemacop/Node.html#exec_block-instance_method" title="Schemacop::Node#exec_block (method)">#exec_block</a></span>
|
162
|
+
<small>Schemacop::Node</small>
|
147
163
|
</div>
|
148
164
|
</li>
|
149
165
|
|
@@ -166,77 +182,85 @@
|
|
166
182
|
|
167
183
|
<li class="even ">
|
168
184
|
<div class="item">
|
169
|
-
<span class='object_link'><a href="Schemacop/
|
170
|
-
<small>Schemacop::
|
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>
|
171
187
|
</div>
|
172
188
|
</li>
|
173
189
|
|
174
190
|
|
175
191
|
<li class="odd ">
|
176
192
|
<div class="item">
|
177
|
-
<span class='object_link'><a href="Schemacop/
|
178
|
-
<small>Schemacop::
|
193
|
+
<span class='object_link'><a href="Schemacop/NodeSupportingType.html#initialize-instance_method" title="Schemacop::NodeSupportingType#initialize (method)">#initialize</a></span>
|
194
|
+
<small>Schemacop::NodeSupportingType</small>
|
179
195
|
</div>
|
180
196
|
</li>
|
181
197
|
|
182
198
|
|
183
199
|
<li class="even ">
|
184
200
|
<div class="item">
|
185
|
-
<span class='object_link'><a href="Schemacop/
|
186
|
-
<small>Schemacop::
|
201
|
+
<span class='object_link'><a href="Schemacop/Node.html#initialize-instance_method" title="Schemacop::Node#initialize (method)">#initialize</a></span>
|
202
|
+
<small>Schemacop::Node</small>
|
187
203
|
</div>
|
188
204
|
</li>
|
189
205
|
|
190
206
|
|
191
207
|
<li class="odd ">
|
192
208
|
<div class="item">
|
193
|
-
<span class='object_link'><a href="
|
194
|
-
<small>
|
209
|
+
<span class='object_link'><a href="ScopedEnv.html#initialize-instance_method" title="ScopedEnv#initialize (method)">#initialize</a></span>
|
210
|
+
<small>ScopedEnv</small>
|
195
211
|
</div>
|
196
212
|
</li>
|
197
213
|
|
198
214
|
|
199
215
|
<li class="even ">
|
200
216
|
<div class="item">
|
201
|
-
<span class='object_link'><a href="Schemacop/
|
202
|
-
<small>Schemacop::
|
217
|
+
<span class='object_link'><a href="Schemacop/FieldNode.html#initialize-instance_method" title="Schemacop::FieldNode#initialize (method)">#initialize</a></span>
|
218
|
+
<small>Schemacop::FieldNode</small>
|
203
219
|
</div>
|
204
220
|
</li>
|
205
221
|
|
206
222
|
|
207
223
|
<li class="odd ">
|
208
224
|
<div class="item">
|
209
|
-
<span class='object_link'><a href="Schemacop/
|
210
|
-
<small>Schemacop::
|
225
|
+
<span class='object_link'><a href="Schemacop/Caster.html#initialize-instance_method" title="Schemacop::Caster#initialize (method)">#initialize</a></span>
|
226
|
+
<small>Schemacop::Caster</small>
|
211
227
|
</div>
|
212
228
|
</li>
|
213
229
|
|
214
230
|
|
215
231
|
<li class="even ">
|
216
232
|
<div class="item">
|
217
|
-
<span class='object_link'><a href="Schemacop/
|
218
|
-
<small>Schemacop::
|
233
|
+
<span class='object_link'><a href="Schemacop/NodeSupportingField.html#initialize-instance_method" title="Schemacop::NodeSupportingField#initialize (method)">#initialize</a></span>
|
234
|
+
<small>Schemacop::NodeSupportingField</small>
|
219
235
|
</div>
|
220
236
|
</li>
|
221
237
|
|
222
238
|
|
223
239
|
<li class="odd ">
|
224
240
|
<div class="item">
|
225
|
-
<span class='object_link'><a href="Schemacop/
|
226
|
-
<small>Schemacop::
|
241
|
+
<span class='object_link'><a href="Schemacop/ArrayValidator.html#initialize-instance_method" title="Schemacop::ArrayValidator#initialize (method)">#initialize</a></span>
|
242
|
+
<small>Schemacop::ArrayValidator</small>
|
227
243
|
</div>
|
228
244
|
</li>
|
229
245
|
|
230
246
|
|
231
247
|
<li class="even ">
|
232
248
|
<div class="item">
|
233
|
-
<span class='object_link'><a href="
|
234
|
-
<small>
|
249
|
+
<span class='object_link'><a href="Schemacop/Collector.html#initialize-instance_method" title="Schemacop::Collector#initialize (method)">#initialize</a></span>
|
250
|
+
<small>Schemacop::Collector</small>
|
235
251
|
</div>
|
236
252
|
</li>
|
237
253
|
|
238
254
|
|
239
255
|
<li class="odd ">
|
256
|
+
<div class="item">
|
257
|
+
<span class='object_link'><a href="Schemacop/StringValidator.html#initialize-instance_method" title="Schemacop::StringValidator#initialize (method)">#initialize</a></span>
|
258
|
+
<small>Schemacop::StringValidator</small>
|
259
|
+
</div>
|
260
|
+
</li>
|
261
|
+
|
262
|
+
|
263
|
+
<li class="even ">
|
240
264
|
<div class="item">
|
241
265
|
<span class='object_link'><a href="Schemacop/Schema.html#invalid%3F-instance_method" title="Schemacop::Schema#invalid? (method)">#invalid?</a></span>
|
242
266
|
<small>Schemacop::Schema</small>
|
@@ -244,7 +268,7 @@
|
|
244
268
|
</li>
|
245
269
|
|
246
270
|
|
247
|
-
<li class="
|
271
|
+
<li class="odd ">
|
248
272
|
<div class="item">
|
249
273
|
<span class='object_link'><a href="Schemacop/Node.html#klass-class_method" title="Schemacop::Node.klass (method)">klass</a></span>
|
250
274
|
<small>Schemacop::Node</small>
|
@@ -252,7 +276,7 @@
|
|
252
276
|
</li>
|
253
277
|
|
254
278
|
|
255
|
-
<li class="
|
279
|
+
<li class="even ">
|
256
280
|
<div class="item">
|
257
281
|
<span class='object_link'><a href="ScopedEnv.html#method_missing-instance_method" title="ScopedEnv#method_missing (method)">#method_missing</a></span>
|
258
282
|
<small>ScopedEnv</small>
|
@@ -260,7 +284,7 @@
|
|
260
284
|
</li>
|
261
285
|
|
262
286
|
|
263
|
-
<li class="
|
287
|
+
<li class="odd ">
|
264
288
|
<div class="item">
|
265
289
|
<span class='object_link'><a href="Schemacop/FieldNode.html#name-instance_method" title="Schemacop::FieldNode#name (method)">#name</a></span>
|
266
290
|
<small>Schemacop::FieldNode</small>
|
@@ -268,7 +292,7 @@
|
|
268
292
|
</li>
|
269
293
|
|
270
294
|
|
271
|
-
<li class="
|
295
|
+
<li class="even ">
|
272
296
|
<div class="item">
|
273
297
|
<span class='object_link'><a href="Schemacop/NodeSupportingField.html#opt!-instance_method" title="Schemacop::NodeSupportingField#opt! (method)">#opt!</a></span>
|
274
298
|
<small>Schemacop::NodeSupportingField</small>
|
@@ -276,7 +300,7 @@
|
|
276
300
|
</li>
|
277
301
|
|
278
302
|
|
279
|
-
<li class="
|
303
|
+
<li class="odd ">
|
280
304
|
<div class="item">
|
281
305
|
<span class='object_link'><a href="Schemacop/NodeSupportingField.html#opt%3F-instance_method" title="Schemacop::NodeSupportingField#opt? (method)">#opt?</a></span>
|
282
306
|
<small>Schemacop::NodeSupportingField</small>
|
@@ -284,6 +308,14 @@
|
|
284
308
|
</li>
|
285
309
|
|
286
310
|
|
311
|
+
<li class="even ">
|
312
|
+
<div class="item">
|
313
|
+
<span class='object_link'><a href="Schemacop/Node.html#option-class_method" title="Schemacop::Node.option (method)">option</a></span>
|
314
|
+
<small>Schemacop::Node</small>
|
315
|
+
</div>
|
316
|
+
</li>
|
317
|
+
|
318
|
+
|
287
319
|
<li class="odd ">
|
288
320
|
<div class="item">
|
289
321
|
<span class='object_link'><a href="Schemacop/Node.html#option-instance_method" title="Schemacop::Node#option (method)">#option</a></span>
|
@@ -294,7 +326,7 @@
|
|
294
326
|
|
295
327
|
<li class="even ">
|
296
328
|
<div class="item">
|
297
|
-
<span class='object_link'><a href="Schemacop/Node.html#option-
|
329
|
+
<span class='object_link'><a href="Schemacop/Node.html#option%3F-instance_method" title="Schemacop::Node#option? (method)">#option?</a></span>
|
298
330
|
<small>Schemacop::Node</small>
|
299
331
|
</div>
|
300
332
|
</li>
|
@@ -302,7 +334,7 @@
|
|
302
334
|
|
303
335
|
<li class="odd ">
|
304
336
|
<div class="item">
|
305
|
-
<span class='object_link'><a href="Schemacop/Node.html#
|
337
|
+
<span class='object_link'><a href="Schemacop/Node.html#options-instance_method" title="Schemacop::Node#options (method)">#options</a></span>
|
306
338
|
<small>Schemacop::Node</small>
|
307
339
|
</div>
|
308
340
|
</li>
|
@@ -310,8 +342,8 @@
|
|
310
342
|
|
311
343
|
<li class="even ">
|
312
344
|
<div class="item">
|
313
|
-
<span class='object_link'><a href="Schemacop/
|
314
|
-
<small>Schemacop::
|
345
|
+
<span class='object_link'><a href="Schemacop/Collector.html#override_value-instance_method" title="Schemacop::Collector#override_value (method)">#override_value</a></span>
|
346
|
+
<small>Schemacop::Collector</small>
|
315
347
|
</div>
|
316
348
|
</li>
|
317
349
|
|
@@ -326,16 +358,16 @@
|
|
326
358
|
|
327
359
|
<li class="even ">
|
328
360
|
<div class="item">
|
329
|
-
<span class='object_link'><a href="Schemacop/
|
330
|
-
<small>Schemacop::
|
361
|
+
<span class='object_link'><a href="Schemacop/NodeResolver.html#register-class_method" title="Schemacop::NodeResolver.register (method)">register</a></span>
|
362
|
+
<small>Schemacop::NodeResolver</small>
|
331
363
|
</div>
|
332
364
|
</li>
|
333
365
|
|
334
366
|
|
335
367
|
<li class="odd ">
|
336
368
|
<div class="item">
|
337
|
-
<span class='object_link'><a href="Schemacop/
|
338
|
-
<small>Schemacop::
|
369
|
+
<span class='object_link'><a href="Schemacop/Node.html#register-class_method" title="Schemacop::Node.register (method)">register</a></span>
|
370
|
+
<small>Schemacop::Node</small>
|
339
371
|
</div>
|
340
372
|
</li>
|
341
373
|
|
@@ -414,31 +446,31 @@
|
|
414
446
|
|
415
447
|
<li class="odd ">
|
416
448
|
<div class="item">
|
417
|
-
<span class='object_link'><a href="Schemacop/
|
418
|
-
<small>Schemacop::
|
449
|
+
<span class='object_link'><a href="Schemacop/Node.html#type_label-instance_method" title="Schemacop::Node#type_label (method)">#type_label</a></span>
|
450
|
+
<small>Schemacop::Node</small>
|
419
451
|
</div>
|
420
452
|
</li>
|
421
453
|
|
422
454
|
|
423
455
|
<li class="even ">
|
424
456
|
<div class="item">
|
425
|
-
<span class='object_link'><a href="Schemacop/
|
426
|
-
<small>Schemacop::
|
457
|
+
<span class='object_link'><a href="Schemacop/ObjectValidator.html#type_label-instance_method" title="Schemacop::ObjectValidator#type_label (method)">#type_label</a></span>
|
458
|
+
<small>Schemacop::ObjectValidator</small>
|
427
459
|
</div>
|
428
460
|
</li>
|
429
461
|
|
430
462
|
|
431
463
|
<li class="odd ">
|
432
464
|
<div class="item">
|
433
|
-
<span class='object_link'><a href="Schemacop/
|
434
|
-
<small>Schemacop::
|
465
|
+
<span class='object_link'><a href="Schemacop/Node.html#type_matches%3F-class_method" title="Schemacop::Node.type_matches? (method)">type_matches?</a></span>
|
466
|
+
<small>Schemacop::Node</small>
|
435
467
|
</div>
|
436
468
|
</li>
|
437
469
|
|
438
470
|
|
439
471
|
<li class="even ">
|
440
472
|
<div class="item">
|
441
|
-
<span class='object_link'><a href="Schemacop/Node.html#type_matches%3F-
|
473
|
+
<span class='object_link'><a href="Schemacop/Node.html#type_matches%3F-instance_method" title="Schemacop::Node#type_matches? (method)">#type_matches?</a></span>
|
442
474
|
<small>Schemacop::Node</small>
|
443
475
|
</div>
|
444
476
|
</li>
|
@@ -446,8 +478,8 @@
|
|
446
478
|
|
447
479
|
<li class="odd ">
|
448
480
|
<div class="item">
|
449
|
-
<span class='object_link'><a href="Schemacop/
|
450
|
-
<small>Schemacop::
|
481
|
+
<span class='object_link'><a href="Schemacop/ObjectValidator.html#type_matches%3F-instance_method" title="Schemacop::ObjectValidator#type_matches? (method)">#type_matches?</a></span>
|
482
|
+
<small>Schemacop::ObjectValidator</small>
|
451
483
|
</div>
|
452
484
|
</li>
|
453
485
|
|
@@ -470,8 +502,8 @@
|
|
470
502
|
|
471
503
|
<li class="even ">
|
472
504
|
<div class="item">
|
473
|
-
<span class='object_link'><a href="Schemacop/
|
474
|
-
<small>Schemacop::
|
505
|
+
<span class='object_link'><a href="Schemacop/HashValidator.html#validate-instance_method" title="Schemacop::HashValidator#validate (method)">#validate</a></span>
|
506
|
+
<small>Schemacop::HashValidator</small>
|
475
507
|
</div>
|
476
508
|
</li>
|
477
509
|
|
@@ -486,48 +518,48 @@
|
|
486
518
|
|
487
519
|
<li class="even ">
|
488
520
|
<div class="item">
|
489
|
-
<span class='object_link'><a href="Schemacop/
|
490
|
-
<small>Schemacop::
|
521
|
+
<span class='object_link'><a href="Schemacop/ArrayValidator.html#validate-instance_method" title="Schemacop::ArrayValidator#validate (method)">#validate</a></span>
|
522
|
+
<small>Schemacop::ArrayValidator</small>
|
491
523
|
</div>
|
492
524
|
</li>
|
493
525
|
|
494
526
|
|
495
527
|
<li class="odd ">
|
496
528
|
<div class="item">
|
497
|
-
<span class='object_link'><a href="Schemacop/
|
498
|
-
<small>Schemacop::
|
529
|
+
<span class='object_link'><a href="Schemacop/NumberValidator.html#validate-instance_method" title="Schemacop::NumberValidator#validate (method)">#validate</a></span>
|
530
|
+
<small>Schemacop::NumberValidator</small>
|
499
531
|
</div>
|
500
532
|
</li>
|
501
533
|
|
502
534
|
|
503
535
|
<li class="even ">
|
504
536
|
<div class="item">
|
505
|
-
<span class='object_link'><a href="Schemacop/
|
506
|
-
<small>Schemacop::
|
537
|
+
<span class='object_link'><a href="Schemacop/StringValidator.html#validate-instance_method" title="Schemacop::StringValidator#validate (method)">#validate</a></span>
|
538
|
+
<small>Schemacop::StringValidator</small>
|
507
539
|
</div>
|
508
540
|
</li>
|
509
541
|
|
510
542
|
|
511
543
|
<li class="odd ">
|
512
544
|
<div class="item">
|
513
|
-
<span class='object_link'><a href="Schemacop/
|
514
|
-
<small>Schemacop::
|
545
|
+
<span class='object_link'><a href="Schemacop/NodeSupportingType.html#validate-instance_method" title="Schemacop::NodeSupportingType#validate (method)">#validate</a></span>
|
546
|
+
<small>Schemacop::NodeSupportingType</small>
|
515
547
|
</div>
|
516
548
|
</li>
|
517
549
|
|
518
550
|
|
519
551
|
<li class="even ">
|
520
552
|
<div class="item">
|
521
|
-
<span class='object_link'><a href="Schemacop/
|
522
|
-
<small>Schemacop::
|
553
|
+
<span class='object_link'><a href="Schemacop/FieldNode.html#validate-instance_method" title="Schemacop::FieldNode#validate (method)">#validate</a></span>
|
554
|
+
<small>Schemacop::FieldNode</small>
|
523
555
|
</div>
|
524
556
|
</li>
|
525
557
|
|
526
558
|
|
527
559
|
<li class="odd ">
|
528
560
|
<div class="item">
|
529
|
-
<span class='object_link'><a href="Schemacop/
|
530
|
-
<small>Schemacop::
|
561
|
+
<span class='object_link'><a href="Schemacop/Node.html#validate-instance_method" title="Schemacop::Node#validate (method)">#validate</a></span>
|
562
|
+
<small>Schemacop::Node</small>
|
531
563
|
</div>
|
532
564
|
</li>
|
533
565
|
|