class SwaggerApi::Components
Attributes
controllers[RW]
Public Instance Methods
create()
click to toggle source
# File lib/swagger_api/components.rb, line 10 def create return @components unless @components.nil? @components = {} controllers.each do |controller| if controller.custom_model_file.nil? @components.merge!(create_model_components_from_controller(controller)) else @components.merge!(custom_json(controller.custom_model_file)) end end @components end
create_model_components_from_controller(controller)
click to toggle source
# File lib/swagger_api/components.rb, line 28 def create_model_components_from_controller(controller) if sti?(controller.model) sti_models(controller.model.constantize) else { controller.model => ComponentSchema.new(controller: controller).create } end end
custom_json(custom_model_file)
click to toggle source
# File lib/swagger_api/components.rb, line 23 def custom_json(custom_model_file) file = File.read(custom_model_file) JSON.parse(file) end
sti_models(model_klass)
click to toggle source
# File lib/swagger_api/components.rb, line 38 def sti_models(model_klass) model_klass.descendants.map do |klass| [klass.name, ComponentSchema.new(controller: OpenStruct.new(model: klass.name)).create] end.to_h end