class OasDivider::Cli
Attributes
file_name[RW]
open_api_object[RW]
Public Class Methods
new(file_name)
click to toggle source
# File lib/oas_divider.rb, line 13 def initialize(file_name) @file_name = file_name end
Public Instance Methods
divide()
click to toggle source
# File lib/oas_divider.rb, line 17 def divide load_file_as_open_api_object save_divided_files save_open_api_object_as_root_file end
Private Instance Methods
load_file_as_open_api_object()
click to toggle source
# File lib/oas_divider.rb, line 59 def load_file_as_open_api_object self.open_api_object = YAML.load_file(file_name) end
save_divided_files()
click to toggle source
# File lib/oas_divider.rb, line 25 def save_divided_files open_api_object.keys.each do |open_api_object_field| if open_api_object_field === "paths" FileUtils.mkdir_p('paths') paths_objects = open_api_object[open_api_object_field] paths_objects.keys.each do |path| path_object = PathsObject.new(path, paths_objects[path]) # 一つのpathオブジェクト。postなどがキー path_object.to_file open_api_object[open_api_object_field][path] = { "$ref" => path_object.ref } end end if open_api_object_field === "components" FileUtils.mkdir_p('components') components_objects = open_api_object[open_api_object_field] components_objects.keys.each do |components_object_field| if components_object_field === 'schemas' FileUtils.mkdir_p('components/schemas') schmas = components_objects[components_object_field] schmas.keys.each do |schema_name| schema_object = SchemaObject.new(schema_name, schmas[schema_name]) schema_object.to_file open_api_object[open_api_object_field][components_object_field][schema_name] = { "$ref" => schema_object.ref } end else field_object = ComponentsObjectFieldObject.new(components_object_field, components_objects[components_object_field]) field_object.to_file open_api_object[open_api_object_field][components_object_field] = { "$ref" => field_object.ref } end end end end end
save_open_api_object_as_root_file()
click to toggle source
# File lib/oas_divider.rb, line 63 def save_open_api_object_as_root_file YAML.dump(open_api_object, File.open('swagger_root.yml', 'w')) end