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 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: