protobuffy 3.5.1 → 3.6.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/.travis.yml +16 -7
- data/lib/protobuf/rpc/env.rb +1 -0
- data/lib/protobuf/rpc/server.rb +4 -2
- data/lib/protobuf/rpc/servers/http/server.rb +1 -1
- data/lib/protobuf/version.rb +1 -1
- data/protobuffy.gemspec +9 -3
- data/spec/lib/protobuf/rpc/servers/http/server_spec.rb +16 -1
- metadata +27 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5bdff6c7c5855a0e038787f254471e5024deb0ed
|
4
|
+
data.tar.gz: dfa56251758baed600cd8576c47012b7d7e8d698
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 15411df49fdb161491e6e4e746325eb5c735ffdb00f0057d9b0084dea4011f2a890b819f8ec232b78230616398d3b8134432cd6ec6be5215a8c6a60925d804a5
|
7
|
+
data.tar.gz: e66a6f427327a47a0804a5f6faa754f36962abf92233514b56b565ed01f594a797d418c2f4389c91a8859e9bf5809a4c053594185963eaef150db25460193847
|
data/.travis.yml
CHANGED
@@ -1,12 +1,21 @@
|
|
1
1
|
language: ruby
|
2
2
|
rvm:
|
3
|
-
|
4
|
-
|
5
|
-
|
3
|
+
- 1.9.3
|
4
|
+
- 2.3.1
|
5
|
+
before_install:
|
6
|
+
- gem install bundler
|
7
|
+
script: NO_COMPILE_TEST_PROTOS=1 bundle _1.12.5_ exec rake spec/lib
|
6
8
|
notifications:
|
7
9
|
webhooks:
|
8
10
|
urls:
|
9
|
-
|
10
|
-
on_success: change
|
11
|
-
on_failure: always
|
12
|
-
on_start: false
|
11
|
+
- https://webhooks.gitter.im/e/51a956bcd2b1854d6756
|
12
|
+
on_success: change
|
13
|
+
on_failure: always
|
14
|
+
on_start: false
|
15
|
+
deploy:
|
16
|
+
provider: rubygems
|
17
|
+
api_key:
|
18
|
+
secure: iQ9JnUKw2CaOGUSR2dSYQ6z3Kp55GkZ0s5ZYq5EQ2KW94hJh1Mn7t3hUnga7IW569lGQyjnWziLRW0GAVxu3q+RrT2OwZJYB/di39kv1IJTQpXbFI7bm/AvbYba2t3mFgMLpPGEmxemyAQ1AigbEu/5V5DssfF6Qkh6jiMuphaY=
|
19
|
+
gem: protobuffy
|
20
|
+
on:
|
21
|
+
repo: lookout/protobuffy
|
data/lib/protobuf/rpc/env.rb
CHANGED
data/lib/protobuf/rpc/server.rb
CHANGED
@@ -20,10 +20,12 @@ module Protobuf
|
|
20
20
|
|
21
21
|
# Invoke the service method dictated by the proto wrapper request object
|
22
22
|
#
|
23
|
-
def handle_request(request_data)
|
23
|
+
def handle_request(request_data, parent_env = nil)
|
24
24
|
# Create an env object that holds different parts of the environment and
|
25
25
|
# is available to all of the middlewares
|
26
|
-
env = Env.new('encoded_request' => request_data,
|
26
|
+
env = Env.new('encoded_request' => request_data,
|
27
|
+
'log_signature' => log_signature,
|
28
|
+
'parent_env' => parent_env)
|
27
29
|
|
28
30
|
# Invoke the middleware stack, the last of which is the service dispatcher
|
29
31
|
env = Rpc.middleware.call(env)
|
@@ -56,7 +56,7 @@ module Protobuf
|
|
56
56
|
encoded_request = rpc_request.encode()
|
57
57
|
|
58
58
|
begin
|
59
|
-
encoded_response = handle_request(encoded_request)
|
59
|
+
encoded_response = handle_request(encoded_request, env)
|
60
60
|
rescue Exception => e
|
61
61
|
return protobuf_http_response 500,
|
62
62
|
:error => "Handle request failed: #{e.to_s}",
|
data/lib/protobuf/version.rb
CHANGED
data/protobuffy.gemspec
CHANGED
@@ -19,12 +19,18 @@ require "protobuf/version"
|
|
19
19
|
s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
|
20
20
|
s.require_paths = ["lib"]
|
21
21
|
|
22
|
-
|
22
|
+
if RUBY_VERSION =~ /^2/
|
23
|
+
s.add_dependency 'activesupport'
|
24
|
+
else
|
25
|
+
s.add_dependency 'activesupport', '< 5'
|
26
|
+
end
|
27
|
+
|
23
28
|
s.add_dependency 'middleware'
|
24
|
-
s.add_dependency 'multi_json'
|
29
|
+
s.add_dependency 'multi_json', '~> 1.0'
|
25
30
|
s.add_dependency 'thor'
|
31
|
+
s.add_dependency 'json', '< 2.0'
|
26
32
|
|
27
|
-
s.add_development_dependency 'rack'
|
33
|
+
s.add_development_dependency 'rack', '~> 1.0'
|
28
34
|
s.add_development_dependency 'faraday'
|
29
35
|
s.add_development_dependency 'ffi-rzmq'
|
30
36
|
s.add_development_dependency 'pry-nav'
|
@@ -11,11 +11,14 @@ module ReverseModule
|
|
11
11
|
end
|
12
12
|
class ReverseResponse < ::Protobuf::Message
|
13
13
|
required :string, :reversed, 1
|
14
|
+
optional :string, :some_header, 2
|
14
15
|
end
|
15
16
|
class ReverseService < ::Protobuf::Rpc::Service
|
16
17
|
rpc :reverse, ReverseRequest, ReverseResponse
|
17
18
|
def reverse
|
18
|
-
respond_with :reversed => request.input.reverse
|
19
|
+
respond_with :reversed => request.input.reverse,
|
20
|
+
:some_reversed_header => env.parent_env.has_key?('X-SOME-HEADER') ?
|
21
|
+
env.parent_env['X-SOME-HEADER'].reverse : nil
|
19
22
|
end
|
20
23
|
end
|
21
24
|
end
|
@@ -38,6 +41,18 @@ describe Protobuf::Rpc::Http::Server do
|
|
38
41
|
response.body.should eq ReverseModule::ReverseResponse.new(:reversed => "hello world".reverse).encode()
|
39
42
|
end
|
40
43
|
|
44
|
+
it 'should return the correct response for ReverseModule::ReverseService.reverse when some header is passed' do
|
45
|
+
response = client.post "/ReverseModule%3A%3AReverseService/reverse",
|
46
|
+
:input => ReverseModule::ReverseRequest.new(:input => "hello world").encode(),
|
47
|
+
"X-SOME-HEADER" => "yes i am"
|
48
|
+
response.status.should eq 200
|
49
|
+
response.headers['content-type'].should eq "application/x-protobuf"
|
50
|
+
response.headers['x-protobuf-error'].should be_nil
|
51
|
+
response.headers['x-protobuf-error-reason'].should be_nil
|
52
|
+
response.body.should eq ReverseModule::ReverseResponse.new(:reversed => "hello world".reverse,
|
53
|
+
:some_reversed_header => "yes i am".reverse).encode()
|
54
|
+
end
|
55
|
+
|
41
56
|
it 'should return METHOD_NOT_FOUND for ReverseModule::ReverseService.bobloblaw' do
|
42
57
|
response = client.post "/ReverseModule%3A%3AReverseService/bobloblaw", :input => ReverseModule::ReverseRequest.new(:input => "hello world").encode()
|
43
58
|
response.status.should eq 404
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: protobuffy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- BJ Neilsen
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date:
|
15
|
+
date: 2016-08-19 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: activesupport
|
@@ -20,14 +20,14 @@ dependencies:
|
|
20
20
|
requirements:
|
21
21
|
- - ">="
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version: '
|
23
|
+
version: '0'
|
24
24
|
type: :runtime
|
25
25
|
prerelease: false
|
26
26
|
version_requirements: !ruby/object:Gem::Requirement
|
27
27
|
requirements:
|
28
28
|
- - ">="
|
29
29
|
- !ruby/object:Gem::Version
|
30
|
-
version: '
|
30
|
+
version: '0'
|
31
31
|
- !ruby/object:Gem::Dependency
|
32
32
|
name: middleware
|
33
33
|
requirement: !ruby/object:Gem::Requirement
|
@@ -46,16 +46,16 @@ dependencies:
|
|
46
46
|
name: multi_json
|
47
47
|
requirement: !ruby/object:Gem::Requirement
|
48
48
|
requirements:
|
49
|
-
- - "
|
49
|
+
- - "~>"
|
50
50
|
- !ruby/object:Gem::Version
|
51
|
-
version: '0'
|
51
|
+
version: '1.0'
|
52
52
|
type: :runtime
|
53
53
|
prerelease: false
|
54
54
|
version_requirements: !ruby/object:Gem::Requirement
|
55
55
|
requirements:
|
56
|
-
- - "
|
56
|
+
- - "~>"
|
57
57
|
- !ruby/object:Gem::Version
|
58
|
-
version: '0'
|
58
|
+
version: '1.0'
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
60
|
name: thor
|
61
61
|
requirement: !ruby/object:Gem::Requirement
|
@@ -70,20 +70,34 @@ dependencies:
|
|
70
70
|
- - ">="
|
71
71
|
- !ruby/object:Gem::Version
|
72
72
|
version: '0'
|
73
|
+
- !ruby/object:Gem::Dependency
|
74
|
+
name: json
|
75
|
+
requirement: !ruby/object:Gem::Requirement
|
76
|
+
requirements:
|
77
|
+
- - "<"
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: '2.0'
|
80
|
+
type: :runtime
|
81
|
+
prerelease: false
|
82
|
+
version_requirements: !ruby/object:Gem::Requirement
|
83
|
+
requirements:
|
84
|
+
- - "<"
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: '2.0'
|
73
87
|
- !ruby/object:Gem::Dependency
|
74
88
|
name: rack
|
75
89
|
requirement: !ruby/object:Gem::Requirement
|
76
90
|
requirements:
|
77
|
-
- - "
|
91
|
+
- - "~>"
|
78
92
|
- !ruby/object:Gem::Version
|
79
|
-
version: '0'
|
93
|
+
version: '1.0'
|
80
94
|
type: :development
|
81
95
|
prerelease: false
|
82
96
|
version_requirements: !ruby/object:Gem::Requirement
|
83
97
|
requirements:
|
84
|
-
- - "
|
98
|
+
- - "~>"
|
85
99
|
- !ruby/object:Gem::Version
|
86
|
-
version: '0'
|
100
|
+
version: '1.0'
|
87
101
|
- !ruby/object:Gem::Dependency
|
88
102
|
name: faraday
|
89
103
|
requirement: !ruby/object:Gem::Requirement
|
@@ -436,9 +450,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
436
450
|
version: '0'
|
437
451
|
requirements: []
|
438
452
|
rubyforge_project:
|
439
|
-
rubygems_version: 2.
|
453
|
+
rubygems_version: 2.6.6
|
440
454
|
signing_key:
|
441
455
|
specification_version: 4
|
442
456
|
summary: Google Protocol Buffers serialization and RPC implementation for Ruby.
|
443
457
|
test_files: []
|
444
|
-
has_rdoc:
|