Skip to content

Commit 34ebc1c

Browse files
[ruby] Use Marcel to detect content-type in form-data file upload using faraday (#18243)
1 parent de680de commit 34ebc1c

File tree

8 files changed

+10
-15
lines changed

8 files changed

+10
-15
lines changed

CI/circle_parallel.sh

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ if [ "$NODE_INDEX" = "1" ]; then
1313
echo "Running node $NODE_INDEX ..."
1414
java -version
1515

16-
sudo apt-get -y install cpanminus libmagic-dev
16+
sudo apt-get -y install cpanminus
1717

1818
(cd samples/client/petstore/perl && /bin/bash ./test.bash)
1919
(cd samples/client/petstore/ruby && mvn integration-test)
@@ -112,5 +112,3 @@ else
112112
(cd samples/client/petstore/java/apache-httpclient && mvn integration-test)
113113

114114
fi
115-
116-

modules/openapi-generator/src/main/resources/ruby-client/api_client.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ require 'typhoeus'
1313
{{#isFaraday}}
1414
require 'faraday'
1515
require 'faraday/multipart' if Gem::Version.new(Faraday::VERSION) >= Gem::Version.new('2.0')
16-
require 'filemagic'
16+
require 'marcel'
1717
{{/isFaraday}}
1818
{{#isHttpx}}
1919
require 'httpx'

modules/openapi-generator/src/main/resources/ruby-client/api_client_faraday_partial.mustache

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,8 +94,7 @@
9494
form_params.each do |key, value|
9595
case value
9696
when ::File, ::Tempfile
97-
filemagic = FileMagic.new(FileMagic::MAGIC_MIME)
98-
data[key] = Faraday::FilePart.new(value.path, filemagic.file(value.path, true))
97+
data[key] = Faraday::FilePart.new(value.path, Marcel::MimeType.for(Pathname.new(value.path)))
9998
when ::Array, nil
10099
# let Faraday handle Array and nil parameters
101100
data[key] = value

modules/openapi-generator/src/main/resources/ruby-client/gemspec.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ Gem::Specification.new do |s|
2323
{{#isFaraday}}
2424
s.add_runtime_dependency 'faraday', '>= 1.0.1', '< 3.0'
2525
s.add_runtime_dependency 'faraday-multipart'
26-
s.add_runtime_dependency 'ruby-filemagic'
26+
s.add_runtime_dependency 'marcel'
2727
{{/isFaraday}}
2828
{{#isTyphoeus}}
2929
s.add_runtime_dependency 'typhoeus', '~> 1.0', '>= 1.0.1'

samples/client/echo_api/ruby-faraday/lib/openapi_client/api_client.rb

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
require 'time'
1818
require 'faraday'
1919
require 'faraday/multipart' if Gem::Version.new(Faraday::VERSION) >= Gem::Version.new('2.0')
20-
require 'filemagic'
20+
require 'marcel'
2121

2222

2323
module OpenapiClient
@@ -141,8 +141,7 @@ def build_request_body(header_params, form_params, body)
141141
form_params.each do |key, value|
142142
case value
143143
when ::File, ::Tempfile
144-
filemagic = FileMagic.new(FileMagic::MAGIC_MIME)
145-
data[key] = Faraday::FilePart.new(value.path, filemagic.file(value.path, true))
144+
data[key] = Faraday::FilePart.new(value.path, Marcel::MimeType.for(Pathname.new(value.path)))
146145
when ::Array, nil
147146
# let Faraday handle Array and nil parameters
148147
data[key] = value

samples/client/echo_api/ruby-faraday/openapi_client.gemspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ Gem::Specification.new do |s|
3030

3131
s.add_runtime_dependency 'faraday', '>= 1.0.1', '< 3.0'
3232
s.add_runtime_dependency 'faraday-multipart'
33-
s.add_runtime_dependency 'ruby-filemagic'
33+
s.add_runtime_dependency 'marcel'
3434

3535
s.add_development_dependency 'rspec', '~> 3.6', '>= 3.6.0'
3636

samples/client/petstore/ruby-faraday/lib/petstore/api_client.rb

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
require 'time'
1818
require 'faraday'
1919
require 'faraday/multipart' if Gem::Version.new(Faraday::VERSION) >= Gem::Version.new('2.0')
20-
require 'filemagic'
20+
require 'marcel'
2121

2222

2323
module Petstore
@@ -141,8 +141,7 @@ def build_request_body(header_params, form_params, body)
141141
form_params.each do |key, value|
142142
case value
143143
when ::File, ::Tempfile
144-
filemagic = FileMagic.new(FileMagic::MAGIC_MIME)
145-
data[key] = Faraday::FilePart.new(value.path, filemagic.file(value.path, true))
144+
data[key] = Faraday::FilePart.new(value.path, Marcel::MimeType.for(Pathname.new(value.path)))
146145
when ::Array, nil
147146
# let Faraday handle Array and nil parameters
148147
data[key] = value

samples/client/petstore/ruby-faraday/petstore.gemspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ Gem::Specification.new do |s|
3030

3131
s.add_runtime_dependency 'faraday', '>= 1.0.1', '< 3.0'
3232
s.add_runtime_dependency 'faraday-multipart'
33-
s.add_runtime_dependency 'ruby-filemagic'
33+
s.add_runtime_dependency 'marcel'
3434

3535
s.add_development_dependency 'rspec', '~> 3.6', '>= 3.6.0'
3636

0 commit comments

Comments
 (0)