protobuffy 3.5.1 → 3.6.0

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
  SHA1:
3
- metadata.gz: b6c1d5bfad6397559b237d7d382b86d38e52a5b4
4
- data.tar.gz: 8f09b82dec50f954eaf072c6ce27440188f4ebd2
3
+ metadata.gz: 5bdff6c7c5855a0e038787f254471e5024deb0ed
4
+ data.tar.gz: dfa56251758baed600cd8576c47012b7d7e8d698
5
5
  SHA512:
6
- metadata.gz: 87a1c33ee0c8f104fb3165458379f22994a2d82cdd0f81ddc15604992f74c3176361c449c56e267a68f8e018b3ab0abc9c603074fe96319c8205e7c36c7007f9
7
- data.tar.gz: 7e1128579d172e3404f85442668e1090931110d0216bb4c2ae0f402031a4bcb81fabaa9ed47739d67d438b9ad29e2c23822b6b20ca87f761e5de52d817d38389
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
- - "1.9.3"
4
- - "2.0.0"
5
- script: NO_COMPILE_TEST_PROTOS=1 bundle exec rake spec/lib
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
- - https://webhooks.gitter.im/e/51a956bcd2b1854d6756
10
- on_success: change # options: [always|never|change] default: always
11
- on_failure: always # options: [always|never|change] default: always
12
- on_start: false # default: 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
@@ -39,6 +39,7 @@ module Protobuf
39
39
  :encoded_response,
40
40
  :log_signature,
41
41
  :method_name,
42
+ :parent_env,
42
43
  :request,
43
44
  :request_type,
44
45
  :response,
@@ -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, 'log_signature' => log_signature)
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}",
@@ -1,3 +1,3 @@
1
1
  module Protobuf
2
- VERSION = '3.5.1'
2
+ VERSION = '3.6.0'
3
3
  end
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
- s.add_dependency 'activesupport', '>= 3.2'
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.5.1
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: 2015-06-29 00:00:00.000000000 Z
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: '3.2'
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: '3.2'
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.4.5
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: