From e0dfc1b43d5c2cb84e6fb39a161fbe6f30e2eede Mon Sep 17 00:00:00 2001 From: xhh Date: Fri, 16 Oct 2015 12:02:30 +0800 Subject: [PATCH] Ruby client: remove trailing slashes from base_url Closes #1399 --- .../resources/ruby/configuration.mustache | 2 +- .../ruby/lib/petstore/configuration.rb | 2 +- .../petstore/ruby/spec/configuration_spec.rb | 25 +++++++++++++++++++ 3 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 samples/client/petstore/ruby/spec/configuration_spec.rb diff --git a/modules/swagger-codegen/src/main/resources/ruby/configuration.mustache b/modules/swagger-codegen/src/main/resources/ruby/configuration.mustache index e74cc17573c..0385aaffd83 100644 --- a/modules/swagger-codegen/src/main/resources/ruby/configuration.mustache +++ b/modules/swagger-codegen/src/main/resources/ruby/configuration.mustache @@ -138,7 +138,7 @@ module {{moduleName}} end def base_url - url = "#{scheme}://#{[host, base_path].join('/').gsub(/\/+/, '/')}" + url = "#{scheme}://#{[host, base_path].join('/').gsub(/\/+/, '/')}".sub(/\/+\z/, '') URI.encode(url) end diff --git a/samples/client/petstore/ruby/lib/petstore/configuration.rb b/samples/client/petstore/ruby/lib/petstore/configuration.rb index 008be48ee4d..04479b53db0 100644 --- a/samples/client/petstore/ruby/lib/petstore/configuration.rb +++ b/samples/client/petstore/ruby/lib/petstore/configuration.rb @@ -138,7 +138,7 @@ module Petstore end def base_url - url = "#{scheme}://#{[host, base_path].join('/').gsub(/\/+/, '/')}" + url = "#{scheme}://#{[host, base_path].join('/').gsub(/\/+/, '/')}".sub(/\/+\z/, '') URI.encode(url) end diff --git a/samples/client/petstore/ruby/spec/configuration_spec.rb b/samples/client/petstore/ruby/spec/configuration_spec.rb new file mode 100644 index 00000000000..9f86f5602b7 --- /dev/null +++ b/samples/client/petstore/ruby/spec/configuration_spec.rb @@ -0,0 +1,25 @@ +require 'spec_helper' + +describe Petstore::Configuration do + let(:config) { Petstore::Configuration.instance } + + before(:each) do + Petstore.configure do |c| + c.host = 'petstore.swagger.io' + c.base_path = 'v2' + end + end + + describe '#base_url' do + it 'should have the default value' do + config.base_url.should == 'http://petstore.swagger.io/v2' + end + + it 'should remove trailing slashes' do + [nil, '', '/', '//'].each do |base_path| + config.base_path = base_path + config.base_url.should == 'http://petstore.swagger.io' + end + end + end +end