From c8c59fe93a14644dbdd2bc15910ea6a16edddc98 Mon Sep 17 00:00:00 2001 From: Tony Tam Date: Wed, 19 Feb 2014 14:30:49 -0800 Subject: [PATCH] manual merge of https://github.com/wordnik/swagger-codegen/pull/135 --- .../resources/ruby/swagger/configuration.mustache | 7 ++++--- src/main/resources/ruby/swagger/request.mustache | 15 +++++++++++++-- .../swagger/codegen/BasicRubyGenerator.scala | 12 ++++++------ 3 files changed, 23 insertions(+), 11 deletions(-) diff --git a/src/main/resources/ruby/swagger/configuration.mustache b/src/main/resources/ruby/swagger/configuration.mustache index b86775d8135..c0b3c46268c 100644 --- a/src/main/resources/ruby/swagger/configuration.mustache +++ b/src/main/resources/ruby/swagger/configuration.mustache @@ -3,8 +3,7 @@ module Swagger class Configuration require 'swagger/version' - attr_accessor :format, :api_key, :username, :password, :auth_token, :scheme, :host, :base_path, - :user_agent, :logger, :inject_format + attr_accessor :format, :api_key, :username, :password, :auth_token, :scheme, :host, :base_path, :user_agent, :logger, :inject_format, :force_ending_format, :camelize_params # Defaults go in here.. def initialize @@ -14,8 +13,10 @@ module Swagger @base_path = '/v4' @user_agent = "ruby-#{Swagger::VERSION}" @inject_format = true + @force_ending_format = false + @camelize_params = true end end -end +end \ No newline at end of file diff --git a/src/main/resources/ruby/swagger/request.mustache b/src/main/resources/ruby/swagger/request.mustache index 685ee8b455f..7836cb0bf03 100644 --- a/src/main/resources/ruby/swagger/request.mustache +++ b/src/main/resources/ruby/swagger/request.mustache @@ -87,6 +87,15 @@ module Swagger end end + # Stick a .{format} placeholder on the end of the path if there isn't + # one already or an actual format like json or xml + # e.g. /words/blah => /words/blah.{format} + if Swagger.configuration.force_ending_format + unless ['.json', '.xml', '{format}'].any? {|s| p.downcase.include? s } + p = "#{p}.#{format}" + end + end + p = p.sub("{format}", self.format.to_s) URI.encode [Swagger.configuration.base_path, p].join("/").gsub(/\/+/, '/') @@ -121,7 +130,9 @@ module Swagger self.params.each_pair do |key, value| next if self.path.include? "{#{key}}" # skip path params next if value.blank? && value.class != FalseClass # skip empties - key = key.to_s.camelize(:lower).to_sym unless key.to_sym == :api_key # api_key is not a camelCased param + if Swagger.configuration.camelize_params + key = key.to_s.camelize(:lower).to_sym unless key.to_sym == :api_key # api_key is not a camelCased param + end query_values[key] = value.to_s end @@ -185,4 +196,4 @@ module Swagger end end -end +end \ No newline at end of file diff --git a/src/main/scala/com/wordnik/swagger/codegen/BasicRubyGenerator.scala b/src/main/scala/com/wordnik/swagger/codegen/BasicRubyGenerator.scala index ed949efc7fa..0c7441f3216 100644 --- a/src/main/scala/com/wordnik/swagger/codegen/BasicRubyGenerator.scala +++ b/src/main/scala/com/wordnik/swagger/codegen/BasicRubyGenerator.scala @@ -26,10 +26,6 @@ object BasicRubyGenerator extends BasicRubyGenerator { class BasicRubyGenerator extends BasicGenerator { - override def toApiName(name: String) = { - name(0).toUpper + name.substring(1) + "_api" - } - override def apiPackage = Some("lib") // location of templates @@ -58,9 +54,13 @@ class BasicRubyGenerator extends BasicGenerator { } } - override def toModelFilename(name: String) = name.toLowerCase - override def toApiFilename(name: String) = name.toLowerCase + "_api" + override def toApiName(name: String) = { + var fixedName = name.replaceAll("(\\{|\\})","") + fixedName(0).toUpper + fixedName.substring(1) + "_api" + } + override def toModelFilename(name: String) = name.toLowerCase.replaceAll("(\\{|\\})","") + override def toApiFilename(name: String) = name.toLowerCase.replaceAll("(\\{|\\})","") + "_api" override def toVarName(name: String): String = toUnderscore(name) override def toMethodName(name: String): String = toUnderscore(name)