class AcosOpenApiHelper::PageEngine
Public Class Methods
new(data, basePath, output_path, swaggerfile)
click to toggle source
# File lib/acos_jekyll_openapi.rb, line 46 def initialize(data, basePath, output_path, swaggerfile) @data = data @output_path = output_path @swaggerfile = swaggerfile @basePath = basePath end
Public Instance Methods
generate()
click to toggle source
# File lib/acos_jekyll_openapi.rb, line 53 def generate puts "Generating pages..." cnt = 0 puts "Open API version %s in .json file" % (@data.key?("openapi") ? @data['openapi'] : @data['swagger']) docTitle = (@data["info"]["title"]) _components = @data.key?("components") ? "components" :"definitions" docFile = docTitle.gsub(/\+|\s+|{|}|\//, "_").downcase puts "Document title : %s" % docTitle sidebar = "%s_sidebar" % docFile menu = AcosOpenApiHelper::SidebarMenu.new() if File.exists?("%s/%s_index.md" % [@output_path, docFile] ) _indexMenu = AcosOpenApiHelper::MenuItem.new("Overview %s " % docTitle, "%s_index" % docFile) menu.add(_indexMenu) cnt = cnt + 1 else puts "No index file found for %s" % docFile end @data['paths'].each do |path| _path = path[0] #path of swagger method _methods = @data['paths'][_path] #(path, basePath, output_path, swaggerfile, sidebar, docFile, component) writer = AcosOpenApiHelper::PageCreator.new(_path, @basePath, @output_path, @swaggerfile, sidebar, docFile, _components) writer.write _permalink = AcosOpenApiHelper::PermalinkGenerator.create(_path, @swaggerfile) _menuItem = AcosOpenApiHelper::MenuItem.new(_path, _permalink) menu.add(_menuItem) cnt = cnt + 1 end # Adding component page for models #createComponents(basePath, title, sidebar, swaggerfile, docFile) AcosOpenApiHelper::PageCreator.createComponents(@basePath, docTitle, sidebar, @swaggerfile, docFile, _components) _componentMenu = AcosOpenApiHelper::MenuItem.new("%s Models" % docTitle, "%s_components" % docFile) menu.add(_componentMenu) cnt = cnt + 1 puts "Done generating %s pages..." % cnt puts "Writing menu" menu.write("%s/_data/sidebars" % @basePath, sidebar, docTitle) end