Class: ConvertsToJsonSchemaWithRefs

Inherits:
Object
  • Object
show all
Defined in:
lib/active_json_schema/converts_to_json_schema_with_refs.rb

Defined Under Namespace

Classes: SchemaAttributeInfo, UnsupportedAssociationType

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(model_class, only: nil, associations: [], additional_properties: false) ⇒ ConvertsToJsonSchemaWithRefs

Returns a new instance of ConvertsToJsonSchemaWithRefs.



11
12
13
14
15
16
17
# File 'lib/active_json_schema/converts_to_json_schema_with_refs.rb', line 11

def initialize(model_class, only: nil, associations: [], additional_properties: false)
  @model_class = model_class
  @only = only
  @associations = associations.is_a?(Array) ? associations.to_h { |a| [a, {}] } : associations
  @additional_properties = additional_properties
  @definitions = {}
end

Class Method Details

.generate(model_class, only: nil, associations: {}, additional_properties: false) ⇒ Object



7
8
9
# File 'lib/active_json_schema/converts_to_json_schema_with_refs.rb', line 7

def self.generate(model_class, only: nil, associations: {}, additional_properties: false)
  new(model_class, only: only, associations: associations, additional_properties: additional_properties).generate
end

Instance Method Details

#generateObject



19
20
21
22
23
24
25
26
27
28
# File 'lib/active_json_schema/converts_to_json_schema_with_refs.rb', line 19

def generate
  schema = {
    type: "object",
    properties: properties_for(@model_class, @only, @associations),
    required: required_properties(@model_class, @only),
    additionalProperties: @additional_properties
  }
  schema[:definitions] = @definitions unless @definitions.empty?
  schema
end