Class: JSON::SchemaBuilder::Object
- Defined in:
- lib/json/schema_builder/object.rb
Instance Attribute Summary
Attributes inherited from Entity
#children, #error, #fragment, #fragments, #name, #options, #parent
Instance Method Summary collapse
- #extract_types ⇒ Object
- #initialize_children ⇒ Object
- #reinitialize ⇒ Object
- #required(*values) ⇒ Object (also: #required=)
Methods inherited from Entity
#add_fragment, #as_json, disable_attributes!, #extend, #initialize, #initialized?, #inspect, #merge_children!, #method_missing, #reset_fragment, #respond_to?, #schema
Methods included from Helpers
#empty_string, #id, #object_or_array
Methods included from Validation
#fully_validate, #validate, #validate!
Methods included from DSL
Constructor Details
This class inherits a constructor from JSON::SchemaBuilder::Entity
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class JSON::SchemaBuilder::Entity
Instance Method Details
#extract_types ⇒ Object
28 29 30 31 |
# File 'lib/json/schema_builder/object.rb', line 28 def extract_types initialize_children super end |
#initialize_children ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/json/schema_builder/object.rb', line 14 def initialize_children self.properties = { } children.select(&:name).each do |child| case child.name when Regexp self.pattern_properties ||= { } self.pattern_properties[child.name.source] = child.as_json else self.properties[child.name] = child.as_json end end end |
#reinitialize ⇒ Object
33 34 35 36 |
# File 'lib/json/schema_builder/object.rb', line 33 def reinitialize return unless initialized? extract_types end |
#required(*values) ⇒ Object Also known as: required=
38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/json/schema_builder/object.rb', line 38 def required(*values) case values when [] @schema[:required] when [true] @parent.required ||= [] @parent.required << @name else @schema[:required] = values.flatten end end |