diff --git a/faraday-curl.gemspec b/faraday-curl.gemspec index ad8083b..8d59e8d 100644 --- a/faraday-curl.gemspec +++ b/faraday-curl.gemspec @@ -20,7 +20,7 @@ Gem::Specification.new do |spec| spec.add_dependency "faraday", ">= 0.9.0" - spec.add_development_dependency "bundler", "~> 1.6" + spec.add_development_dependency "bundler", "~> 2.0" spec.add_development_dependency "rake" spec.add_development_dependency 'rspec' spec.add_development_dependency 'faraday_middleware', ">= 0.9.0" diff --git a/lib/faraday/curl/middleware.rb b/lib/faraday/curl/middleware.rb index 9e3802d..74aa964 100644 --- a/lib/faraday/curl/middleware.rb +++ b/lib/faraday/curl/middleware.rb @@ -42,10 +42,10 @@ def call(env) end def quote(value) - value.gsub("'", "\\'") + value.gsub("'") { "'\\''" } end end end end -Faraday::Request.register_middleware :curl => Faraday::Curl::Middleware \ No newline at end of file +Faraday::Request.register_middleware :curl => Faraday::Curl::Middleware diff --git a/spec/curl_spec.rb b/spec/curl_spec.rb index d465083..d1d6765 100644 --- a/spec/curl_spec.rb +++ b/spec/curl_spec.rb @@ -8,7 +8,7 @@ describe Faraday::Curl::Middleware do - let(:version) { "-H 'User-Agent: Faraday v0.9.0'" } + let(:version) { "-H 'User-Agent: Faraday v#{Faraday::VERSION}'" } def create_connection( *request_middlewares ) Faraday.new( :url => 'http://example.com' ) do |b| @@ -49,4 +49,12 @@ def match_command( response, method, *parts ) match_command(response, "PUT", "-H 'Content-Type: application/x-www-form-urlencoded'", "-d 'age=50&name%5B%5D=john&name%5B%5D=doe'", '"http://example.com/echo"') end -end \ No newline at end of file + it 'should escape headers' do + connection = create_connection + response = connection.get( "/echo" ) do |request| + request.headers["Cookies"] = "exa'mple" + end + match_command(response, "GET", "-H 'Cookies: exa'\\''mple'", '"http://example.com/echo"') + end + +end