Sha256: 67d0c7af1a5c34981d8e2b9c278c31dce249701297ce783ebd170ca0c482378a
Contents?: true
Size: 1.57 KB
Versions: 1
Compression:
Stored size: 1.57 KB
Contents
# frozen_string_literal: true module SwaggerDocsGenerator # # Generate JSON file # # Create a json file for swagger-ui service # # @!attribute [r] swagger_file # @return [String] the swagger file name with path class Generator attr_reader :swagger_file def initialize @file = 'swagger.json' @path = File.join(Dir.pwd, '/public') @swagger_file = File.join(@path, @file) @version = File.join(@path, SwaggerDocsGenerator.configure_info.version) create_version_folder end # Open or create a swagger.json file def generate_swagger_file delete_file_before File.open(@swagger_file, 'a+') { |file| file.puts agregate_metadata } end # Delete files temporary def delete_temporary_files FileUtils.rm_rf(@version) end private attr_reader :meta def delete_file_before File.delete(@swagger_file) if File.exist?(@swagger_file) end def create_version_folder FileUtils.mkdir_p(@version) unless File.directory?(@version) end # :reek:UtilityFunction def write_in_swagger_file hash = {} hash.merge!(MetadataConfiguration.new.construct_swagger_file) hash.merge!(MetadataInfo.new.construct_swagger_file) hash.merge!(MetadataPath.new.construct_swagger_file) hash.merge!(MetadataTag.new.construct_swagger_file) end def agregate_metadata case defined?(Rails) && Rails.env when 'production' || 'test' write_in_swagger_file.to_json else JSON.pretty_generate write_in_swagger_file end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
swagger_docs_generator-0.1.1 | lib/swagger_docs_generator/generator.rb |