Module: Minitest::OpenAPI::Schema
- Defined in:
- lib/minitest/openapi/schema.rb
Constant Summary collapse
- ALLOWED_EXTENSIONS =
%w[.json .yaml .yml].freeze
Class Method Summary collapse
- .build ⇒ Object
-
.json_schema(file) ⇒ Object
IDK.
- .parse_files ⇒ Object
- .valid_file_ext?(file) ⇒ Boolean
Class Method Details
.build ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/minitest/openapi/schema.rb', line 10 def self.build file_paths = self.parse_files Dir.mkdir("docs") unless File.exist?("docs") file_paths.each do |file| raise InvalidFileFormat unless valid_file_ext?(file) File.open(file, "w") do |f| f.write(JSON.pretty_generate(json_schema(file), indent: " ")) puts "File generated!" end end end |
.json_schema(file) ⇒ Object
IDK
25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/minitest/openapi/schema.rb', line 25 def self.json_schema(file) JSON.parse({ openapi: "3.1.0", info: { title: Minitest::OpenAPI.title, version: Minitest::OpenAPI.version }, servers: Minitest::OpenAPI.servers, paths: Minitest::OpenAPI.paths[file], webhooks: Minitest::OpenAPI.webhooks[file] }.to_json) end |
.parse_files ⇒ Object
38 39 40 41 42 43 44 45 |
# File 'lib/minitest/openapi/schema.rb', line 38 def self.parse_files file_paths = [] file_paths.concat( Minitest::OpenAPI.paths.keys, Minitest::OpenAPI.webhooks.keys ) file_paths.uniq end |
.valid_file_ext?(file) ⇒ Boolean
47 48 49 |
# File 'lib/minitest/openapi/schema.rb', line 47 def self.valid_file_ext?(file) ALLOWED_EXTENSIONS.include?(File.extname(file)) end |