elementary-rpc 2.1.1.35 → 2.1.1.37
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 +8 -8
- data/README.md +12 -0
- data/lib/elementary/transport/http.rb +13 -0
- data/spec/transport/http_spec.rb +26 -0
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
!binary "U0hBMQ==":
|
|
3
3
|
metadata.gz: !binary |-
|
|
4
|
-
|
|
4
|
+
YTY3NTY0NGQwOTgxZmJlM2U2ZWMzMDg3NTY5OThhMmI0NTQzZjU3Mg==
|
|
5
5
|
data.tar.gz: !binary |-
|
|
6
|
-
|
|
6
|
+
YzlmMTdmMWM5ZDFhMzc4NWM2MDY5MTNkZDYyY2YzNGE4YmUzZjk4MQ==
|
|
7
7
|
SHA512:
|
|
8
8
|
metadata.gz: !binary |-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
MDZiMTlhZTNjNzMxNjIxODViZjEzMmQ3MDZiZDRhNTMwZDcxNjdiNTYyYjJh
|
|
10
|
+
ZTllYWJmNzQ2MTVjY2YyYTQ2ODQwM2UxOTQ3N2Q1NTVjYzU5MjU1MGIyZmIw
|
|
11
|
+
Zjc3Zjc0YzA4MmQxMDNiMmRjZTI3NWIwYmE0MjgwNzdlNjU1MGM=
|
|
12
12
|
data.tar.gz: !binary |-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
MzkwMTc1MjJkNDZiMWJlNzVjNjZiOTMzYzJjZjE1NjU1MzFjZWE2MjNiMzg0
|
|
14
|
+
ZjU4NmU5YjA3ZWNhYTE2NTdhNWNkMzAyZTY5MjQwZDBlMDRjZTYzMTEwMzZi
|
|
15
|
+
OWFmMThmMWU1YmU0YjU0YTIxMDAzN2Y3MDY1ZDEyZmEyMDdjYWE=
|
data/README.md
CHANGED
|
@@ -54,6 +54,18 @@ def connection
|
|
|
54
54
|
@connection = Elementary::Connection.new(Echoserv::Simple,
|
|
55
55
|
:hosts => hosts)
|
|
56
56
|
end
|
|
57
|
+
# We can also use existing Faraday middleware, since our HTTP transport is built
|
|
58
|
+
# on Faraday:
|
|
59
|
+
c = Elementary::Connection.new(Echoserv::Simple,
|
|
60
|
+
:hosts => hosts,
|
|
61
|
+
:transport_options => {
|
|
62
|
+
:faraday_middleware => [
|
|
63
|
+
[ FaradayMiddleware::FollowRedirects, :limit => 2 ]
|
|
64
|
+
]
|
|
65
|
+
})
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
|
|
57
69
|
# Create a Protobuf message to send over RPC
|
|
58
70
|
msg = Echoserv::String.new(:data => str)
|
|
59
71
|
|
|
@@ -48,14 +48,27 @@ module Elementary
|
|
|
48
48
|
def client
|
|
49
49
|
return @client if @client
|
|
50
50
|
|
|
51
|
+
faraday_middleware = @options.delete(:faraday_middleware) || []
|
|
51
52
|
faraday_options = @options.merge({:url => host_url})
|
|
52
53
|
logging = faraday_options.delete(:logging)
|
|
53
54
|
logger = faraday_options.delete(:logger)
|
|
55
|
+
|
|
54
56
|
@client = Faraday.new(faraday_options) do |f|
|
|
55
57
|
f.request :raise_on_status
|
|
56
58
|
f.response :logger, logger if logging
|
|
57
59
|
f.adapter :net_http_persistent
|
|
58
60
|
end
|
|
61
|
+
|
|
62
|
+
# Adapters aren't middleware, so we have to pop the adapter off before
|
|
63
|
+
# we insert new middleware. See:
|
|
64
|
+
# https://github.com/lostisland/faraday/issues/375,
|
|
65
|
+
# https://github.com/lostisland/faraday/issues/47
|
|
66
|
+
adapter = @client.builder.handlers.pop
|
|
67
|
+
faraday_middleware.each do |klass, *args|
|
|
68
|
+
@client.use klass, *args
|
|
69
|
+
end
|
|
70
|
+
@client.builder.handlers << adapter
|
|
71
|
+
|
|
59
72
|
return @client
|
|
60
73
|
end
|
|
61
74
|
end
|
data/spec/transport/http_spec.rb
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
require 'elementary/transport/http'
|
|
3
3
|
|
|
4
|
+
class FakeMiddleware1 ; end
|
|
5
|
+
class FakeMiddleware2 ; end
|
|
6
|
+
|
|
4
7
|
describe Elementary::Transport::HTTP do
|
|
5
8
|
let(:hosts) { [] }
|
|
6
9
|
let(:opts) { {} }
|
|
@@ -70,5 +73,28 @@ describe Elementary::Transport::HTTP do
|
|
|
70
73
|
expect(client).to be_instance_of Faraday::Connection
|
|
71
74
|
end
|
|
72
75
|
end
|
|
76
|
+
|
|
77
|
+
context 'with faraday middleware passed to the initializer' do
|
|
78
|
+
let(:opts) do
|
|
79
|
+
{
|
|
80
|
+
:faraday_middleware => [
|
|
81
|
+
[ FakeMiddleware1, { :middleware_level => 1} ],
|
|
82
|
+
[ FakeMiddleware2, { :middleware_level => 2} ]
|
|
83
|
+
]
|
|
84
|
+
}
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
it 'should use those middlewares' do
|
|
88
|
+
expect(client.builder.handlers).to include(FakeMiddleware1)
|
|
89
|
+
expect(client.builder.handlers).to include(FakeMiddleware2)
|
|
90
|
+
middleware_opts = client.builder.handlers.map do |h|
|
|
91
|
+
h.instance_variable_get(:@args)
|
|
92
|
+
end
|
|
93
|
+
expect(middleware_opts).to include([{ :middleware_level => 1 }])
|
|
94
|
+
expect(middleware_opts).to include([{ :middleware_level => 2 }])
|
|
95
|
+
|
|
96
|
+
expect(client).to be_instance_of Faraday::Connection
|
|
97
|
+
end
|
|
98
|
+
end
|
|
73
99
|
end
|
|
74
100
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: elementary-rpc
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.1.1.
|
|
4
|
+
version: 2.1.1.37
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- R. Tyler Croy
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2015-04-
|
|
11
|
+
date: 2015-04-17 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|