protobuf-nats 0.3.0 → 0.3.1
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/README.md +5 -1
- data/lib/protobuf/nats.rb +3 -1
- data/lib/protobuf/nats/config.rb +16 -2
- data/lib/protobuf/nats/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6d293e4b986f3f85b53bfa414a672e80b15c9ff3
|
4
|
+
data.tar.gz: e910a6511d0539b811948193466fa0e9789297b7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 27ef6bb9f6c23dce96a92848545eef7309f953c3e424e89086fc1e6cf1841fca5f11b9cfb518b53fb7f40051a780cdbe89ee262cd1bfe03c92ab922043befe9d
|
7
|
+
data.tar.gz: 7316ec766c74fc63b2c5c3f09fd046bacb64a63333e5a36720476368ecd8dd58fcaf93a59eecb2ebc3f5aea2ab87c4ee42d514459228c8cf5f521696811f455d
|
data/README.md
CHANGED
@@ -38,11 +38,13 @@ You can also use the following environment variables to tune parameters:
|
|
38
38
|
### YAML Config
|
39
39
|
|
40
40
|
The client and server are configured via environment variables defined in the `pure-ruby-nats` gem. However, there are a
|
41
|
-
few params which cannot be set: `servers`, `uses_tls` and `connect_timeout`, so those my be defined in a yml file.
|
41
|
+
few params which cannot be set: `servers`, `uses_tls`, `subscription_key_replacements`, and `connect_timeout`, so those my be defined in a yml file.
|
42
42
|
|
43
43
|
The library will automatically look for a file with a relative path of `config/protobuf_nats.yml`, but you may override
|
44
44
|
this by specifying a different file via the `PROTOBUF_NATS_CONFIG_PATH` env variable.
|
45
45
|
|
46
|
+
The `subscription_key_replacements` feature is something we have found useful for local testing, but it is subject to breaking changes.
|
47
|
+
|
46
48
|
An example config looks like this:
|
47
49
|
```
|
48
50
|
# Stored at config/protobuf_nats.yml
|
@@ -58,6 +60,8 @@ An example config looks like this:
|
|
58
60
|
tls_client_key: "/path/to/client-key.pem"
|
59
61
|
tls_ca_cert: "/path/to/ca.pem"
|
60
62
|
connect_timeout: 2
|
63
|
+
subscription_key_replacements:
|
64
|
+
- "original_service": "replacement_service"
|
61
65
|
```
|
62
66
|
|
63
67
|
## Usage
|
data/lib/protobuf/nats.rb
CHANGED
@@ -45,7 +45,9 @@ module Protobuf
|
|
45
45
|
def self.subscription_key(service_klass, service_method)
|
46
46
|
service_class_name = service_klass.name.underscore.gsub("/", ".")
|
47
47
|
service_method_name = service_method.to_s.underscore
|
48
|
-
|
48
|
+
|
49
|
+
subscription_key = "rpc.#{service_class_name}.#{service_method_name}"
|
50
|
+
subscription_key = config.make_subscription_key_replacements(subscription_key)
|
49
51
|
end
|
50
52
|
|
51
53
|
def self.start_client_nats_connection
|
data/lib/protobuf/nats/config.rb
CHANGED
@@ -4,7 +4,7 @@ require "yaml"
|
|
4
4
|
module Protobuf
|
5
5
|
module Nats
|
6
6
|
class Config
|
7
|
-
attr_accessor :uses_tls, :servers, :connect_timeout, :tls_client_cert, :tls_client_key, :tls_ca_cert, :max_reconnect_attempts
|
7
|
+
attr_accessor :uses_tls, :servers, :connect_timeout, :tls_client_cert, :tls_client_key, :tls_ca_cert, :max_reconnect_attempts, :subscription_key_replacements
|
8
8
|
|
9
9
|
CONFIG_MUTEX = ::Mutex.new
|
10
10
|
|
@@ -16,6 +16,7 @@ module Protobuf
|
|
16
16
|
:tls_client_key => nil,
|
17
17
|
:tls_ca_cert => nil,
|
18
18
|
:uses_tls => false,
|
19
|
+
:subscription_key_replacements => [],
|
19
20
|
}.freeze
|
20
21
|
|
21
22
|
def initialize
|
@@ -60,7 +61,8 @@ module Protobuf
|
|
60
61
|
tls_client_cert: tls_client_cert,
|
61
62
|
tls_client_key: tls_client_key,
|
62
63
|
tls_ca_cert: tls_ca_cert,
|
63
|
-
connect_timeout: connect_timeout
|
64
|
+
connect_timeout: connect_timeout,
|
65
|
+
subscription_key_replacements: subscription_key_replacements,
|
64
66
|
}
|
65
67
|
options[:tls] = {:context => new_tls_context} if uses_tls
|
66
68
|
options
|
@@ -75,6 +77,18 @@ module Protobuf
|
|
75
77
|
tls_context
|
76
78
|
end
|
77
79
|
|
80
|
+
def make_subscription_key_replacements(subscription_key)
|
81
|
+
subscription_key_replacements.each do |replacement|
|
82
|
+
match = replacement.keys.first
|
83
|
+
replacement = replacement[match]
|
84
|
+
|
85
|
+
if subscription_key.include?(match)
|
86
|
+
return subscription_key.gsub(match, replacement)
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
subscription_key
|
91
|
+
end
|
78
92
|
end
|
79
93
|
end
|
80
94
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: protobuf-nats
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brandon Dewitt
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-04-
|
11
|
+
date: 2017-04-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: protobuf
|