class Swagger::Api::Paths
Attributes
controllers[RW]
Public Instance Methods
create()
click to toggle source
# File lib/swagger/api/paths.rb, line 7 def create return @paths unless @paths.nil? @paths = {} controllers.each do |controller| if controller.custom_path_file.nil? @paths.merge!(paths(controller)) else @paths.merge!(custom_json(controller)) end end @paths end
Private Instance Methods
action?(controller, action_name)
click to toggle source
# File lib/swagger/api/paths.rb, line 49 def action?(controller, action_name) actions(controller).include?(action_name) end
actions(controller)
click to toggle source
# File lib/swagger/api/paths.rb, line 45 def actions(controller) Swagger::Api::Actions.new(controller: controller).all! end
custom_json(controller)
click to toggle source
# File lib/swagger/api/paths.rb, line 40 def custom_json(controller) file = File.read(controller.custom_path_file) JSON.parse(file) end
paths(controller)
click to toggle source
# File lib/swagger/api/paths.rb, line 22 def paths(controller) paths = {} paths["#{route(controller)}"] = {} paths["#{route(controller)}{id}/"] = {} paths["#{route(controller)}"][:get] = Swagger::Api::Operations::Index.new(controller: controller).create if action?(controller, 'index') paths["#{route(controller)}"][:post] = Swagger::Api::Operations::Create.new(controller: controller).create if action?(controller, 'create') paths["#{route(controller)}{id}/"][:get] = Swagger::Api::Operations::Show.new(controller: controller).create if action?(controller, 'show') paths["#{route(controller)}{id}/"][:put] = Swagger::Api::Operations::Update.new(controller: controller).create if action?(controller, 'update') paths["#{route(controller)}{id}/"][:delete] = Swagger::Api::Operations::Delete.new(controller: controller).create if action?(controller, 'delete') paths["#{route(controller)}"].delete if paths["#{route(controller)}"].blank? paths["#{route(controller)}{id}/"].delete if paths["#{route(controller)}{id}/"].blank? paths end
route(controller)
click to toggle source
# File lib/swagger/api/paths.rb, line 36 def route(controller) "/#{controller.name.demodulize.underscore.gsub('_controller', '')}/" end