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
Create string with controller parsed.
-
#info_swagger_file ⇒ Object
Create string with info to swagger file path.
-
#info_swagger_temporary ⇒ Object
Create string with info to path temporary file.
-
#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 77 78 79 80 81 82 |
# 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.write(if SwaggerDocsGenerator.configure.compress write_in_swagger_file.to_json else JSON.pretty_generate write_in_swagger_file end) end end # Delete files temporary def delete_temporary_files FileUtils.rm_rf(@temp[0]) if SwaggerDocsGenerator.configure.cleanning end # Create string with info to swagger file path def info_swagger_file "#{prefix_info} #{@swagger_file}" end # Create string with info to path temporary file def info_swagger_temporary "#{prefix_info} #{SwaggerDocsGenerator.temporary_folder}" end # Create string with controller parsed 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
38 39 40 |
# File 'lib/swagger_docs_generator/generator.rb', line 38 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 33 34 35 |
# File 'lib/swagger_docs_generator/generator.rb', line 26 def generate_swagger_file delete_file_before File.open(@swagger_file, 'a+') do |file| file.write(if SwaggerDocsGenerator.configure.compress write_in_swagger_file.to_json else JSON.pretty_generate write_in_swagger_file end) 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
Create string with controller parsed
53 54 55 56 57 58 |
# File 'lib/swagger_docs_generator/generator.rb', line 53 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
Create string with info to swagger file path
43 44 45 |
# File 'lib/swagger_docs_generator/generator.rb', line 43 def info_swagger_file "#{prefix_info} #{@swagger_file}" end |
#info_swagger_temporary ⇒ Object
Create string with info to path temporary file
48 49 50 |
# File 'lib/swagger_docs_generator/generator.rb', line 48 def info_swagger_temporary "#{prefix_info} #{SwaggerDocsGenerator.temporary_folder}" end |