Skip to content

Commit a5bb2df

Browse files
authored
Migrate to Faraday 2.x (#7)
This PR upgrades the faraday dependency from 1.x to 2.x and resolves several breaking changes. Currently, this library is running the test suite fails with a `NameError` because the older `typhoeus` gem attempts to modify Faraday's internal adapter classes using a legacy structure that is no longer compatible with Faraday 2.x. ``` $ bundle exec rake test /home/watson/.rbenv/versions/3.4.8/bin/ruby -w -I"lib:test" /home/watson/.rbenv/versions/3.4.8/lib/ruby/gems/3.4.0/gems/rake-13.3.1/lib/rake/rake_test_loader.rb "test/test_client.rb" /home/watson/.rbenv/versions/3.4.8/lib/ruby/gems/3.4.0/gems/typhoeus-1.1.2/lib/typhoeus/adapters/faraday.rb:28:in 'Module#remove_method': method 'call' not defined in Faraday::Adapter::Typhoeus (NameError) remove_method :call if method_defined? :call ^^^^^^^^^^^^^ from /home/watson/.rbenv/versions/3.4.8/lib/ruby/gems/3.4.0/gems/typhoeus-1.1.2/lib/typhoeus/adapters/faraday.rb:28:in '<class:Typhoeus>' from /home/watson/.rbenv/versions/3.4.8/lib/ruby/gems/3.4.0/gems/typhoeus-1.1.2/lib/typhoeus/adapters/faraday.rb:21:in '<class:Adapter>' from /home/watson/.rbenv/versions/3.4.8/lib/ruby/gems/3.4.0/gems/typhoeus-1.1.2/lib/typhoeus/adapters/faraday.rb:4:in '<module:Faraday>' from /home/watson/.rbenv/versions/3.4.8/lib/ruby/gems/3.4.0/gems/typhoeus-1.1.2/lib/typhoeus/adapters/faraday.rb:3:in '<top (required)>' from /home/watson/.rbenv/versions/3.4.8/lib/ruby/3.4.0/bundled_gems.rb:82:in 'Kernel.require' from /home/watson/.rbenv/versions/3.4.8/lib/ruby/3.4.0/bundled_gems.rb:82:in 'block (2 levels) in Kernel#replace_require' from /home/watson/src/ruby-zulip-client/lib/zulip/client.rb:5:in '<top (required)>' from /home/watson/.rbenv/versions/3.4.8/lib/ruby/3.4.0/bundled_gems.rb:82:in 'Kernel.require' from /home/watson/.rbenv/versions/3.4.8/lib/ruby/3.4.0/bundled_gems.rb:82:in 'block (2 levels) in Kernel#replace_require' from /home/watson/src/ruby-zulip-client/test/helper.rb:4:in '<top (required)>' from /home/watson/.rbenv/versions/3.4.8/lib/ruby/3.4.0/bundled_gems.rb:82:in 'Kernel.require' from /home/watson/.rbenv/versions/3.4.8/lib/ruby/3.4.0/bundled_gems.rb:82:in 'block (2 levels) in Kernel#replace_require' from /home/watson/src/ruby-zulip-client/test/test_client.rb:1:in '<top (required)>' from /home/watson/.rbenv/versions/3.4.8/lib/ruby/3.4.0/bundled_gems.rb:82:in 'Kernel.require' from /home/watson/.rbenv/versions/3.4.8/lib/ruby/3.4.0/bundled_gems.rb:82:in 'block (2 levels) in Kernel#replace_require' from /home/watson/.rbenv/versions/3.4.8/lib/ruby/gems/3.4.0/gems/rake-13.3.1/lib/rake/rake_test_loader.rb:21:in 'block in <main>' from /home/watson/.rbenv/versions/3.4.8/lib/ruby/gems/3.4.0/gems/rake-13.3.1/lib/rake/rake_test_loader.rb:6:in 'Array#select' from /home/watson/.rbenv/versions/3.4.8/lib/ruby/gems/3.4.0/gems/rake-13.3.1/lib/rake/rake_test_loader.rb:6:in '<main>' rake aborted! ``` This PR will migrate to 2.x to resolve the above error. Fix #6
1 parent 94d21db commit a5bb2df

File tree

2 files changed

+7
-8
lines changed

2 files changed

+7
-8
lines changed

lib/zulip/client.rb

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
require "json"
22
require "uri"
33
require "faraday"
4-
require "typhoeus"
5-
require "typhoeus/adapters/faraday"
4+
require "faraday/typhoeus"
65

76
require "zulip/error"
87

@@ -18,12 +17,12 @@ class Client
1817
def initialize(site:, username:, api_key:, **options)
1918
@site = URI.parse(site)
2019
@connection = Faraday.new(@site.to_s, options) do |faraday|
21-
faraday.adapter Faraday.default_adapter
20+
faraday.adapter :typhoeus
2221
faraday.options[:open_timeout] ||= DEFAULT_OPEN_TIMEOUT
2322
faraday.options[:timeout] ||= DEFAULT_TIMEOUT
23+
faraday.request :authorization, :basic, username, api_key
2424
yield faraday if block_given?
2525
end
26-
@connection.basic_auth(username, api_key)
2726
@running = false
2827
@debug = false
2928
end

zulip-client.gemspec

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@ Gem::Specification.new do |spec|
2020
spec.executables = spec.files.grep(%r{^bin/}) {|f| File.basename(f) }
2121
spec.require_paths = ["lib"]
2222

23-
spec.add_runtime_dependency "faraday", ">= 0.11.0"
24-
spec.add_runtime_dependency "typhoeus", "~> 1.1.0"
25-
spec.add_development_dependency "bundler", "~> 1.14"
26-
spec.add_development_dependency "rake", "~> 12.0"
23+
spec.add_runtime_dependency "faraday", "~> 2.0"
24+
spec.add_runtime_dependency "faraday-typhoeus", "~> 1.0"
25+
spec.add_development_dependency "bundler"
26+
spec.add_development_dependency "rake"
2727
spec.add_development_dependency "test-unit", ">= 3.2.0"
2828
spec.add_development_dependency "webmock"
2929
end

0 commit comments

Comments
 (0)