Class: SimpleJsonSchemaBuilder::Base
- Inherits:
-
Object
- Object
- SimpleJsonSchemaBuilder::Base
- Defined in:
- lib/simple_json_schema_builder/base.rb
Class Method Summary collapse
- .object(description: nil, default_required: false, &block) ⇒ Object
- .schema ⇒ Object
- .to_json ⇒ Object
Instance Method Summary collapse
- #boolean(key_name, required: nil, title: nil, description: nil, array: false, examples: []) ⇒ Object
-
#initialize(description: nil, default_required: false) ⇒ Base
constructor
A new instance of Base.
- #integer(key_name, required: nil, title: nil, description: nil, array: false, examples: [], enum: nil) ⇒ Object
- #number(key_name, required: nil, title: nil, description: nil, array: false, examples: [], enum: nil) ⇒ Object
- #object(key_name = nil, required: nil, default_required: false, description: nil, array: false, schema: nil, &block) ⇒ Object
- #schema ⇒ Object
- #string(key_name, required: nil, title: nil, description: nil, array: false, examples: [], enum: nil) ⇒ Object
Constructor Details
#initialize(description: nil, default_required: false) ⇒ Base
Returns a new instance of Base.
20 21 22 23 24 25 |
# File 'lib/simple_json_schema_builder/base.rb', line 20 def initialize(description: nil, default_required: false) @properties = {} @required_key_names = [] @description = description @default_required = default_required end |
Class Method Details
.object(description: nil, default_required: false, &block) ⇒ Object
7 8 9 10 |
# File 'lib/simple_json_schema_builder/base.rb', line 7 def self.object(description: nil, default_required: false, &block) @schema ||= Base.new(description: description, default_required: default_required) @schema.instance_eval(&block) end |
.schema ⇒ Object
12 13 14 |
# File 'lib/simple_json_schema_builder/base.rb', line 12 def self.schema @schema.schema end |
.to_json ⇒ Object
16 17 18 |
# File 'lib/simple_json_schema_builder/base.rb', line 16 def self.to_json MultiJson.dump(schema) end |
Instance Method Details
#boolean(key_name, required: nil, title: nil, description: nil, array: false, examples: []) ⇒ Object
45 46 47 48 49 |
# File 'lib/simple_json_schema_builder/base.rb', line 45 def boolean(key_name, required: nil, title: nil, description: nil, array: false, examples: []) add_required(key_name, required) add_property("boolean", key_name, title: title, description: description, examples: examples, enum: nil) add_array(key_name, array) end |
#integer(key_name, required: nil, title: nil, description: nil, array: false, examples: [], enum: nil) ⇒ Object
33 34 35 36 37 |
# File 'lib/simple_json_schema_builder/base.rb', line 33 def integer(key_name, required: nil, title: nil, description: nil, array: false, examples: [], enum: nil) add_required(key_name, required) add_property("integer", key_name, title: title, description: description, examples: examples, enum: enum) add_array(key_name, array) end |
#number(key_name, required: nil, title: nil, description: nil, array: false, examples: [], enum: nil) ⇒ Object
39 40 41 42 43 |
# File 'lib/simple_json_schema_builder/base.rb', line 39 def number(key_name, required: nil, title: nil, description: nil, array: false, examples: [], enum: nil) add_required(key_name, required) add_property("number", key_name, title: title, description: description, examples: examples, enum: enum) add_array(key_name, array) end |
#object(key_name = nil, required: nil, default_required: false, description: nil, array: false, schema: nil, &block) ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/simple_json_schema_builder/base.rb', line 51 def object(key_name = nil, required: nil, default_required: false, description: nil, array: false, schema: nil, &block) @default_required = default_required add_required(key_name, required) if schema nested_object = schema else nested_object = Base.new(description: description) nested_object.instance_eval(&block) end if key_name @properties[key_name] = nested_object.schema add_array(key_name, array) else @properties = nested_object.schema end end |
#schema ⇒ Object
70 71 72 73 74 75 76 77 |
# File 'lib/simple_json_schema_builder/base.rb', line 70 def schema { type: "object", description: description, required: (required_key_names unless required_key_names.empty?), properties: properties, }.compact end |
#string(key_name, required: nil, title: nil, description: nil, array: false, examples: [], enum: nil) ⇒ Object
27 28 29 30 31 |
# File 'lib/simple_json_schema_builder/base.rb', line 27 def string(key_name, required: nil, title: nil, description: nil, array: false, examples: [], enum: nil) add_required(key_name, required) add_property("string", key_name, title: title, description: description, examples: examples, enum: enum) add_array(key_name, array) end |