From aaa20e7e858dcd96b35aa52b0d7ebed18cb1e8cf Mon Sep 17 00:00:00 2001 From: Hiro Asari Date: Wed, 10 Jun 2020 13:37:47 -0400 Subject: [PATCH 1/3] Drop Typhoeus requirement It is used if available, but use Net::HTTP if it is not. --- lib/travis/cli/api_command.rb | 6 +++++- travis.gemspec | 1 - 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/travis/cli/api_command.rb b/lib/travis/cli/api_command.rb index 05445160..6c6da5bb 100644 --- a/lib/travis/cli/api_command.rb +++ b/lib/travis/cli/api_command.rb @@ -32,11 +32,15 @@ class ApiCommand < Command c.enterprise_name = name || 'default' end - on('--adapter ADAPTER', 'Faraday adapter to use for HTTP requests') do |c, adapter| + on('--adapter ADAPTER', 'Faraday adapter to use for HTTP requests. If omitted, use Typhoeus if it is installed, ' \ + 'and Net::HTTP otherwise. See https://lostisland.github.io/faraday/adapters/ for more info') do |c, adapter| adapter.gsub! '-', '_' require "faraday/adapter/#{adapter}" require 'typhoeus/adapters/faraday' if adapter == 'typhoeus' c.session.faraday_adapter = adapter.to_sym + rescue LoadError => e + warn "\`--adapter #{adapter}\` is given, but it is not installed. Run \`gem install #{adapter}\` and try again" + exit 1 end def initialize(*) diff --git a/travis.gemspec b/travis.gemspec index 2a56c3fc..4fb85e21 100644 --- a/travis.gemspec +++ b/travis.gemspec @@ -412,7 +412,6 @@ Gem::Specification.new do |s| s.add_dependency "highline", "~> 2.0" s.add_dependency "gh", "~> 0.13" s.add_dependency "launchy", "~> 2.1", "< 2.5.0" - s.add_dependency "typhoeus", "~> 0.6", ">= 0.6.8" s.add_dependency "json", "~> 2.3" s.add_dependency "pusher-client", "~> 0.4" s.add_development_dependency "rspec", "~> 2.12" From 295dd54057f11ea52cdda5d402c1796cd657e7bc Mon Sep 17 00:00:00 2001 From: Hiro Asari Date: Wed, 10 Jun 2020 13:46:52 -0400 Subject: [PATCH 2/3] Wrap `rescue` in `begin; end` block For Ruby < 2.5 compatibility --- lib/travis/cli/api_command.rb | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/lib/travis/cli/api_command.rb b/lib/travis/cli/api_command.rb index 6c6da5bb..ff6e0045 100644 --- a/lib/travis/cli/api_command.rb +++ b/lib/travis/cli/api_command.rb @@ -34,13 +34,15 @@ class ApiCommand < Command on('--adapter ADAPTER', 'Faraday adapter to use for HTTP requests. If omitted, use Typhoeus if it is installed, ' \ 'and Net::HTTP otherwise. See https://lostisland.github.io/faraday/adapters/ for more info') do |c, adapter| - adapter.gsub! '-', '_' - require "faraday/adapter/#{adapter}" - require 'typhoeus/adapters/faraday' if adapter == 'typhoeus' - c.session.faraday_adapter = adapter.to_sym - rescue LoadError => e - warn "\`--adapter #{adapter}\` is given, but it is not installed. Run \`gem install #{adapter}\` and try again" - exit 1 + begin + adapter.gsub! '-', '_' + require "faraday/adapter/#{adapter}" + require 'typhoeus/adapters/faraday' if adapter == 'typhoeus' + c.session.faraday_adapter = adapter.to_sym + rescue LoadError => e + warn "\`--adapter #{adapter}\` is given, but it is not installed. Run \`gem install #{adapter}\` and try again" + exit 1 + end end def initialize(*) From 254533e04d5f0a940b09b0f6197590d252d1c26f Mon Sep 17 00:00:00 2001 From: Hiro Asari Date: Mon, 15 Jun 2020 11:25:21 -0400 Subject: [PATCH 3/3] Use json_pure instead of json Removes dependency on FFI, so that this gem can be reliably installed on Windows. --- travis.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/travis.gemspec b/travis.gemspec index 4fb85e21..55601a50 100644 --- a/travis.gemspec +++ b/travis.gemspec @@ -412,7 +412,7 @@ Gem::Specification.new do |s| s.add_dependency "highline", "~> 2.0" s.add_dependency "gh", "~> 0.13" s.add_dependency "launchy", "~> 2.1", "< 2.5.0" - s.add_dependency "json", "~> 2.3" + s.add_dependency "json_pure", "~> 2.3" s.add_dependency "pusher-client", "~> 0.4" s.add_development_dependency "rspec", "~> 2.12" s.add_development_dependency "rspec-its"