diff --git a/.gitignore b/.gitignore index 00c45ba..8ca1438 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,2 @@ /faraday-0.8.8.gem /faraday-0.9.0.gem -/faraday-0.15.4-tests.tgz -/faraday-0.15.4.gem -/faraday-1.0.1.gem diff --git a/faraday-1.0.1-net-http-persistent-3-error-kind.patch b/faraday-1.0.1-net-http-persistent-3-error-kind.patch deleted file mode 100644 index 556e96f..0000000 --- a/faraday-1.0.1-net-http-persistent-3-error-kind.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 687108bb4ddc2511aeaae7449dd401fe62dd5ceb Mon Sep 17 00:00:00 2001 -From: Matt -Date: Thu, 31 Dec 2020 10:51:03 +0000 -Subject: [PATCH] Adds Ruby 3.0 to CI Matrix (#1226) - ---- - .github/workflows/ci.yml | 6 +----- - Gemfile | 2 +- - lib/faraday/adapter/net_http_persistent.rb | 2 +- - 3 files changed, 3 insertions(+), 7 deletions(-) - -diff --git a/lib/faraday/adapter/net_http_persistent.rb b/lib/faraday/adapter/net_http_persistent.rb -index ff20c256..26bcc2ce 100644 ---- a/lib/faraday/adapter/net_http_persistent.rb -+++ b/lib/faraday/adapter/net_http_persistent.rb -@@ -51,7 +51,7 @@ def proxy_uri(env) - - def perform_request(http, env) - http.request env[:url], create_request(env) -- rescue Errno::ETIMEDOUT => e -+ rescue Errno::ETIMEDOUT, Net::OpenTimeout => e - raise Faraday::TimeoutError, e - rescue Net::HTTP::Persistent::Error => e - raise Faraday::TimeoutError, e if e.message.include? 'Timeout' diff --git a/faraday-pr1523-testsuite-undefined-method-change.patch b/faraday-pr1523-testsuite-undefined-method-change.patch deleted file mode 100644 index 72efa8e..0000000 --- a/faraday-pr1523-testsuite-undefined-method-change.patch +++ /dev/null @@ -1,80 +0,0 @@ -From 05f2d9486bd88dc0030e002e65cb7d91a67b3f5d Mon Sep 17 00:00:00 2001 -From: Koichi ITO -Date: Tue, 15 Aug 2023 13:18:31 +0900 -Subject: [PATCH] Fix a test failure using Ruby 3.3.0dev - -This PR fixes the following test failure using Ruby 3.3.0dev: - -```console -$ ruby -v -ruby 3.3.0dev (2023-08-14T15:48:39Z master 52837fcec2) [x86_64-darwin22] -$ bundle exec rspec spec/faraday_spec.rb - -Randomized with seed 57031 - -Faraday - has a version number - proxies to default_connection - uses method_missing on Faraday if there is no proxyable method (FAILED - 1) - proxies methods that exist on the default_connection - proxied methods can be accessed - -Failures: - - 1) Faraday proxies to default_connection uses method_missing on Faraday if there is no proxyable method - Failure/Error: - expect { Faraday.this_method_does_not_exist }.to raise_error( - NoMethodError, expected_message - ) - - expected NoMethodError with "undefined method `this_method_does_not_exist' for Faraday:Module", - got # with backtrace: - # ./lib/faraday.rb:147:in `method_missing' - # ./spec/faraday_spec.rb:27:in `block (4 levels) in ' - # ./spec/faraday_spec.rb:27:in `block (3 levels) in ' - # ./spec/faraday_spec.rb:27:in `block (3 levels) in ' -``` - -That error message has been changed by https://github.com/ruby/ruby/commit/e7b8d32e in Ruby 3.3.0dev. - -cf. https://bugs.ruby-lang.org/issues/18285 - -So the test error message is changed: - -Ruby 3.2 or lower: - -``` -undefined method `this_method_does_not_exist' for Faraday:Module -``` - -Ruby 3.3.0dev: - -``` -NoMethodError: undefined method `this_method_does_not_exist' for module Faraday -``` ---- - spec/faraday_spec.rb | 11 +++++++---- - 1 file changed, 7 insertions(+), 4 deletions(-) - -diff --git a/spec/faraday_spec.rb b/spec/faraday_spec.rb -index 8b603ebbd..25d9d4fa9 100644 ---- a/spec/faraday_spec.rb -+++ b/spec/faraday_spec.rb -@@ -18,10 +18,13 @@ - end - - it 'uses method_missing on Faraday if there is no proxyable method' do -- expect { Faraday.this_method_does_not_exist }.to raise_error( -- NoMethodError, -- "undefined method `this_method_does_not_exist' for Faraday:Module" -- ) -+ expected_message = if RUBY_VERSION >= '3.3' -+ "undefined method `this_method_does_not_exist' for module Faraday" -+ else -+ "undefined method `this_method_does_not_exist' for Faraday:Module" -+ end -+ -+ expect { Faraday.this_method_does_not_exist }.to raise_error(NoMethodError, expected_message) - end - - it 'proxied methods can be accessed' do diff --git a/faraday-pr1549-unespace-rack-utils-query-result.patch b/faraday-pr1549-unespace-rack-utils-query-result.patch deleted file mode 100644 index e727376..0000000 --- a/faraday-pr1549-unespace-rack-utils-query-result.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 66551ecc79f5d3d5bca1a2523bd8736db8c2220c Mon Sep 17 00:00:00 2001 -From: Mattia Giuffrida -Date: Sat, 20 Jan 2024 16:48:26 +0000 -Subject: [PATCH] Unescape the result of `Rack::Utils.build_nested_query` - ---- - spec/faraday/params_encoders/nested_spec.rb | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/spec/faraday/params_encoders/nested_spec.rb b/spec/faraday/params_encoders/nested_spec.rb -index 46312047f..83da22dc4 100644 ---- a/spec/faraday/params_encoders/nested_spec.rb -+++ b/spec/faraday/params_encoders/nested_spec.rb -@@ -62,7 +62,8 @@ - it 'encodes rack compat' do - params = { a: [{ one: '1', two: '2' }, '3', ''] } - result = Faraday::Utils.unescape(Faraday::NestedParamsEncoder.encode(params)).split('&') -- expected = Rack::Utils.build_nested_query(params).split('&') -+ escaped = Rack::Utils.build_nested_query(params) -+ expected = Rack::Utils.unescape(escaped).split('&') - expect(result).to match_array(expected) - end - diff --git a/faraday-pr1560-ruby34-backtrace-change.patch b/faraday-pr1560-ruby34-backtrace-change.patch deleted file mode 100644 index 076c534..0000000 --- a/faraday-pr1560-ruby34-backtrace-change.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 8cdc483218d4612d53239f48785567b6b6d056cd Mon Sep 17 00:00:00 2001 -From: m-nakamura145 -Date: Fri, 24 May 2024 23:23:24 +0900 -Subject: [PATCH] Fix compatibility with Ruby 3.4.0-preview1 - ---- - spec/faraday_spec.rb | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/spec/faraday_spec.rb b/spec/faraday_spec.rb -index 30be29cf8..c3583f184 100644 ---- a/spec/faraday_spec.rb -+++ b/spec/faraday_spec.rb -@@ -18,7 +18,9 @@ - end - - it 'uses method_missing on Faraday if there is no proxyable method' do -- expected_message = if RUBY_VERSION >= '3.3' -+ expected_message = if RUBY_VERSION >= '3.4' -+ "undefined method 'this_method_does_not_exist' for module Faraday" -+ elsif RUBY_VERSION >= '3.3' - "undefined method `this_method_does_not_exist' for module Faraday" - else - "undefined method `this_method_does_not_exist' for Faraday:Module" diff --git a/faraday-pr1604-ruby34-hash-inspect-formatting-change.patch b/faraday-pr1604-ruby34-hash-inspect-formatting-change.patch deleted file mode 100644 index b972f1b..0000000 --- a/faraday-pr1604-ruby34-hash-inspect-formatting-change.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 74962b2d77af4a1ca6bc557031e6c24759dbafa7 Mon Sep 17 00:00:00 2001 -From: Mamoru TASAKA -Date: Tue, 3 Dec 2024 15:48:12 +0900 -Subject: [PATCH] [TEST] fix compatibility with ruby 3.4.0dev - -ruby 3.4 changes Hash#inspect formatting as: -https://bugs.ruby-lang.org/issues/20433 - -Closes #1602 ---- - spec/faraday/error_spec.rb | 12 ++++++++++-- - 1 file changed, 10 insertions(+), 2 deletions(-) - -diff --git a/spec/faraday/error_spec.rb b/spec/faraday/error_spec.rb -index fd30e2d34..170f32672 100644 ---- a/spec/faraday/error_spec.rb -+++ b/spec/faraday/error_spec.rb -@@ -21,7 +21,11 @@ - it { expect(subject.wrapped_exception).to be_nil } - it { expect(subject.response).to eq(exception) } - it { expect(subject.message).to eq('the server responded with status 400') } -- it { expect(subject.inspect).to eq('#400}>') } -+ if RUBY_VERSION >= '3.4' -+ it { expect(subject.inspect).to eq('#') } -+ else -+ it { expect(subject.inspect).to eq('#400}>') } -+ end - end - - context 'with string' do diff --git a/faraday-rack-pr13-rack31-rack_input.patch b/faraday-rack-pr13-rack31-rack_input.patch deleted file mode 100644 index f08c969..0000000 --- a/faraday-rack-pr13-rack31-rack_input.patch +++ /dev/null @@ -1,30 +0,0 @@ -From a590bc34e40b62484440dcd4ab5147c0c02bb425 Mon Sep 17 00:00:00 2001 -From: Andreas Schleifer -Date: Wed, 9 Apr 2025 09:21:05 +0200 -Subject: [PATCH] Fix tests for rack 3.1: env['rack.input'] is optional (#13) - -* fix(spec): fix tests for rack 3.1 - -* feat(ci): add ruby 3.4 to CI test matrix - ---------- - -Co-authored-by: Olle Jonsson ---- - .github/workflows/ci.yml | 1 + - spec/support/webmock_rack_app.rb | 2 +- - 2 files changed, 2 insertions(+), 1 deletion(-) - -diff --git a/spec/support/webmock_rack_app.rb b/spec/support/webmock_rack_app.rb -index a3212c7..894c411 100644 ---- a/spec/support/webmock_rack_app.rb -+++ b/spec/support/webmock_rack_app.rb -@@ -49,7 +49,7 @@ def req_headers(env) - end - - def req_body(env) -- env['rack.input'].read -+ env['rack.input']&.read - end - - def process_response(req_signature) diff --git a/parser.rb b/parser.rb deleted file mode 100644 index dfb1b05..0000000 --- a/parser.rb +++ /dev/null @@ -1,246 +0,0 @@ -module MultipartParser - # A low level parser for multipart messages, - # based on the node-formidable parser. - class Parser - - def initialize - @boundary = nil - @boundary_chars = nil - @lookbehind = nil - @state = :parser_uninitialized - @index = 0 # Index into boundary or header - @flags = {} - @marks = {} # Keep track of different parts - @callbacks = {} - end - - # Initializes the parser, using the given boundary - def init_with_boundary(boundary) - @boundary = "\r\n--" + boundary - @lookbehind = "\0"*(@boundary.length + 8) - @state = :start - - @boundary_chars = {} - @boundary.each_byte do |b| - @boundary_chars[b.chr] = true - end - end - - # Registers a callback to be called when the - # given event occurs. Each callback is expected to - # take three parameters: buffer, start_index, and end_index. - # All of these parameters may be null, depending on the callback. - # Valid callbacks are: - # :end - # :header_field - # :header_value - # :header_end - # :headers_end - # :part_begin - # :part_data - # :part_end - def on(event, &callback) - @callbacks[event] = callback - end - - # Writes data to the parser. - # Returns the number of bytes parsed. - # In practise, this means that if the return value - # is less than the buffer length, a parse error occured. - def write(buffer) - i = 0 - buffer_length = buffer.length - index = @index - flags = @flags.dup - state = @state - lookbehind = @lookbehind - boundary = @boundary - boundary_chars = @boundary_chars - boundary_length = @boundary.length - boundary_end = boundary_length - 1 - - while i < buffer_length - c = buffer[i, 1] - case state - when :parser_uninitialized - return i; - when :start - index = 0; - state = :start_boundary - when :start_boundary # Differs in that it has no preceeding \r\n - if index == boundary_length - 2 - return i unless c == "\r" - index += 1 - elsif index - 1 == boundary_length - 2 - return i unless c == "\n" - # Boundary read successfully, begin next part - callback(:part_begin) - state = :header_field_start - else - return i unless c == boundary[index+2, 1] # Unexpected character - index += 1 - end - i += 1 - when :header_field_start - state = :header_field - @marks[:header_field] = i - index = 0 - when :header_field - if c == "\r" - @marks.delete :header_field - state = :headers_almost_done - else - index += 1 - unless c == "-" # Skip hyphens - if c == ":" - return i if index == 1 # Empty header field - data_callback(:header_field, buffer, i, :clear => true) - state = :header_value_start - else - cl = c.downcase - return i if cl < "a" || cl > "z" - end - end - end - i += 1 - when :header_value_start - if c == " " # Skip spaces - i += 1 - else - @marks[:header_value] = i - state = :header_value - end - when :header_value - if c == "\r" - data_callback(:header_value, buffer, i, :clear => true) - callback(:header_end) - state = :header_value_almost_done - end - i += 1 - when :header_value_almost_done - return i unless c == "\n" - state = :header_field_start - i += 1 - when :headers_almost_done - return i unless c == "\n" - callback(:headers_end) - state = :part_data_start - i += 1 - when :part_data_start - state = :part_data - @marks[:part_data] = i - when :part_data - prev_index = index - - if index == 0 - # Boyer-Moore derived algorithm to safely skip non-boundary data - # See http://debuggable.com/posts/parsing-file-uploads-at-500- - # mb-s-with-node-js:4c03862e-351c-4faa-bb67-4365cbdd56cb - while i + boundary_length <= buffer_length - break if boundary_chars.has_key? buffer[i + boundary_end].chr - i += boundary_length - end - c = buffer[i, 1] - end - - if index < boundary_length - if boundary[index, 1] == c - if index == 0 - data_callback(:part_data, buffer, i, :clear => true) - end - index += 1 - else # It was not the boundary we found, after all - index = 0 - end - elsif index == boundary_length - index += 1 - if c == "\r" - flags[:part_boundary] = true - elsif c == "-" - flags[:last_boundary] = true - else # We did not find a boundary after all - index = 0 - end - elsif index - 1 == boundary_length - if flags[:part_boundary] - index = 0 - if c == "\n" - flags.delete :part_boundary - callback(:part_end) - callback(:part_begin) - state = :header_field_start - i += 1 - next # Ugly way to break out of the case statement - end - elsif flags[:last_boundary] - if c == "-" - callback(:part_end) - callback(:end) - state = :end - else - index = 0 # False alarm - end - else - index = 0 - end - end - - if index > 0 - # When matching a possible boundary, keep a lookbehind - # reference in case it turns out to be a false lead - lookbehind[index-1] = c - elsif prev_index > 0 - # If our boundary turns out to be rubbish, - # the captured lookbehind belongs to part_data - callback(:part_data, lookbehind, 0, prev_index) - @marks[:part_data] = i - - # Reconsider the current character as it might be the - # beginning of a new sequence. - i -= 1 - end - - i += 1 - when :end - i += 1 - else - return i; - end - end - - data_callback(:header_field, buffer, buffer_length) - data_callback(:header_value, buffer, buffer_length) - data_callback(:part_data, buffer, buffer_length) - - @index = index - @state = state - @flags = flags - - return buffer_length - end - - private - - # Issues a callback. - def callback(event, buffer = nil, start = nil, the_end = nil) - return if !start.nil? && start == the_end - if @callbacks.has_key? event - @callbacks[event].call(buffer, start, the_end) - end - end - - # Issues a data callback, - # The only valid options is :clear, - # which, if true, will reset the appropriate mark to 0, - # If not specified, the mark will be removed. - def data_callback(data_type, buffer, the_end, options = {}) - return unless @marks.has_key? data_type - callback(data_type, buffer, @marks[data_type], the_end) - unless options[:clear] - @marks[data_type] = 0 - else - @marks.delete data_type - end - end - end -end diff --git a/reader.rb b/reader.rb deleted file mode 100644 index d63562c..0000000 --- a/reader.rb +++ /dev/null @@ -1,152 +0,0 @@ -require 'multipart_parser/parser' - -module MultipartParser - class NotMultipartError < StandardError; end; - - # A more high level interface to MultipartParser. - class Reader - - # Initializes a MultipartReader, that will - # read a request with the given boundary value. - def initialize(boundary) - @parser = Parser.new - @parser.init_with_boundary(boundary) - @header_field = '' - @header_value = '' - @part = nil - @ended = false - @on_error = nil - @on_part = nil - - init_parser_callbacks - end - - # Returns true if the parser has finished parsing - def ended? - @ended - end - - # Sets to a code block to call - # when part headers have been parsed. - def on_part(&callback) - @on_part = callback - end - - # Sets a code block to call when - # a parser error occurs. - def on_error(&callback) - @on_error = callback - end - - # Write data from the given buffer (String) - # into the reader. - def write(buffer) - bytes_parsed = @parser.write(buffer) - if bytes_parsed != buffer.size - msg = "Parser error, #{bytes_parsed} of #{buffer.length} bytes parsed" - @on_error.call(msg) unless @on_error.nil? - end - end - - # Extracts a boundary value from a Content-Type header. - # Note that it is the header value you provide here. - # Raises NotMultipartError if content_type is invalid. - def self.extract_boundary_value(content_type) - if content_type =~ /multipart/i - if match = (content_type =~ /boundary=(?:"([^"]+)"|([^;]+))/i) - $1 || $2 - else - raise NotMultipartError.new("No multipart boundary") - end - else - raise NotMultipartError.new("Not a multipart content type!") - end - end - - class Part - attr_accessor :filename, :headers, :name, :mime - - def initialize - @headers = {} - @data_callback = nil - @end_callback = nil - end - - # Calls the data callback with the given data - def emit_data(data) - @data_callback.call(data) unless @data_callback.nil? - end - - # Calls the end callback - def emit_end - @end_callback.call unless @end_callback.nil? - end - - # Sets a block to be called when part data - # is read. The block should take one parameter, - # namely the read data. - def on_data(&callback) - @data_callback = callback - end - - # Sets a block to be called when all data - # for the part has been read. - def on_end(&callback) - @end_callback = callback - end - end - - private - - def init_parser_callbacks - @parser.on(:part_begin) do - @part = Part.new - @header_field = '' - @header_value = '' - end - - @parser.on(:header_field) do |b, start, the_end| - @header_field << b[start...the_end] - end - - @parser.on(:header_value) do |b, start, the_end| - @header_value << b[start...the_end] - end - - @parser.on(:header_end) do - @header_field.downcase! - @part.headers[@header_field] = @header_value - if @header_field == 'content-disposition' - if @header_value =~ /name="([^"]+)"/i - @part.name = $1 - end - if @header_value =~ /filename="([^;]+)"/i - match = $1 - start = (match.rindex("\\") || -1)+1 - @part.filename = match[start...(match.length)] - end - elsif @header_field == 'content-type' - @part.mime = @header_value - end - @header_field = '' - @header_value = '' - end - - @parser.on(:headers_end) do - @on_part.call(@part) unless @on_part.nil? - end - - @parser.on(:part_data) do |b, start, the_end| - @part.emit_data b[start...the_end] - end - - @parser.on(:part_end) do - @part.emit_end - end - - @parser.on(:end) do - @ended = true - end - end - end -end diff --git a/rubygem-faraday-1.0.1-Properly-fix-test-failure-with-Rack-2.1.patch b/rubygem-faraday-1.0.1-Properly-fix-test-failure-with-Rack-2.1.patch deleted file mode 100644 index 8816a50..0000000 --- a/rubygem-faraday-1.0.1-Properly-fix-test-failure-with-Rack-2.1.patch +++ /dev/null @@ -1,27 +0,0 @@ -From bf03db0979954ef4dd8646c53b73a003af70a953 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?V=C3=ADt=20Ondruch?= -Date: Fri, 24 Jul 2020 20:39:25 +0200 -Subject: [PATCH] Properly fix test failure with Rack 2.1+. - -Rack is not to blame, just naive test case which was enough so far. - -Fixes #1119 ---- - spec/support/shared_examples/request_method.rb | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/spec/support/shared_examples/request_method.rb b/spec/support/shared_examples/request_method.rb -index 8e2828a2..917e48ca 100644 ---- a/spec/support/shared_examples/request_method.rb -+++ b/spec/support/shared_examples/request_method.rb -@@ -13,8 +13,8 @@ - end - - it 'handles headers with multiple values' do -- request_stub.to_return(headers: { 'Set-Cookie' => 'one, two' }) -- expect(response.headers['set-cookie']).to eq('one, two') -+ request_stub.to_return(headers: { 'Set-Cookie' => 'name=value' }) -+ expect(response.headers['set-cookie']).to eq('name=value') - end - - it 'retrieves the response headers' do diff --git a/rubygem-faraday.spec b/rubygem-faraday.spec index 6d9542c..f977b69 100644 --- a/rubygem-faraday.spec +++ b/rubygem-faraday.spec @@ -2,199 +2,93 @@ %global gem_name faraday Name: rubygem-%{gem_name} -Version: 1.0.1 -Release: 18%{?dist} +Version: 0.9.0 +Release: 6%{?dist} Summary: HTTP/REST API client library +Group: Development/Languages License: MIT -URL: https://lostisland.github.io/faraday +URL: https://github.com/lostisland/faraday Source0: https://rubygems.org/gems/%{gem_name}-%{version}.gem -# Since we don't have multipart-parser in Fedora, include the essential part -# just for testing purposes. -# https://github.com/danabr/multipart-parser/blob/master/lib/multipart_parser/parser.rb -Source1: https://raw.githubusercontent.com/danabr/multipart-parser/master/lib/multipart_parser/parser.rb -# https://github.com/danabr/multipart-parser/blob/master/lib/multipart_parser/reader.rb -Source2: https://raw.githubusercontent.com/danabr/multipart-parser/master/lib/multipart_parser/reader.rb -# Fix Rack 2.1+ test compatibility. -# https://github.com/lostisland/faraday/pull/1171 -Patch0: rubygem-faraday-1.0.1-Properly-fix-test-failure-with-Rack-2.1.patch -# Extracted from: -# https://github.com/lostisland/faraday/commit/687108bb4ddc2511aeaae7449dd401fe62dd5ceb -Patch1: faraday-1.0.1-net-http-persistent-3-error-kind.patch -# "undefined method" error message changed with ruby 3.3 -# https://github.com/lostisland/faraday/pull/1523 -# https://github.com/ruby/ruby/pull/6950 -Patch2: faraday-pr1523-testsuite-undefined-method-change.patch -# ruby3.4 backtrace quoting change -# https://github.com/lostisland/faraday/pull/1560 -Patch3: faraday-pr1560-ruby34-backtrace-change.patch -# ruby3.4 Hash#inspect formatting change -# https://github.com/lostisland/faraday/pull/1604 -Patch4: faraday-pr1604-ruby34-hash-inspect-formatting-change.patch -# https://github.com/lostisland/faraday-rack/pull/13 -# https://github.com/lostisland/faraday-rack/commit/a590bc34e40b62484440dcd4ab5147c0c02bb425 -# Patch for rack 3.1 wrt env['rack.input'] is optional -Patch5: faraday-rack-pr13-rack31-rack_input.patch -# https://github.com/lostisland/faraday/pull/1549 -# https://github.com/lostisland/faraday/commit/66551ecc79f5d3d5bca1a2523bd8736db8c2220c.patch -# Unescape the result of Rack::Utils.build_nested_query for rack 3.1 -Patch6: faraday-pr1549-unespace-rack-utils-query-result.patch BuildRequires: ruby(release) +# Don't install these until test suite can be ran again. See %%check below +#BuildRequires: wget +#BuildRequires: lsof +#BuildRequires: rubygem(sinatra) +#BuildRequires: rubygem(minitest) +BuildRequires: rubygem(multipart-post) => 1.2 +BuildRequires: rubygem(multipart-post) < 3 BuildRequires: rubygems-devel -BuildRequires: ruby >= 2.3 -BuildRequires: rubygem(multipart-post) -BuildRequires: rubygem(rack) -BuildRequires: rubygem(rspec) -BuildRequires: rubygem(webmock) -# Adapter test dependencies, might be optionally disabled. -BuildRequires: rubygem(em-http-request) -BuildRequires: rubygem(excon) -BuildRequires: rubygem(httpclient) -BuildRequires: rubygem(net-http-persistent) -BuildRequires: rubygem(rack-test) -BuildRequires: rubygem(typhoeus) +BuildRequires: ruby BuildArch: noarch -%description -HTTP/REST API client library. +# Filter from RPM's autorequires. +%global __requires_exclude ^/usr/bin/env$ +%description +HTTP/REST API client library %package doc Summary: Documentation for %{name} +Group: Documentation Requires: %{name} = %{version}-%{release} BuildArch: noarch %description doc -Documentation for %{name}. +Documentation for %{name} %prep -mkdir -p multipart_parser/multipart_parser -cp %{SOURCE1} %{SOURCE2} multipart_parser/multipart_parser +gem unpack %{SOURCE0} -%autosetup -n %{gem_name}-%{version} -p1 +%setup -q -D -T -n %{gem_name}-%{version} + +gem spec %{SOURCE0} -l --ruby > %{gem_name}.gemspec %build # Create the gem as gem install only works on a gem file -gem build ../%{gem_name}-%{version}.gemspec +gem build %{gem_name}.gemspec # %%gem_install compiles any C extensions and installs the gem into ./%%gem_dir # by default, so that we can move it into the buildroot in %%install %gem_install +# Remove unnecessary files +pushd .%{gem_instdir}/ + rm %{gem_name}.gemspec + rm Gemfile + rm Rakefile + rm .document +popd + %install + mkdir -p %{buildroot}%{gem_dir} -cp -a .%{gem_dir}/* \ +cp -pa .%{gem_dir}/* \ %{buildroot}%{gem_dir}/ - - %check pushd .%{gem_instdir} -# We don't care about code coverage. -sed -i "/simplecov/ s/^/#/" spec/spec_helper.rb -sed -i "/coveralls/ s/^/#/" spec/spec_helper.rb -sed -i "/SimpleCov/,/^end$/ s/^/#/" spec/spec_helper.rb - -# We don't need Pry. -sed -i "/pry/ s/^/#/" spec/spec_helper.rb - -# We don't have {patron,em-synchrony} available in Fedora. -mv spec/faraday/adapter/em_synchrony_spec.rb{,.disabled} -mv spec/faraday/adapter/patron_spec.rb{,.disabled} - -# This needs http-net-persistent 3.0+. -sed -i '/allows to set min_version in SSL settings/a\ skip' \ - spec/faraday/adapter/net_http_persistent_spec.rb - -rspec -I%{_builddir}/multipart_parser -rspec_helper -r%{SOURCE1} spec -f d +# The test suite is ran by a custom bash script. +# Skip test check until this is resolved. +# https://github.com/lostisland/faraday/blob/v0.9.0/script/test +#ruby -Ilib:test -e 'Dir.glob "./test/**/*_test.rb", &method(:require)' popd %files %dir %{gem_instdir} -%license %{gem_instdir}/LICENSE.md %{gem_libdir} -%exclude %{gem_cache} %{gem_spec} +%doc %{gem_instdir}/LICENSE.md +%doc %{gem_instdir}/README.md +%exclude %{gem_cache} %files doc %doc %{gem_docdir} -%doc %{gem_instdir}/CHANGELOG.md -%doc %{gem_instdir}/README.md -%{gem_instdir}/Rakefile -%{gem_instdir}/examples -%{gem_instdir}/spec +%{gem_instdir}/CHANGELOG.md +%{gem_instdir}/CONTRIBUTING.md +%{gem_instdir}/script +%{gem_instdir}/test %changelog -* Mon Dec 01 2025 Mamoru TASAKA - 1.0.1-18 -- Backport upstream patch for rack3.1 change - -* Fri Jul 25 2025 Fedora Release Engineering - 1.0.1-17 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Sat Jan 18 2025 Fedora Release Engineering - 1.0.1-16 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Wed Dec 04 2024 Mamoru TASAKA - 1.0.1-15 -- Use upstreamed patch for ruby34 formatting change - -* Sun Dec 01 2024 Mamoru TASAKA - 1.0.1-14 -- Support ruby3.4 backtrace / Hash inspect formatting change - -* Fri Jul 19 2024 Fedora Release Engineering - 1.0.1-13 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Fri Jan 26 2024 Fedora Release Engineering - 1.0.1-12 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Mon Jan 22 2024 Fedora Release Engineering - 1.0.1-11 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Fri Sep 22 2023 Mamoru TASAKA - 1.0.1-10 -- Backport upstream patch for testsuite with ruby3.3 undefined method - message change - -* Fri Jul 21 2023 Fedora Release Engineering - 1.0.1-9 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Fri Jan 20 2023 Fedora Release Engineering - 1.0.1-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Sat Jul 23 2022 Fedora Release Engineering - 1.0.1-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Fri Jan 21 2022 Fedora Release Engineering - 1.0.1-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Fri Jul 23 2021 Fedora Release Engineering - 1.0.1-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Sat Feb 20 2021 Mamoru TASAKA - 1.0.1-4 -- Use upstream patch for net-http-persistent 4.0 - -* Sat Feb 20 2021 Mamoru TASAKA - 1.0.1-3 -- Support for net-http-persistent 4.0 net connection failure error change - -* Wed Jan 27 2021 Fedora Release Engineering - 1.0.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Thu Jul 23 2020 Vít Ondruch - 1.0.1-1 -- Update to Faraday 1.0.1. - Resolves: rhbz#1756449 - -* Thu Jan 30 2020 Fedora Release Engineering - 0.15.4-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Fri Jul 26 2019 Fedora Release Engineering - 0.15.4-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Fri Mar 01 2019 Vít Ondruch - 0.15.4-1 -- Update to Faraday 0.15.4. - -* Sat Feb 02 2019 Fedora Release Engineering - 0.9.0-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Sat Jul 14 2018 Fedora Release Engineering - 0.9.0-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - * Fri Feb 09 2018 Fedora Release Engineering - 0.9.0-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild diff --git a/sources b/sources index 3dacc06..e0e202c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (faraday-1.0.1.gem) = 0374cf32669e1727f435b765d959c5cefd774a451073e88c81c3b49d73885798803b53580f591f1e8862813baf113be7efb7abdc4d526719002f899a7c3b5c82 +f77914db9c4d4e8b2090447ec84ea746 faraday-0.9.0.gem