async-http-faraday 0.5.1 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: baa35cb2d3b40e5a357629a712d67cc355e8421f23b4394e829fb31cf4fa38d4
4
- data.tar.gz: d5e9ff91f4ed71516abb5093b0b2920ac0f74b30f0eaf1f3d23834ad6690787a
3
+ metadata.gz: 7547186d920c58d1c3c27f9a16041cd82c670204505ec696dcc2104990e724f3
4
+ data.tar.gz: 32e8fd12a7d66d55059e5daaa311a2735130b6704fc5b88e6313c5c4cc782ba1
5
5
  SHA512:
6
- metadata.gz: eb7fe92c432d5650c25790c204e4e9a3461600407e747c69443f691bb3f43b9ecfbb5697204a9d7c1ce7409d850942c40a3ca95792d92a78bbf149d5e962fb73
7
- data.tar.gz: 316b92dcc89eabeefa1fce8e57a5a93d0f5c600315e23da253ff06234fcb0efd8a47be909d603d914245b8147b3334d338f3f88f7fc32383c166b3027f4ba280
6
+ metadata.gz: 7632d215b1a008a6462d9a9cdc56451f4894dfad2dcd649972b4bc55c4f92eb592e9253cd40ed207fbe21c752261d734b5e55c0113f81717a3a655f4233e0899
7
+ data.tar.gz: d3fa8fcd72045b89affe384cc4284c738e861051430544cd59fc30051fc3bad7baab4fc92ab523d6857f7f18d09404b22a576ffe6f3ccd8eea9a2d841c83df90
data/.gitignore CHANGED
@@ -10,3 +10,4 @@
10
10
 
11
11
  # rspec failure tracking
12
12
  .rspec_status
13
+ .covered.db
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  gemspec
4
+
5
+ gem "faraday", git: "https://github.com/lostisland/faraday.git"
@@ -16,7 +16,7 @@ Gem::Specification.new do |spec|
16
16
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
17
17
  spec.require_paths = ["lib"]
18
18
 
19
- spec.add_dependency("async-http", "~> 0.41")
19
+ spec.add_dependency("async-http", "~> 0.42")
20
20
  spec.add_dependency("faraday")
21
21
 
22
22
  spec.add_development_dependency "async-rspec", "~> 1.2"
@@ -20,32 +20,36 @@
20
20
 
21
21
  require 'faraday'
22
22
  require 'faraday/adapter'
23
- require 'async/http/client'
23
+ require 'async/http/internet'
24
24
 
25
25
  module Async
26
26
  module HTTP
27
27
  module Faraday
28
+ # Detect whether we can use persistent connections:
29
+ PERSISTENT = ::Faraday::Connection.instance_methods.include?(:close)
30
+
28
31
  class Adapter < ::Faraday::Adapter
32
+ def initialize(*arguments, **options, &block)
33
+ super
34
+
35
+ @internet = Async::HTTP::Internet.new
36
+ end
37
+
38
+ def close
39
+ @internet.close
40
+ end
41
+
29
42
  def call(env)
30
43
  super
31
44
 
32
- client = HTTP::Client.new(*endpoints_for(env).to_a)
45
+ response = @internet.call(env[:method], env[:url].to_s, env[:request_headers], env[:body])
33
46
 
34
- response = client.send(env[:method], env[:url].request_uri, env[:request_headers], env[:body] || [])
35
-
36
47
  save_response(env, response.status, response.read, response.headers)
37
48
 
38
- @app.call env
49
+ return @app.call(env)
39
50
  ensure
40
- client.close if client
41
- end
42
-
43
- def endpoints_for(env)
44
- return to_enum(:endpoints_for, env) unless block_given?
45
-
46
- if url = env[:url]
47
- yield Async::HTTP::Endpoint.new(url)
48
- end
51
+ # Don't retain persistent connections unless they will eventually be closed:
52
+ @internet.close unless PERSISTENT
49
53
  end
50
54
  end
51
55
  end
@@ -21,7 +21,7 @@
21
21
  module Async
22
22
  module HTTP
23
23
  module Faraday
24
- VERSION = "0.5.1"
24
+ VERSION = "0.6.0"
25
25
  end
26
26
  end
27
27
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: async-http-faraday
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Williams
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-10-24 00:00:00.000000000 Z
11
+ date: 2019-12-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: async-http
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.41'
19
+ version: '0.42'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0.41'
26
+ version: '0.42'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: faraday
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -144,7 +144,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
144
144
  - !ruby/object:Gem::Version
145
145
  version: '0'
146
146
  requirements: []
147
- rubygems_version: 3.0.6
147
+ rubygems_version: 3.0.4
148
148
  signing_key:
149
149
  specification_version: 4
150
150
  summary: Provides an adaptor between async-http and faraday.