class Schai::JsObject
Attributes
all[RW]
description[RW]
example[RW]
optional[RW]
Public Class Methods
new(params)
click to toggle source
# File lib/schai/json_schema/js_object.rb, line 9 def initialize params @all = Hash[params["properties"].map {|k, v| [k || 'null', JsRoot.parse_components(v)] }.select{|p| !p[1].nil? }] @description = params["description"] @example = params["example"] @optional = params["optional"] end
parse(params)
click to toggle source
# File lib/schai/json_schema/js_object.rb, line 5 def self.parse params self.new params end
Public Instance Methods
to_schema()
click to toggle source
# File lib/schai/json_schema/js_object.rb, line 18 def to_schema schema = {} schema[:type] = :object schema[:description] = @description if @description schema[:properties] = Hash[@all.map {|k, p| [k, p.to_schema]}] schema[:required] = @all.select{|k, p| !p.optional}.map{|k, p| k || 'null'} schema[:example] = @example if @example schema end