From 38eb49ccd618c50c64ca8b227a4d083e8b34bc92 Mon Sep 17 00:00:00 2001 From: Tom Clegg Date: Thu, 14 Nov 2013 08:49:02 -0800 Subject: [PATCH] update discovery document generator for rails 3.2 --- .../api/app/controllers/arvados/v1/schema_controller.rb | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/services/api/app/controllers/arvados/v1/schema_controller.rb b/services/api/app/controllers/arvados/v1/schema_controller.rb index 897afd8da0..80b2cb6694 100644 --- a/services/api/app/controllers/arvados/v1/schema_controller.rb +++ b/services/api/app/controllers/arvados/v1/schema_controller.rb @@ -316,13 +316,16 @@ class Arvados::V1::SchemaController < ApplicationController d_methods = discovery[:resources][k.to_s.underscore.pluralize][:methods] Rails.application.routes.routes.each do |route| action = route.defaults[:action] - httpMethod = (route.verb && route.verb.length > 0) ? route.verb : 'GET' - if route.defaults[:controller] == 'arvados/v1/' + k.to_s.underscore.pluralize and + httpMethod = ['GET', 'POST', 'PUT', 'DELETE'].map { |method| + method if route.verb.match(method) + }.compact.first + if httpMethod and + route.defaults[:controller] == 'arvados/v1/' + k.to_s.underscore.pluralize and !d_methods[action.to_sym] and ctl_class.action_methods.include? action method = { id: "arvados.#{k.to_s.underscore.pluralize}.#{action}", - path: route.path.sub('/arvados/v1/','').sub('(.:format)','').sub(/:(uu)?id/,'{uuid}'), + path: route.path.spec.to_s.sub('/arvados/v1/','').sub('(.:format)','').sub(/:(uu)?id/,'{uuid}'), httpMethod: httpMethod, description: "#{route.defaults[:action]} #{k.to_s.underscore.pluralize}", parameters: {}, -- 2.30.2