protobuf-rpc-register 0.17.0 → 0.19.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: 95025c1649fcad777029cc0184f470d75238c7bf
4
- data.tar.gz: 5bc6a4ce1cf7ffa4524e04aedb305e2b4aa83c62
3
+ metadata.gz: 362470f8276803cafeb830ff8ddea959aa03f238
4
+ data.tar.gz: b3a77da275250ae14de8212ed98738c89d5725d4
5
5
  SHA512:
6
- metadata.gz: 2161642f5fb2ed13926cd182e682c87d9e3b6427d7b9b0dfc48143fbebeb27b2d157b3d11b79da90cf35047629c975ee5f0016655b31d6048fcdf233a2e0f76c
7
- data.tar.gz: 5299cd9bef63b312236c16c86625acd1ae63e72d5053232015314f7dfee73065fd35cc59dafa2acc483a699a29647ffb51a22fc82c85909fe958a515b017558f
6
+ metadata.gz: 194cab84f899393fbc40cf5579d5e0c339d32fc706dd4a2d6ad97ad6ea7e76c70e61b3344c255557f9e5134bde72aece05d4289b7f35245753a22d3c294e2059
7
+ data.tar.gz: 98c27617e08b54cf7e6a969584fd01b6e89471133ea6ea898da2b5838fa49ec5c4e68334392fda5b05a5d537b65992515d32b6350361059fea93c317b781667b
@@ -16,7 +16,7 @@ module Protobuf
16
16
  @error_logger = Logger.new(stderr)
17
17
 
18
18
  names = self.class.name.split('::')
19
- @service = Object.const_get([names[0..-3], 'Services', names[-1]].flatten.join('::'))
19
+ @service = Object.const_get([names[0..-3], 'Services', names[-1]].flatten.join('::'))
20
20
  end
21
21
 
22
22
  def internal_client
@@ -60,16 +60,18 @@ module Protobuf
60
60
 
61
61
  def define_error_class(res)
62
62
  module_name = (@namespace || 'Protobuf').camelize
63
- m = Object.const_defined?(module_name, false) ? Object.const_get(module_name, false) : Object.const_set(module_name, Module.new)
64
- m.const_defined?(:Rpc, false) ? m.const_get(:Rpc, false) : m.const_set(:Rpc, Module.new)
65
-
66
- if m.const_defined?(res.error_class, false)
67
- m.const_get(res.error_class, false)
63
+ c = if res.error_class.start_with?("Protobuf::Rpc") && module_name == "Protobuf"
64
+ res.error_class
65
+ else
66
+ "#{module_name}::Rpc::#{res.error_class}"
67
+ end
68
+
69
+ if c.safe_constantize
70
+ c.safe_constantize
68
71
  else
69
- module_name = res.error_class.deconstantize
70
72
  class_name = res.error_class.demodulize
71
- base_module = m::Rpc
72
- module_name.split('::').each do |m|
73
+ base_module = Object
74
+ c.split('::')[0..-2].each do |m|
73
75
  base_module.const_defined?(m, false) || base_module.const_set(m, Module.new)
74
76
  base_module = base_module.const_get(m, false)
75
77
  end
@@ -79,23 +81,19 @@ module Protobuf
79
81
  rescue LoadError
80
82
  raise NameError.new("uninitialized constant #{res.error_class}", res.error_class)
81
83
  end
82
- if base_module.const_defined?(class_name, false)
83
- base_module.const_get(class_name, false)
84
- else
85
- base_module.const_set(class_name, Class.new(error_superclass) do
86
- def initialize(message = nil)
87
- @message = message
88
- end
89
-
90
- def inspect
91
- "#{self.class}: #{@message}"
92
- end
93
-
94
- def message
95
- @message
96
- end
97
- end)
98
- end
84
+ base_module.const_set(class_name, Class.new(error_superclass) do
85
+ def initialize(message = nil)
86
+ @message = message
87
+ end
88
+
89
+ def inspect
90
+ "#{self.class}: #{@message}"
91
+ end
92
+
93
+ def message
94
+ @message
95
+ end
96
+ end)
99
97
  end
100
98
  end
101
99
 
@@ -116,8 +114,8 @@ module Protobuf
116
114
  msg_class.new(*args)
117
115
  elsif args.first.respond_to?(:to_hash)
118
116
  ::Protobuf::Rpc::Messages::RpcCompressedMessage.new(response_body: args.first.to_hash.to_json,
119
- serializer: :JSON,
120
- compressed: false)
117
+ serializer: :JSON,
118
+ compressed: false)
121
119
  else
122
120
  raise ArgumentError, "#{args} should be be a Hash or Protobuf Message."
123
121
  end
@@ -0,0 +1,20 @@
1
+ require 'new_relic/agent/instrumentation/action_controller_subscriber'
2
+
3
+ DependencyDetection.defer do
4
+ @name = :active_interaction
5
+
6
+ depends_on do
7
+ defined?(ActiveInteraction) && defined?(ActiveInteraction::Base)
8
+ end
9
+
10
+ executes do
11
+ ::NewRelic::Agent.logger.info 'Installing ActiveInteraction instrumentation'
12
+ end
13
+
14
+ executes do
15
+ class ActiveInteraction::Base
16
+ include NewRelic::Agent::Instrumentation::ControllerInstrumentation
17
+ add_transaction_tracer :run
18
+ end
19
+ end
20
+ end
@@ -18,15 +18,6 @@ module Protobuf
18
18
  def include_attributes
19
19
  [].freeze
20
20
  end
21
-
22
- private
23
-
24
- def inherited(subclass)
25
- super
26
- require 'new_relic/agent'
27
- subclass.include ::NewRelic::Agent::Instrumentation::ControllerInstrumentation
28
- subclass.add_transaction_tracer :run
29
- end
30
21
  end
31
22
  end
32
23
  end
@@ -6,6 +6,7 @@ require 'protobuf/rpc/generator'
6
6
  require 'protobuf/rpc/clients/base'
7
7
  require 'protobuf/rpc/interactions/base'
8
8
  require 'protobuf/rpc/services/base'
9
+ require 'protobuf/rpc/serializer'
9
10
  require 'protobuf/rpc/messages/error'
10
11
  require 'protobuf/rpc/messages/rpc_compressed_message'
11
12
 
@@ -1,7 +1,7 @@
1
1
  module Protobuf
2
2
  module Rpc
3
3
  module Register
4
- VERSION = "0.17.0".freeze
4
+ VERSION = "0.19.0".freeze
5
5
  end
6
6
  end
7
7
  end
@@ -1,6 +1,3 @@
1
- require 'protobuf'
2
- require 'protobuf/rpc/serializer'
3
-
4
1
  module Protobuf
5
2
  module Rpc
6
3
  module Services
@@ -14,8 +11,6 @@ module Protobuf
14
11
  end
15
12
 
16
13
  def self.inherited(subclass)
17
- require 'new_relic/agent'
18
- subclass.include ::NewRelic::Agent::Instrumentation::ControllerInstrumentation
19
14
  subclass.inherit_rpcs!
20
15
  end
21
16
 
@@ -64,8 +59,6 @@ module Protobuf
64
59
 
65
60
  compress_with result
66
61
  end
67
-
68
- add_transaction_tracer method
69
62
  end
70
63
  end
71
64
  end
@@ -36,7 +36,6 @@ Gem::Specification.new do |spec|
36
36
  spec.add_development_dependency 'msgpack', "~> 0.5"
37
37
  spec.add_development_dependency 'multi_json', "~> 1.0"
38
38
  spec.add_development_dependency 'oj', "~> 2.0"
39
- spec.add_development_dependency 'newrelic_rpm'
40
39
 
41
40
  spec.add_runtime_dependency 'protobuf', '~> 3.5'
42
41
  spec.add_runtime_dependency 'active_interaction', '~> 3.0'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: protobuf-rpc-register
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.17.0
4
+ version: 0.19.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - scorix
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-06-20 00:00:00.000000000 Z
11
+ date: 2016-08-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -136,20 +136,6 @@ dependencies:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
138
  version: '2.0'
139
- - !ruby/object:Gem::Dependency
140
- name: newrelic_rpm
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - ">="
144
- - !ruby/object:Gem::Version
145
- version: '0'
146
- type: :development
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - ">="
151
- - !ruby/object:Gem::Version
152
- version: '0'
153
139
  - !ruby/object:Gem::Dependency
154
140
  name: protobuf
155
141
  requirement: !ruby/object:Gem::Requirement
@@ -196,6 +182,7 @@ files:
196
182
  - bin/setup
197
183
  - lib/protobuf/rpc/clients/base.rb
198
184
  - lib/protobuf/rpc/generator.rb
185
+ - lib/protobuf/rpc/interaction_instrumentation.rb
199
186
  - lib/protobuf/rpc/interactions/base.rb
200
187
  - lib/protobuf/rpc/messages/error.rb
201
188
  - lib/protobuf/rpc/messages/rpc_compressed_message.rb