async-http-faraday 0.7.0 → 0.7.1

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: 18cebe143b4adb98ef8c4275b23c4a0424189939be8536ea556a6766a0f32601
4
- data.tar.gz: f61244ea3ac54fd86f0866410c0c1073fe95640aaac40ae15b56998b56686169
3
+ metadata.gz: c109996bf4e1ac263d36167d2f090404defde07adf3be7471f175f5bdd279d22
4
+ data.tar.gz: 7cdaaad412d469ac673dc85cf149ffdf7fcd593b859a2c891c23bde36c065e6b
5
5
  SHA512:
6
- metadata.gz: '0758825d6f3e0e8048d128d682e9087f7b8d3d002811cb08604d1019ce6c820dc70274ad99e9eca6fba4d58770dbb730ffae0fdfea2e8938bbf57d848fce98ea'
7
- data.tar.gz: '09b864bd39e657078f6f9a8830881243ce35de8cb3c9f31b815c68c343afc3b5d2d3b7009373cd682b84661e8e74e97b35aa4a515fac9b7c6c8369d5b666c649'
6
+ metadata.gz: 40b5496840bec8a74b60adfb807e84c1f863b1dd6719c6406018617d57c4c9313b45e492e88a2e2d224c15abf7c19b7fd5c0a7ed75280622193850942b0f86c0
7
+ data.tar.gz: 1d326fe89303b9e64ba5824d72d29bf063e5124a314238dce919c1ff75fb3f56926a633c00d2ce0d6f6fd5b656596febdb4e4670789593b8d9fd1e44395801b3
data/.travis.yml CHANGED
@@ -2,18 +2,18 @@ language: ruby
2
2
  dist: trusty
3
3
  cache: bundler
4
4
 
5
+ script: bundle exec rspec
6
+
5
7
  matrix:
6
8
  include:
7
- - rvm: 2.3
8
- - rvm: 2.4
9
9
  - rvm: 2.5
10
10
  - rvm: 2.6
11
11
  - rvm: 2.7
12
12
  - rvm: jruby-head
13
13
  env: JRUBY_OPTS="--debug -X+O"
14
+ - rvm: truffleruby
14
15
  - rvm: ruby-head
15
- - rvm: rbx-3
16
16
  allow_failures:
17
17
  - rvm: ruby-head
18
+ - rvm: truffleruby
18
19
  - rvm: jruby-head
19
- - rvm: rbx-3
data/Gemfile CHANGED
@@ -2,4 +2,5 @@ source 'https://rubygems.org'
2
2
 
3
3
  gemspec
4
4
 
5
- gem "faraday", git: "https://github.com/lostisland/faraday.git"
5
+ # gem "faraday", git: "https://github.com/lostisland/faraday.git"
6
+ # gem "async-http", path: "../async-http"
@@ -21,8 +21,9 @@ Gem::Specification.new do |spec|
21
21
 
22
22
  spec.add_development_dependency "async-rspec", "~> 1.2"
23
23
 
24
+ spec.add_development_dependency "bake-bundler"
25
+
24
26
  spec.add_development_dependency "covered"
25
27
  spec.add_development_dependency "bundler"
26
28
  spec.add_development_dependency "rspec", "~> 3.6"
27
- spec.add_development_dependency "rake"
28
29
  end
@@ -0,0 +1,32 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $LOAD_PATH.unshift File.expand_path("../lib", __dir__)
4
+
5
+ require 'async'
6
+ require 'faraday'
7
+ require 'async/http/faraday'
8
+
9
+ # Async.logger.debug!
10
+
11
+ module TestAsync
12
+ URL = 'https://www.google.com/search'
13
+ TOPICS = %W{ruby python lisp javascript cobol}
14
+
15
+ def self.fetch_topics_async
16
+ TOPICS.map do |topic|
17
+ Async do
18
+ Faraday.get("#{URL}?q=#{topic}")
19
+ end
20
+ end.map(&:wait)
21
+ end
22
+ end
23
+
24
+ Faraday.default_adapter = :async_http
25
+
26
+ Async do
27
+ pp TestAsync.fetch_topics_async
28
+ ensure
29
+ # This line is fairly essential if you intend to exit from the async block.
30
+ Faraday.default_connection.close
31
+ end
32
+
@@ -64,7 +64,7 @@ module Async
64
64
  end
65
65
 
66
66
  return @app.call(env)
67
- rescue Errno::ETIMEDOUT => e
67
+ rescue Errno::ETIMEDOUT, Async::TimeoutError => e
68
68
  raise ::Faraday::TimeoutError, e
69
69
  rescue OpenSSL::SSL::SSLError => e
70
70
  raise ::Faraday::SSLError, e
@@ -77,9 +77,9 @@ module Async
77
77
 
78
78
  private
79
79
 
80
- def with_timeout
80
+ def with_timeout(task: Async::Task.current)
81
81
  if @timeout
82
- Async::Task.current.with_timeout(@timeout, ::Faraday::TimeoutError) do
82
+ task.with_timeout(@timeout, ::Faraday::TimeoutError) do
83
83
  yield
84
84
  end
85
85
  else
@@ -21,7 +21,7 @@
21
21
  module Async
22
22
  module HTTP
23
23
  module Faraday
24
- VERSION = "0.7.0"
24
+ VERSION = "0.7.1"
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.7.0
4
+ version: 0.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Williams
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-02-05 00:00:00.000000000 Z
11
+ date: 2020-03-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: async-http
@@ -53,7 +53,7 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '1.2'
55
55
  - !ruby/object:Gem::Dependency
56
- name: covered
56
+ name: bake-bundler
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
@@ -67,7 +67,7 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: bundler
70
+ name: covered
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - ">="
@@ -81,33 +81,33 @@ dependencies:
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: rspec
84
+ name: bundler
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - "~>"
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
- version: '3.6'
89
+ version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - "~>"
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
- version: '3.6'
96
+ version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
- name: rake
98
+ name: rspec
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ">="
101
+ - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '0'
103
+ version: '3.6'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ">="
108
+ - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '0'
110
+ version: '3.6'
111
111
  description:
112
112
  email:
113
113
  - samuel.williams@oriontransfer.co.nz
@@ -121,8 +121,8 @@ files:
121
121
  - ".travis.yml"
122
122
  - Gemfile
123
123
  - README.md
124
- - Rakefile
125
124
  - async-http-faraday.gemspec
125
+ - examples/topics.rb
126
126
  - lib/async/http/faraday.rb
127
127
  - lib/async/http/faraday/adapter.rb
128
128
  - lib/async/http/faraday/version.rb
@@ -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.1.2
148
148
  signing_key:
149
149
  specification_version: 4
150
150
  summary: Provides an adaptor between async-http and faraday.
data/Rakefile DELETED
@@ -1,71 +0,0 @@
1
- require "bundler/gem_tasks"
2
- require "rspec/core/rake_task"
3
-
4
- RSpec::Core::RakeTask.new(:test)
5
-
6
- task :default => :test
7
-
8
- task :server do
9
- require 'async/reactor'
10
- require 'async/http/server'
11
-
12
- app = lambda do |env|
13
- [200, {}, ["Hello World"]]
14
- end
15
-
16
- server = Async::HTTP::Server.new([
17
- Async::IO::Endpoint.tcp('127.0.0.1', 9294, reuse_port: true)
18
- ], app)
19
-
20
- Async::Reactor.run do
21
- server.run
22
- end
23
- end
24
-
25
- task :client do
26
- require 'async/reactor'
27
- require 'async/http/client'
28
-
29
- client = Async::HTTP::Client.new([
30
- Async::IO::Endpoint.tcp('127.0.0.1', 9294, reuse_port: true)
31
- ])
32
-
33
- Async::Reactor.run do
34
- response = client.get("/")
35
-
36
- puts response.inspect
37
- end
38
- end
39
-
40
- task :wrk do
41
- require 'async/reactor'
42
- require 'async/http/server'
43
-
44
- app = lambda do |env|
45
- [200, {}, ["Hello World"]]
46
- end
47
-
48
- server = Async::HTTP::Server.new([
49
- Async::IO::Endpoint.tcp('127.0.0.1', 9294, reuse_port: true)
50
- ], app)
51
-
52
- process_count = Etc.nprocessors
53
-
54
- pids = process_count.times.collect do
55
- fork do
56
- Async::Reactor.run do
57
- server.run
58
- end
59
- end
60
- end
61
-
62
- url = "http://127.0.0.1:9294/"
63
-
64
- connections = process_count
65
- system("wrk", "-c", connections.to_s, "-d", "2", "-t", connections.to_s, url)
66
-
67
- pids.each do |pid|
68
- Process.kill(:KILL, pid)
69
- Process.wait pid
70
- end
71
- end