From 030e45982cd61cba0cdabd619b8cd30c109fd019 Mon Sep 17 00:00:00 2001 From: xhh Date: Thu, 20 Aug 2015 10:45:40 +0800 Subject: [PATCH 1/3] Add back support of file uploading to Ruby client --- .../src/main/resources/ruby/swagger/request.mustache | 3 ++- samples/client/petstore/ruby/lib/petstore/swagger/request.rb | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/swagger-codegen/src/main/resources/ruby/swagger/request.mustache b/modules/swagger-codegen/src/main/resources/ruby/swagger/request.mustache index dd39449e1f3..98e0a62fcd5 100644 --- a/modules/swagger-codegen/src/main/resources/ruby/swagger/request.mustache +++ b/modules/swagger-codegen/src/main/resources/ruby/swagger/request.mustache @@ -95,7 +95,8 @@ module {{moduleName}} # For form parameters, remove empty value def outgoing_body # http form - if headers['Content-Type'] == 'application/x-www-form-urlencoded' + if headers['Content-Type'] == 'application/x-www-form-urlencoded' || + headers['Content-Type'] == 'multipart/form-data' data = form_params.dup data.each do |key, value| data[key] = value.to_s if value && !value.is_a?(File) # remove emtpy form parameter diff --git a/samples/client/petstore/ruby/lib/petstore/swagger/request.rb b/samples/client/petstore/ruby/lib/petstore/swagger/request.rb index ecb8cff5643..8bb05af7078 100644 --- a/samples/client/petstore/ruby/lib/petstore/swagger/request.rb +++ b/samples/client/petstore/ruby/lib/petstore/swagger/request.rb @@ -94,7 +94,8 @@ module Petstore # For form parameters, remove empty value def outgoing_body # http form - if headers['Content-Type'] == 'application/x-www-form-urlencoded' + if headers['Content-Type'] == 'application/x-www-form-urlencoded' || + headers['Content-Type'] == 'multipart/form-data' data = form_params.dup data.each do |key, value| data[key] = value.to_s if value && !value.is_a?(File) # remove emtpy form parameter From 0d399d3f6a37340065d245cfc1e12a44a003112b Mon Sep 17 00:00:00 2001 From: xhh Date: Thu, 20 Aug 2015 11:07:20 +0800 Subject: [PATCH 2/3] Add spec for file uploading --- samples/client/petstore/ruby/spec/pet_spec.rb | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/samples/client/petstore/ruby/spec/pet_spec.rb b/samples/client/petstore/ruby/spec/pet_spec.rb index 8c33c3a9cde..6aa148f91a2 100644 --- a/samples/client/petstore/ruby/spec/pet_spec.rb +++ b/samples/client/petstore/ruby/spec/pet_spec.rb @@ -105,5 +105,16 @@ describe "Pet" do pet.id.should == 10002 pet.name.should == "RUBY UNIT TESTING" end + + it "should upload a file to a pet" do + pet = Petstore::Pet.new('id' => 10002, 'name' => "RUBY UNIT TESTING") + result = Petstore::PetApi.add_pet(:body => pet) + # nothing is returned + result.should be_nil + + result = Petstore::PetApi.upload_file(10002, file: File.new('hello.txt')) + # nothing is returned + result.should be_nil + end end end From 2e3f94c2a5c4f07e11e0b7f0d502b999ce2b2a53 Mon Sep 17 00:00:00 2001 From: xhh Date: Thu, 20 Aug 2015 11:18:05 +0800 Subject: [PATCH 3/3] Add file used in test: hello.txt --- samples/client/petstore/ruby/hello.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 samples/client/petstore/ruby/hello.txt diff --git a/samples/client/petstore/ruby/hello.txt b/samples/client/petstore/ruby/hello.txt new file mode 100644 index 00000000000..6769dd60bdf --- /dev/null +++ b/samples/client/petstore/ruby/hello.txt @@ -0,0 +1 @@ +Hello world! \ No newline at end of file