stenotype 0.1.4 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -2
- data/Gemfile.lock +3 -3
- data/lib/stenotype/adapters/base.rb +14 -1
- data/lib/stenotype/adapters/google_cloud.rb +10 -0
- data/lib/stenotype/adapters/stdout_adapter.rb +7 -0
- data/lib/stenotype/at_exit.rb +8 -0
- data/lib/stenotype/event.rb +2 -2
- data/lib/stenotype/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 78f28a1322b09dc099de1351779e15e67247ad5010c907b0cf99efb05e9c3ca4
|
4
|
+
data.tar.gz: 949901992d1c976941ca306154f546292bbd7f0df0bcb21a27a4458daa0dcd59
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 18e3d0ea81fc68afbe99cf5da1569e2c87c1819c30430fcc1f23c23b6cb201767cf35885d7d2a643ac3bf284b8ee00d5e26644a08ab0ace902b863fff4f0527e
|
7
|
+
data.tar.gz: 63a868b627122e6c46f6b920b6b237f2fa7c88c1827ef7946e226868644a80e43a0c4c9a89e66dfec4909ca54bc53cc7b5c534bf8a9972621016521ffb1faeab
|
data/CHANGELOG.md
CHANGED
@@ -1,9 +1,15 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
-
*Release Date*: 2020/01/
|
3
|
+
*Release Date*: 2020/01/13
|
4
4
|
|
5
|
-
### 0.1.
|
5
|
+
### 0.1.5 2020/01/13
|
6
|
+
* In case `graceful_error_handling` is set to off raise a generic `Stenotype::Error` on any exception in order to intercept a single error type in the client code.
|
7
|
+
* Adds an `at_exit` hook to flush the async message queue when using the library in async mode.
|
8
|
+
|
9
|
+
### 0.1.4 2020/01/10
|
6
10
|
* Adds a new configuration option `graceful_error_handling` to suppress errors raised from the gem's internals yet logging the error to specified `config.logger`
|
11
|
+
|
12
|
+
### 0.1.3: 2020/01/10
|
7
13
|
* Adds a new configuration option `logger` to use during error handling
|
8
14
|
* Adds a new config option `Stenotype.config.enabled`. If the option is set to false then event is not going to be published. The option is `true` by default.
|
9
15
|
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
stenotype (0.1.
|
4
|
+
stenotype (0.1.3)
|
5
5
|
activesupport (>= 5.0.0)
|
6
6
|
google-cloud-pubsub (~> 1.0.0)
|
7
7
|
spicery (>= 0.19.0, < 1.0)
|
@@ -96,7 +96,7 @@ GEM
|
|
96
96
|
googleauth (~> 0.9)
|
97
97
|
grpc (~> 1.24)
|
98
98
|
rly (~> 0.2.3)
|
99
|
-
google-protobuf (3.11.1
|
99
|
+
google-protobuf (3.11.1)
|
100
100
|
googleapis-common-protos (1.3.9)
|
101
101
|
google-protobuf (~> 3.0)
|
102
102
|
googleapis-common-protos-types (~> 1.0)
|
@@ -110,7 +110,7 @@ GEM
|
|
110
110
|
multi_json (~> 1.11)
|
111
111
|
os (>= 0.9, < 2.0)
|
112
112
|
signet (~> 0.12)
|
113
|
-
grpc (1.25.0
|
113
|
+
grpc (1.25.0)
|
114
114
|
google-protobuf (~> 3.8)
|
115
115
|
googleapis-common-protos-types (~> 1.0)
|
116
116
|
grpc-google-iam-v1 (0.6.9)
|
@@ -35,12 +35,25 @@ module Stenotype
|
|
35
35
|
#
|
36
36
|
# This method is expected to be implemented by subclasses
|
37
37
|
# @abstract
|
38
|
-
# @raise
|
38
|
+
# @raise {NotImplementedError} unless implemented in a subclass
|
39
39
|
#
|
40
40
|
def publish(_event_data, **_additional_attrs)
|
41
41
|
raise NotImplementedError,
|
42
42
|
"#{self.class.name} must implement method #publish"
|
43
43
|
end
|
44
|
+
|
45
|
+
#
|
46
|
+
# This method is expected to be implemented by subclasses. In case async
|
47
|
+
# publisher is used the process might end before the async queue of
|
48
|
+
# messages is processed, so this method is going to be used in a
|
49
|
+
# `at_exit` hook to flush the queue.
|
50
|
+
# @abstract
|
51
|
+
# @raise {NotImplementedError} unless implemented in a subclass
|
52
|
+
#
|
53
|
+
def flush!
|
54
|
+
raise NotImplementedError,
|
55
|
+
"#{self.class.name} must implement method #flush"
|
56
|
+
end
|
44
57
|
end
|
45
58
|
end
|
46
59
|
end
|
@@ -56,6 +56,16 @@ module Stenotype
|
|
56
56
|
end
|
57
57
|
end
|
58
58
|
|
59
|
+
#
|
60
|
+
# Flushes the topic's async queue
|
61
|
+
#
|
62
|
+
def flush!
|
63
|
+
# a publisher might be uninitialized until the first event is published
|
64
|
+
return unless topic.async_publisher
|
65
|
+
|
66
|
+
topic.async_publisher.stop.wait!
|
67
|
+
end
|
68
|
+
|
59
69
|
private
|
60
70
|
|
61
71
|
def publish_sync(event_data, **additional_attrs)
|
data/lib/stenotype/event.rb
CHANGED
@@ -31,7 +31,7 @@ module Stenotype
|
|
31
31
|
#
|
32
32
|
Stenotype::Configuration.logger.error(error)
|
33
33
|
|
34
|
-
raise unless Stenotype.config.graceful_error_handling
|
34
|
+
raise Stenotype::Error unless Stenotype.config.graceful_error_handling
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
@@ -75,7 +75,7 @@ module Stenotype
|
|
75
75
|
#
|
76
76
|
Stenotype::Configuration.logger.error(error)
|
77
77
|
|
78
|
-
raise unless Stenotype.config.graceful_error_handling
|
78
|
+
raise Stenotype::Error unless Stenotype.config.graceful_error_handling
|
79
79
|
end
|
80
80
|
end
|
81
81
|
end
|
data/lib/stenotype/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stenotype
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Roman Kapitonov
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-01-
|
11
|
+
date: 2020-01-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -267,6 +267,7 @@ files:
|
|
267
267
|
- lib/stenotype/adapters/base.rb
|
268
268
|
- lib/stenotype/adapters/google_cloud.rb
|
269
269
|
- lib/stenotype/adapters/stdout_adapter.rb
|
270
|
+
- lib/stenotype/at_exit.rb
|
270
271
|
- lib/stenotype/configuration.rb
|
271
272
|
- lib/stenotype/context_handlers.rb
|
272
273
|
- lib/stenotype/context_handlers/base.rb
|