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