restify 1.2.1 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/CHANGELOG.md +5 -0
- data/README.md +3 -3
- data/lib/restify/adapter/typhoeus.rb +21 -22
- data/lib/restify/global.rb +2 -2
- data/lib/restify/version.rb +2 -2
- metadata +22 -36
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 83609cc7ae78151c15357d2400a61212e9c1a783a56d9eb2f8bb02b6e678192c
|
4
|
+
data.tar.gz: 8f95a040bf308a60be58985567fca717dff5979c418d19ad0d41d4ae62c24346
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0771f95f1e405ac45c00585db79575bb927e9a860dd26459401b21f0d53947ec04ccb60d4180ef44eb79a4abc05f7707b29e667cbe9af967fd6829a5a0287069
|
7
|
+
data.tar.gz: fbda92689823e54622f27dbf17f98d12048a721780ccbabb51528d893a8dfc73359807b3d3fdb58a7ec1d43561eb95df0d524334566e2672106df90882981861
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Restify
|
2
2
|
|
3
|
-
Restify is an experimental hypermedia REST client that
|
3
|
+
Restify is an experimental hypermedia REST client that does parallel, concurrent, keep-alive and pipelined requests by default.
|
4
4
|
|
5
5
|
Restify scans Link headers and returned resource for links and relations to other resources, represented as RFC6570 URI Templates, and exposes those to the developer.
|
6
6
|
|
@@ -10,11 +10,11 @@ Restify is build upon the following libraries:
|
|
10
10
|
|
11
11
|
* [concurrent-ruby](https://github.com/ruby-concurrency/concurrent-ruby)
|
12
12
|
* [addressable](https://github.com/sporkmonger/addressable)
|
13
|
-
* [
|
13
|
+
* [typhoeus](https://github.com/typhoeus/typhoeus)
|
14
14
|
|
15
15
|
It has optional HTTP adapters using:
|
16
16
|
|
17
|
-
* [
|
17
|
+
* [em-http-request](https://github.com/igrigorik/em-http-request)
|
18
18
|
|
19
19
|
The HTTP adapters are mostly run in a background thread and may not survive mid-application forks.
|
20
20
|
|
@@ -13,9 +13,9 @@ module Restify
|
|
13
13
|
}.freeze
|
14
14
|
|
15
15
|
def initialize(sync: false, **options)
|
16
|
-
@queue = Queue.new
|
17
16
|
@sync = sync
|
18
17
|
@hydra = ::Typhoeus::Hydra.new(pipelining: true, **options)
|
18
|
+
@mutex = Mutex.new
|
19
19
|
|
20
20
|
start unless sync?
|
21
21
|
end
|
@@ -24,17 +24,18 @@ module Restify
|
|
24
24
|
@sync
|
25
25
|
end
|
26
26
|
|
27
|
-
def
|
28
|
-
|
29
|
-
@hydra.queue convert
|
30
|
-
@hydra.run
|
31
|
-
else
|
32
|
-
@queue.push [request, writer]
|
27
|
+
def call_native(request, writer)
|
28
|
+
@mutex.synchronize do
|
29
|
+
@hydra.queue convert(request, writer)
|
33
30
|
end
|
31
|
+
|
32
|
+
sync? ? @hydra.run : start
|
34
33
|
end
|
35
34
|
|
36
|
-
def
|
37
|
-
|
35
|
+
def queued?
|
36
|
+
@mutex.synchronize do
|
37
|
+
@hydra.queued_requests.any?
|
38
|
+
end
|
38
39
|
end
|
39
40
|
|
40
41
|
private
|
@@ -46,14 +47,11 @@ module Restify
|
|
46
47
|
headers: DEFAULT_HEADERS.merge(request.headers),
|
47
48
|
body: request.body
|
48
49
|
|
49
|
-
req.on_complete
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
def handle(native_response, writer, request)
|
54
|
-
writer.fulfill convert_back(native_response, request)
|
50
|
+
req.on_complete do |response|
|
51
|
+
writer.fulfill convert_back(response, request)
|
52
|
+
end
|
55
53
|
|
56
|
-
|
54
|
+
req
|
57
55
|
end
|
58
56
|
|
59
57
|
def convert_back(response, request)
|
@@ -71,15 +69,16 @@ module Restify
|
|
71
69
|
end
|
72
70
|
end
|
73
71
|
|
74
|
-
# rubocop:disable Metrics/MethodLength
|
75
72
|
def start
|
76
|
-
|
73
|
+
thread.run
|
74
|
+
end
|
75
|
+
|
76
|
+
def thread
|
77
|
+
@thread ||= Thread.new do
|
77
78
|
loop do
|
78
79
|
begin
|
79
|
-
|
80
|
-
|
81
|
-
@hydra.run if @queue.empty?
|
82
|
-
end
|
80
|
+
Thread.stop unless queued?
|
81
|
+
@hydra.run
|
83
82
|
rescue StandardError => e
|
84
83
|
puts "#{self.class}: #{e.message}"
|
85
84
|
end
|
data/lib/restify/global.rb
CHANGED
data/lib/restify/version.rb
CHANGED
metadata
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: restify
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jan Graichen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-11-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: activesupport
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '0'
|
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: '
|
26
|
+
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: addressable
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -39,75 +39,61 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '2.3'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: concurrent-ruby
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '1.0'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '1.0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: hashie
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '3.3'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - "
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
68
|
+
version: '3.3'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: rack
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
75
|
+
version: '0'
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
82
|
+
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
84
|
+
name: typhoeus
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
87
|
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: 1.
|
89
|
+
version: '1.3'
|
90
90
|
type: :runtime
|
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: 1.
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
|
-
name: activesupport
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
100
|
-
requirements:
|
101
|
-
- - ">="
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: '0'
|
104
|
-
type: :runtime
|
105
|
-
prerelease: false
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
requirements:
|
108
|
-
- - ">="
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: '0'
|
96
|
+
version: '1.3'
|
111
97
|
- !ruby/object:Gem::Dependency
|
112
98
|
name: bundler
|
113
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -185,7 +171,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
185
171
|
version: '0'
|
186
172
|
requirements: []
|
187
173
|
rubyforge_project:
|
188
|
-
rubygems_version: 2.
|
174
|
+
rubygems_version: 2.7.1
|
189
175
|
signing_key:
|
190
176
|
specification_version: 4
|
191
177
|
summary: An experimental hypermedia REST client.
|