class Jast::SchemaRenderer
Public Class Methods
new(name, path)
click to toggle source
# File lib/jast/schema_renderer.rb, line 5 def initialize name, path @name = name @path = path end
Public Instance Methods
build_json(file, properties = {})
click to toggle source
# File lib/jast/schema_renderer.rb, line 10 def build_json file, properties = {}, required = [] filename = "#{file}.json.erb" template_path = "#{File.expand_path(File.dirname(__FILE__))}/templates/#{filename}" ERB.new(File.read(template_path), nil, ">").result(binding) end
render_definition(properties, required)
click to toggle source
# File lib/jast/schema_renderer.rb, line 16 def render_definition properties, required render_file :definition, {path: "#{@path}definitions/", properties: properties, required: required, filename: @name} end
render_file(file, fileopts = {})
click to toggle source
# File lib/jast/schema_renderer.rb, line 20 def render_file file, fileopts = {} content = build_json(file, fileopts[:properties], fileopts[:required]) path = fileopts[:path].nil? ? @path : fileopts[:path] FileUtils.mkdir_p(path) filename = fileopts[:filename].nil? ? "#{@name}_#{file}.json" : fileopts[:filename] IO.write("#{path}#{filename}", content) end
render_list_response()
click to toggle source
# File lib/jast/schema_renderer.rb, line 28 def render_list_response render_file :list_response end
render_resource(properties, required)
click to toggle source
# File lib/jast/schema_renderer.rb, line 32 def render_resource properties, required render_definition(properties, required) render_list_response render_response end
render_response()
click to toggle source
# File lib/jast/schema_renderer.rb, line 38 def render_response render_file :response end