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