Class: SwaggerDocsGenerator::Generator
- Inherits:
-
Object
- Object
- SwaggerDocsGenerator::Generator
- Defined in:
- lib/swagger_docs_generator/generator.rb
Overview
# Generate JSON file
Create a json file for swagger-ui service
Instance Attribute Summary collapse
-
#swagger_file ⇒ String
readonly
The swagger file name with path.
Instance Method Summary collapse
-
#delete_emporary_files ⇒ Object
Delete files temporary.
-
#generate_swagger_file ⇒ Object
Open or create a swagger.json file.
-
#initialize ⇒ Generator
constructor
A new instance of Generator.
Constructor Details
#initialize ⇒ Generator
Returns a new instance of Generator.
15 16 17 18 19 |
# File 'lib/swagger_docs_generator/generator.rb', line 15 def initialize @file = 'swagger.json' @path = File.join(Dir.pwd, '/public') @swagger_file = File.join(@path, @file) end |
Instance Attribute Details
#swagger_file ⇒ String (readonly)
Returns the swagger file name with path.
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/swagger_docs_generator/generator.rb', line 12 class Generator attr_reader :swagger_file def initialize @file = 'swagger.json' @path = File.join(Dir.pwd, '/public') @swagger_file = File.join(@path, @file) end # Open or create a swagger.json file def generate_swagger_file delete_file_before create_version_folder File.open(@swagger_file, 'a+') { |file| file.puts } end # Delete files temporary def delete_emporary_files version = File.join(@path, SwaggerDocsGenerator.configure_info.version) Dir.delete(File.join(@path, version)) end private attr_reader :meta def delete_file_before File.delete(@swagger_file) if File.exist?(@swagger_file) end def create_version_folder version = File.join(@path, SwaggerDocsGenerator.configure_info.version) 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 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 |
Instance Method Details
#delete_emporary_files ⇒ Object
Delete files temporary
29 30 31 32 |
# File 'lib/swagger_docs_generator/generator.rb', line 29 def delete_emporary_files version = File.join(@path, SwaggerDocsGenerator.configure_info.version) Dir.delete(File.join(@path, version)) end |
#generate_swagger_file ⇒ Object
Open or create a swagger.json file
22 23 24 25 26 |
# File 'lib/swagger_docs_generator/generator.rb', line 22 def generate_swagger_file delete_file_before create_version_folder File.open(@swagger_file, 'a+') { |file| file.puts } end |