From 6ea30b0adacf201bf4efb7107f990a1f5d201d72 Mon Sep 17 00:00:00 2001 From: shayarnett Date: Wed, 30 Aug 2023 16:43:25 -0400 Subject: [PATCH] Update gemspec for Faraday made in this century (#2) * Add supports Ruby 2.4, 2.5, 2.6, 2.7 * Use webmock gem v2.3.2 * Support faraday 1.x * Specify the version for crack gem in order to pass tests on ruby1.9 * Enable to run tests with the both faraday 0.8 and 1.0 * Mark faraday-1.0 with rvm <= 2.2 as allow_failures for now --------- Co-authored-by: 9toon --- .gitignore | 1 + .travis.yml | 20 +++++++++++++++++++- gemfiles/faraday-0.8.gemfile | 4 ++++ gemfiles/faraday-1.0.gemfile | 4 ++++ hypernova.gemspec | 8 ++++---- spec/faraday_connection_spec.rb | 6 +++++- 6 files changed, 37 insertions(+), 6 deletions(-) create mode 100644 gemfiles/faraday-0.8.gemfile create mode 100644 gemfiles/faraday-1.0.gemfile diff --git a/.gitignore b/.gitignore index 49a8030..9a98516 100644 --- a/.gitignore +++ b/.gitignore @@ -29,6 +29,7 @@ build/ # for a library or gem, you might want to ignore these files since the code is # intended to run in multiple environments; otherwise, check them in: Gemfile.lock +gemfiles/*.lock # .ruby-version # .ruby-gemset diff --git a/.travis.yml b/.travis.yml index a5b84b9..f8f80d6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,7 +6,25 @@ rvm: - "2.0" - "2.1" - "2.2" - - "2.3.3" + - "2.3" + - "2.4" + - "2.5" + - "2.6" + - "2.7" +gemfile: + - gemfiles/faraday-0.8.gemfile + - gemfiles/faraday-1.0.gemfile +matrix: + fast_finish: true + allow_failures: + - gemfile: gemfiles/faraday-1.0.gemfile + rvm: "1.9.3" + - gemfile: gemfiles/faraday-1.0.gemfile + rvm: "2.0" + - gemfile: gemfiles/faraday-1.0.gemfile + rvm: "2.1" + - gemfile: gemfiles/faraday-1.0.gemfile + rvm: "2.2" before_install: - gem update bundler script: diff --git a/gemfiles/faraday-0.8.gemfile b/gemfiles/faraday-0.8.gemfile new file mode 100644 index 0000000..e17812c --- /dev/null +++ b/gemfiles/faraday-0.8.gemfile @@ -0,0 +1,4 @@ +source 'https://rubygems.org' + +gem 'faraday', '~> 0.8' +gemspec path: '../' diff --git a/gemfiles/faraday-1.0.gemfile b/gemfiles/faraday-1.0.gemfile new file mode 100644 index 0000000..dd7abf5 --- /dev/null +++ b/gemfiles/faraday-1.0.gemfile @@ -0,0 +1,4 @@ +source 'https://rubygems.org' + +gem 'faraday', '~> 1.0' +gemspec path: '../' diff --git a/hypernova.gemspec b/hypernova.gemspec index c2e9e2f..f4e54f6 100644 --- a/hypernova.gemspec +++ b/hypernova.gemspec @@ -38,13 +38,13 @@ Gem::Specification.new do |spec| spec.add_development_dependency "rspec", "~> 3.4" spec.add_development_dependency "simplecov", "~> 0.11" spec.add_development_dependency "pry", "~> 0.10" - # this is pinned because ruby devs hate semver - # see https://github.com/bblimke/webmock/issues/667 - spec.add_development_dependency "webmock", "=2.1.0" + spec.add_development_dependency "webmock", "= 2.3.2" + # crack gem added REXML to its dependency at v0.4.5, but it causes an error when used on Ruby 1.9 + spec.add_development_dependency "crack", "< 0.4.5" # below works around travis-ci requiring github-pages-health-check, whose subdep public_suffix # stopped being compatible with ruby 1.9 # see https://github.com/weppos/publicsuffix-ruby/issues/127 spec.add_development_dependency "public_suffix", "=1.4.6" - spec.add_runtime_dependency "faraday", "~> 0.8" + spec.add_runtime_dependency "faraday", ">= 0.8" end diff --git a/spec/faraday_connection_spec.rb b/spec/faraday_connection_spec.rb index c6b4073..9fbfc5b 100644 --- a/spec/faraday_connection_spec.rb +++ b/spec/faraday_connection_spec.rb @@ -21,7 +21,11 @@ }). and_call_original - expect(described_class.build.builder.handlers).to include(Faraday::Adapter::NetHttp) + if Gem.loaded_specs['faraday'].version >= Gem::Version.new("1.0.0") + expect(described_class.build.builder.adapter).to eq(Faraday::Adapter::NetHttp) + else + expect(described_class.build.builder.handlers).to include(Faraday::Adapter::NetHttp) + end end end end