Class: Jast::SchemaRenderer
- Inherits:
-
Object
- Object
- Jast::SchemaRenderer
- Defined in:
- lib/jast/schema_renderer.rb
Instance Method Summary collapse
- #build_json(file, properties = {}, required = []) ⇒ Object
-
#initialize(name, path) ⇒ SchemaRenderer
constructor
A new instance of SchemaRenderer.
- #render_definition(properties, required) ⇒ Object
- #render_file(file, fileopts = {}) ⇒ Object
- #render_list_response ⇒ Object
- #render_resource(properties, required) ⇒ Object
- #render_response ⇒ Object
Constructor Details
#initialize(name, path) ⇒ SchemaRenderer
Returns a new instance of SchemaRenderer.
5 6 7 8 |
# File 'lib/jast/schema_renderer.rb', line 5 def initialize name, path @name = name @path = path end |
Instance Method Details
#build_json(file, properties = {}, required = []) ⇒ Object
10 11 12 13 14 |
# File 'lib/jast/schema_renderer.rb', line 10 def build_json file, properties = {}, required = [] filename = "#{file}.json.erb" template_path = "#{File.(File.dirname(__FILE__))}/templates/#{filename}" ERB.new(File.read(template_path), nil, ">").result(binding) end |
#render_definition(properties, required) ⇒ Object
16 17 18 |
# 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 = {}) ⇒ Object
20 21 22 23 24 25 26 |
# 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 ⇒ Object
28 29 30 |
# File 'lib/jast/schema_renderer.rb', line 28 def render_list_response render_file :list_response end |
#render_resource(properties, required) ⇒ Object
32 33 34 35 36 |
# 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 ⇒ Object
38 39 40 |
# File 'lib/jast/schema_renderer.rb', line 38 def render_response render_file :response end |