class Dato::JsonSchemaType

Attributes

schema[R]

Public Class Methods

new(schema) click to toggle source
# File lib/dato/json_schema_type.rb, line 7
def initialize(schema)
  @schema = schema
end

Public Instance Methods

call() click to toggle source
# File lib/dato/json_schema_type.rb, line 11
def call
  type_property = find_info_for_type_property

  return nil unless type_property

  type_property.pattern.to_s.gsub(/(^(\(\?-mix:\^)|(\$\))$)/, "")
end

Private Instance Methods

find_entity_in_data() click to toggle source
# File lib/dato/json_schema_type.rb, line 29
def find_entity_in_data
  return nil if !schema || !schema.properties["data"]

  if schema.properties["data"].type.first == "array"
    return schema.properties["data"].items if schema.properties["data"].items

    return nil
  end

  return schema.properties["data"] if schema.properties["data"].type.first == "object"

  if schema.properties["data"].any_of
    return schema.properties["data"].any_of.reject { |x| x.definitions.type.example == "job" }
  end

  nil
end
find_info_for_type_property() click to toggle source
# File lib/dato/json_schema_type.rb, line 21
def find_info_for_type_property
  entity = find_entity_in_data

  return nil unless entity

  entity.properties["type"]
end