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_temporary_files ⇒ Object
Delete files temporary.
-
#generate_swagger_file ⇒ Object
Open or create a swagger.json file.
-
#import_documentations ⇒ Object
Import documentation file.
- #info_controller_parser ⇒ Object
- #info_swagger_file ⇒ Object
- #info_swagger_temporary ⇒ Object
-
#initialize ⇒ Generator
constructor
A new instance of Generator.
Constructor Details
#initialize ⇒ Generator
Returns a new instance of Generator.
13 14 15 16 17 |
# File 'lib/swagger_docs_generator/generator.rb', line 13 def initialize @file = 'swagger.json' @swagger_file = File.join(Dir.pwd, 'public', @file) @temp = FileUtils.mkdir_p(SwaggerDocsGenerator.temporary_folder) end |
Instance Attribute Details
#swagger_file ⇒ String (readonly)
Returns the swagger file name with path.
10 11 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 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/swagger_docs_generator/generator.rb', line 10 class Generator attr_reader :swagger_file def initialize @file = 'swagger.json' @swagger_file = File.join(Dir.pwd, 'public', @file) @temp = FileUtils.mkdir_p(SwaggerDocsGenerator.temporary_folder) end # Import documentation file def import_documentations require SwaggerDocsGenerator.file_base SwaggerDocsGenerator.file_docs.each { |rb| require rb } end # Open or create a swagger.json file def generate_swagger_file delete_file_before File.open(@swagger_file, 'a+') do |file| # file.puts write_in_swagger_file.to_json file.puts JSON.pretty_generate write_in_swagger_file end end # Delete files temporary def delete_temporary_files FileUtils.rm_rf(@temp[0]) if SwaggerDocsGenerator.configure.cleanning end def info_swagger_file "#{prefix_info} #{@swagger_file}" end def info_swagger_temporary "#{prefix_info} #{SwaggerDocsGenerator.temporary_folder}" end def info_controller_parser klasses = "#{SwaggerDocsGenerator.version_ruby}::BaseDoc".constantize klasses.subclasses.each do |controller| yield("#{prefix_info} [Controller] #{controller::CONTROLLER}") end end private attr_reader :meta def prefix_info '->' end def delete_file_before File.delete(@swagger_file) if File.exist?(@swagger_file) end # :reek:UtilityFunction def write_in_swagger_file # Parse option to this gem hash = MetadataConfiguration.new.construct_swagger_file hash.merge!(MetadataInfo.new.construct_swagger_file) # Parse temporary file (controller - actions) hash.merge!(MetadataJsons.new.construct_swagger_file) # Parse Model hash.merge!(MetadataDefinition.new.construct_swagger_file) end end |
Instance Method Details
#delete_temporary_files ⇒ Object
Delete files temporary
35 36 37 |
# File 'lib/swagger_docs_generator/generator.rb', line 35 def delete_temporary_files FileUtils.rm_rf(@temp[0]) if SwaggerDocsGenerator.configure.cleanning end |
#generate_swagger_file ⇒ Object
Open or create a swagger.json file
26 27 28 29 30 31 32 |
# File 'lib/swagger_docs_generator/generator.rb', line 26 def generate_swagger_file delete_file_before File.open(@swagger_file, 'a+') do |file| # file.puts write_in_swagger_file.to_json file.puts JSON.pretty_generate write_in_swagger_file end end |
#import_documentations ⇒ Object
Import documentation file
20 21 22 23 |
# File 'lib/swagger_docs_generator/generator.rb', line 20 def import_documentations require SwaggerDocsGenerator.file_base SwaggerDocsGenerator.file_docs.each { |rb| require rb } end |
#info_controller_parser ⇒ Object
47 48 49 50 51 52 |
# File 'lib/swagger_docs_generator/generator.rb', line 47 def info_controller_parser klasses = "#{SwaggerDocsGenerator.version_ruby}::BaseDoc".constantize klasses.subclasses.each do |controller| yield("#{prefix_info} [Controller] #{controller::CONTROLLER}") end end |
#info_swagger_file ⇒ Object
39 40 41 |
# File 'lib/swagger_docs_generator/generator.rb', line 39 def info_swagger_file "#{prefix_info} #{@swagger_file}" end |
#info_swagger_temporary ⇒ Object
43 44 45 |
# File 'lib/swagger_docs_generator/generator.rb', line 43 def info_swagger_temporary "#{prefix_info} #{SwaggerDocsGenerator.temporary_folder}" end |