elementary-rpc 1.1.0 → 1.2.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 +4 -4
- data/Gemfile +1 -2
- data/README.md +4 -0
- data/elementary-rpc.gemspec +2 -1
- data/lib/elementary/connection.rb +3 -0
- data/lib/elementary/version.rb +1 -1
- data/spec/connection_spec.rb +34 -2
- metadata +18 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 56fcda60e0f593913eeafcab46d20825dd8e8e20
|
4
|
+
data.tar.gz: a75f8e552bde90fc53250b704107da1ed4ae07e7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ec48386473339fefb812d282caef334ca3d139f172b2e38c3fe0427e3241fc3666920168334c31a8b3ece8fa7eacf34d627ab9e37a7fd4fb52be908fbb264635
|
7
|
+
data.tar.gz: 199316aa44f9d82c1845f8cfc7cfc28062073c74c6c604b4b45d2f1f037a6e1db7629f7926e1958543f9b5c0ca112369897932075ee90cf919a8d938b7036ae9
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -88,3 +88,7 @@ TODO: Write usage instructions here
|
|
88
88
|
3. Commit your changes (`git commit -am 'Add some feature'`)
|
89
89
|
4. Push to the branch (`git push origin my-new-feature`)
|
90
90
|
5. Create a new Pull Request
|
91
|
+
|
92
|
+
### Testing
|
93
|
+
|
94
|
+
`bundle exec rpc_server start ./spec/support/simpleservice.rb -p 8000 --http`
|
data/elementary-rpc.gemspec
CHANGED
@@ -21,8 +21,9 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.add_development_dependency "bundler", "~> 1.6"
|
22
22
|
spec.add_development_dependency "rake"
|
23
23
|
|
24
|
-
spec.add_dependency 'concurrent-ruby', '~> 0.
|
24
|
+
spec.add_dependency 'concurrent-ruby', '~> 0.7.0'
|
25
25
|
spec.add_dependency 'faraday', '~> 0.9.0'
|
26
26
|
spec.add_dependency 'net-http-persistent', '~> 2.9.4'
|
27
27
|
spec.add_dependency 'lookout-statsd', '~> 0.9.0'
|
28
|
+
spec.add_dependency 'hashie'
|
28
29
|
end
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'protobuf'
|
3
|
+
require 'hashie'
|
3
4
|
|
4
5
|
require 'elementary/middleware'
|
5
6
|
require 'elementary/transport'
|
@@ -22,6 +23,8 @@ module Elementary
|
|
22
23
|
# will be passed down to the transport layer. This will depend on what
|
23
24
|
# options are available by the underlying transport
|
24
25
|
def initialize(service, opts={})
|
26
|
+
opts = Hashie::Mash.new(opts)
|
27
|
+
|
25
28
|
if service.nil? || service.superclass != Protobuf::Rpc::Service
|
26
29
|
raise ArgumentError,
|
27
30
|
"Cannot construct an Elementary::Connection with `#{service}` (#{service.class})"
|
data/lib/elementary/version.rb
CHANGED
data/spec/connection_spec.rb
CHANGED
@@ -21,6 +21,38 @@ describe Elementary::Connection do
|
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
24
|
+
context 'with an opts hash' do
|
25
|
+
subject(:connection) { described_class.new(Elementary::Rspec::Simple, opts) }
|
26
|
+
|
27
|
+
context 'with symbolic keys' do
|
28
|
+
let(:opts) { { :hosts => [{:host => 'foo', :prefix => '/bar'}] } }
|
29
|
+
|
30
|
+
it { should be_instance_of described_class }
|
31
|
+
|
32
|
+
it 'should have one host, with a host key and a prefix key' do
|
33
|
+
hosts = connection.instance_variable_get(:@hosts)
|
34
|
+
|
35
|
+
expect(hosts.size).to be 1
|
36
|
+
expect(hosts.first[:host]).to eql opts[:hosts].first[:host]
|
37
|
+
expect(hosts.first[:prefix]).to eql opts[:hosts].first[:prefix]
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
context 'with string keys' do
|
42
|
+
let(:opts) { { 'hosts' => [{'host' => 'foo', 'prefix' => '/bar'}] } }
|
43
|
+
|
44
|
+
it { should be_instance_of described_class }
|
45
|
+
|
46
|
+
it 'should have one host, with a host key and a prefix key' do
|
47
|
+
hosts = connection.instance_variable_get(:@hosts)
|
48
|
+
|
49
|
+
expect(hosts.size).to be 1
|
50
|
+
expect(hosts.first[:host]).to eql opts['hosts'].first['host']
|
51
|
+
expect(hosts.first[:prefix]).to eql opts['hosts'].first['prefix']
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
24
56
|
context 'with a simple RPC service' do
|
25
57
|
let(:opts) { {} }
|
26
58
|
let(:connection) do
|
@@ -36,10 +68,10 @@ describe Elementary::Connection do
|
|
36
68
|
context 'with transport_options' do
|
37
69
|
let(:opts) { {:transport_options => transport_opts} }
|
38
70
|
let(:transport_opts) do
|
39
|
-
{
|
71
|
+
Hashie::Mash.new({
|
40
72
|
:timeout => 3,
|
41
73
|
:open_timeout => 1,
|
42
|
-
}
|
74
|
+
})
|
43
75
|
end
|
44
76
|
|
45
77
|
it 'should pass request_options to the transport' do
|
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: 1.
|
4
|
+
version: 1.2.0
|
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: 2014-
|
11
|
+
date: 2014-10-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -44,14 +44,14 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 0.
|
47
|
+
version: 0.7.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: 0.
|
54
|
+
version: 0.7.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: faraday
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -94,6 +94,20 @@ dependencies:
|
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: 0.9.0
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: hashie
|
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'
|
97
111
|
description: BLANK
|
98
112
|
email:
|
99
113
|
- tyler@monkeypox.org
|