umbrellio-utils 0.3.2 → 0.4.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 +4 -4
- data/.github/workflows/test.yml +0 -5
- data/Gemfile.lock +36 -27
- data/lib/umbrellio_utils/semantic_logger/tiny_json_formatter.rb +84 -0
- data/lib/umbrellio_utils/version.rb +1 -1
- data/lib/umbrellio_utils.rb +18 -2
- data/umbrellio_utils.gemspec +2 -0
- metadata +32 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 85dd7dea4f1dee04c26507a0196e6a0520e99ef08db6b880ff5238c09980472a
|
|
4
|
+
data.tar.gz: 1377376c2ca11c16c1df7ac09dd64c4c7851d3a0e068b73b69d8701d31362488
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 272cc4be8c75bb75a63c0ad649feda6da475aada4ec411a03e74fd404533d68087095781b965e1ac4d1ed2f6f5fa515ec40e9977d3a5da8f094ac05c9d34d259
|
|
7
|
+
data.tar.gz: 1ac80ccf3221cb5c4a5461fa949b6bc7e858d554e1dafe3781041d6146b6807b00e97b86649973900a14812715bed4ecf6735bd8f5d06e21094b02cf1e707444
|
data/.github/workflows/test.yml
CHANGED
|
@@ -32,7 +32,6 @@ jobs:
|
|
|
32
32
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
33
33
|
specs:
|
|
34
34
|
runs-on: ubuntu-latest
|
|
35
|
-
continue-on-error: ${{ matrix.experimental }}
|
|
36
35
|
|
|
37
36
|
env:
|
|
38
37
|
FULL_TEST_COVERAGE_CHECK: false
|
|
@@ -44,10 +43,6 @@ jobs:
|
|
|
44
43
|
fail-fast: false
|
|
45
44
|
matrix:
|
|
46
45
|
ruby: [2.6, 2.7]
|
|
47
|
-
experimental: [false]
|
|
48
|
-
include:
|
|
49
|
-
- ruby: head
|
|
50
|
-
experimental: true
|
|
51
46
|
|
|
52
47
|
|
|
53
48
|
steps:
|
data/Gemfile.lock
CHANGED
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
umbrellio-utils (0.
|
|
4
|
+
umbrellio-utils (0.4.0)
|
|
5
5
|
memery (~> 1)
|
|
6
6
|
|
|
7
7
|
GEM
|
|
8
8
|
remote: https://rubygems.org/
|
|
9
9
|
specs:
|
|
10
|
-
activesupport (6.1.
|
|
10
|
+
activesupport (6.1.4.1)
|
|
11
11
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
12
12
|
i18n (>= 1.6, < 2)
|
|
13
13
|
minitest (>= 5.1)
|
|
14
14
|
tzinfo (~> 2.0)
|
|
15
15
|
zeitwerk (~> 2.3)
|
|
16
16
|
ast (2.4.2)
|
|
17
|
-
|
|
17
|
+
awesome_print (1.9.2)
|
|
18
|
+
bundler-audit (0.9.0.1)
|
|
18
19
|
bundler (>= 1.2.0, < 3)
|
|
19
20
|
thor (~> 1.0)
|
|
20
21
|
ci-helper (0.4.2)
|
|
@@ -23,31 +24,32 @@ GEM
|
|
|
23
24
|
umbrellio-sequel-plugins (~> 0.4)
|
|
24
25
|
coderay (1.1.3)
|
|
25
26
|
colorize (0.8.1)
|
|
26
|
-
concurrent-ruby (1.1.
|
|
27
|
+
concurrent-ruby (1.1.9)
|
|
27
28
|
diff-lcs (1.4.4)
|
|
28
|
-
docile (1.
|
|
29
|
-
dry-inflector (0.2.
|
|
29
|
+
docile (1.4.0)
|
|
30
|
+
dry-inflector (0.2.1)
|
|
30
31
|
i18n (1.8.10)
|
|
31
32
|
concurrent-ruby (~> 1.0)
|
|
33
|
+
json (2.6.1)
|
|
32
34
|
memery (1.4.1)
|
|
33
35
|
ruby2_keywords (~> 0.0.2)
|
|
34
36
|
method_source (1.0.0)
|
|
35
37
|
minitest (5.14.4)
|
|
36
|
-
nokogiri (1.12.
|
|
38
|
+
nokogiri (1.12.5-x86_64-darwin)
|
|
37
39
|
racc (~> 1.4)
|
|
38
|
-
nokogiri (1.12.
|
|
40
|
+
nokogiri (1.12.5-x86_64-linux)
|
|
39
41
|
racc (~> 1.4)
|
|
40
42
|
nori (2.6.0)
|
|
41
|
-
parallel (1.
|
|
42
|
-
parser (3.0.
|
|
43
|
+
parallel (1.21.0)
|
|
44
|
+
parser (3.0.2.0)
|
|
43
45
|
ast (~> 2.4.1)
|
|
44
|
-
pry (0.14.
|
|
46
|
+
pry (0.14.1)
|
|
45
47
|
coderay (~> 1.1)
|
|
46
48
|
method_source (~> 1.0)
|
|
47
|
-
racc (1.
|
|
49
|
+
racc (1.6.0)
|
|
48
50
|
rack (2.2.3)
|
|
49
51
|
rainbow (3.0.0)
|
|
50
|
-
rake (13.0.
|
|
52
|
+
rake (13.0.6)
|
|
51
53
|
regexp_parser (2.1.1)
|
|
52
54
|
rexml (3.2.5)
|
|
53
55
|
rspec (3.10.0)
|
|
@@ -59,23 +61,26 @@ GEM
|
|
|
59
61
|
rspec-expectations (3.10.1)
|
|
60
62
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
61
63
|
rspec-support (~> 3.10.0)
|
|
64
|
+
rspec-json_matcher (0.1.6)
|
|
65
|
+
awesome_print
|
|
66
|
+
json
|
|
62
67
|
rspec-mocks (3.10.2)
|
|
63
68
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
64
69
|
rspec-support (~> 3.10.0)
|
|
65
70
|
rspec-support (3.10.2)
|
|
66
|
-
rubocop (1.
|
|
71
|
+
rubocop (1.17.0)
|
|
67
72
|
parallel (~> 1.10)
|
|
68
73
|
parser (>= 3.0.0.0)
|
|
69
74
|
rainbow (>= 2.2.2, < 4.0)
|
|
70
75
|
regexp_parser (>= 1.8, < 3.0)
|
|
71
76
|
rexml
|
|
72
|
-
rubocop-ast (>= 1.
|
|
77
|
+
rubocop-ast (>= 1.7.0, < 2.0)
|
|
73
78
|
ruby-progressbar (~> 1.7)
|
|
74
79
|
unicode-display_width (>= 1.4.0, < 3.0)
|
|
75
|
-
rubocop-ast (1.
|
|
76
|
-
parser (>=
|
|
77
|
-
rubocop-config-umbrellio (1.
|
|
78
|
-
rubocop (= 1.
|
|
80
|
+
rubocop-ast (1.12.0)
|
|
81
|
+
parser (>= 3.0.1.1)
|
|
82
|
+
rubocop-config-umbrellio (1.17.0.53)
|
|
83
|
+
rubocop (= 1.17.0)
|
|
79
84
|
rubocop-performance (= 1.10.0)
|
|
80
85
|
rubocop-rails (= 2.9.1)
|
|
81
86
|
rubocop-rake (= 0.5.1)
|
|
@@ -97,24 +102,26 @@ GEM
|
|
|
97
102
|
rubocop (~> 1.0)
|
|
98
103
|
ruby-progressbar (1.11.0)
|
|
99
104
|
ruby2_keywords (0.0.5)
|
|
100
|
-
|
|
105
|
+
semantic_logger (4.8.2)
|
|
106
|
+
concurrent-ruby (~> 1.0)
|
|
107
|
+
sequel (5.49.0)
|
|
101
108
|
simplecov (0.21.2)
|
|
102
109
|
docile (~> 1.1)
|
|
103
110
|
simplecov-html (~> 0.11)
|
|
104
111
|
simplecov_json_formatter (~> 0.1)
|
|
105
112
|
simplecov-html (0.12.3)
|
|
106
113
|
simplecov-lcov (0.8.0)
|
|
107
|
-
simplecov_json_formatter (0.1.
|
|
108
|
-
symbiont-ruby (0.
|
|
114
|
+
simplecov_json_formatter (0.1.3)
|
|
115
|
+
symbiont-ruby (0.7.0)
|
|
109
116
|
thor (1.1.0)
|
|
110
117
|
tzinfo (2.0.4)
|
|
111
118
|
concurrent-ruby (~> 1.0)
|
|
112
|
-
umbrellio-sequel-plugins (0.
|
|
119
|
+
umbrellio-sequel-plugins (0.5.1.27)
|
|
113
120
|
sequel
|
|
114
|
-
symbiont-ruby
|
|
115
|
-
unicode-display_width (2.
|
|
121
|
+
symbiont-ruby
|
|
122
|
+
unicode-display_width (2.1.0)
|
|
116
123
|
yard (0.9.26)
|
|
117
|
-
zeitwerk (2.
|
|
124
|
+
zeitwerk (2.5.1)
|
|
118
125
|
|
|
119
126
|
PLATFORMS
|
|
120
127
|
x86_64-darwin-20
|
|
@@ -130,11 +137,13 @@ DEPENDENCIES
|
|
|
130
137
|
pry
|
|
131
138
|
rake
|
|
132
139
|
rspec
|
|
140
|
+
rspec-json_matcher
|
|
133
141
|
rubocop-config-umbrellio
|
|
142
|
+
semantic_logger
|
|
134
143
|
simplecov
|
|
135
144
|
simplecov-lcov
|
|
136
145
|
umbrellio-utils!
|
|
137
146
|
yard
|
|
138
147
|
|
|
139
148
|
BUNDLED WITH
|
|
140
|
-
2.2.
|
|
149
|
+
2.2.29
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module UmbrellioUtils
|
|
4
|
+
# Namespace for the differrent appenders and formatters for the SemanticLogger library.
|
|
5
|
+
# @see https://logger.rocketjob.io/ Semantic Logger documentation.
|
|
6
|
+
module SemanticLogger
|
|
7
|
+
# Simple JSON formatter, represented as callable object.
|
|
8
|
+
# @example Using of formatter
|
|
9
|
+
# formatter = UmbrellioUtils::SemanticLogger::TinyJsonFormatter.new
|
|
10
|
+
# SemanticLogger.add_appender(io: $stdout, formatter: formatter)
|
|
11
|
+
class TinyJsonFormatter
|
|
12
|
+
# Hash with default field names in the output JSON.
|
|
13
|
+
DEFAULT_NAMES_MAPPING = {
|
|
14
|
+
severity: :severity,
|
|
15
|
+
name: :name,
|
|
16
|
+
thread_fingerprint: :thread_fingerprint,
|
|
17
|
+
message: :message,
|
|
18
|
+
app_tags: :app_tags,
|
|
19
|
+
time: :time,
|
|
20
|
+
}.freeze
|
|
21
|
+
|
|
22
|
+
# Returns a new instance of the {UmbrellioUtils::SemanticLogger::TinyJsonFormatter}.
|
|
23
|
+
# @param [Hash] custom_names_mapping mapping from default field names to custom ones.
|
|
24
|
+
# @option custom_names_mapping [Symbol] :severity custom name for the `severity` field.
|
|
25
|
+
# @option custom_names_mapping [Symbol] :name custom name for the `name` field.
|
|
26
|
+
# @option custom_names_mapping [Symbol] :thread_fingerprint
|
|
27
|
+
# custom name for the thread_fingerprint field.
|
|
28
|
+
# @option custom_names_mapping [Symbol] :message custom name for the `message` field.
|
|
29
|
+
# @option custom_names_mapping [Symbol] :app_tags custom name for the `app_tags` field.
|
|
30
|
+
# @option custom_names_mapping [Symbol] :time custom name for the `time` field.
|
|
31
|
+
# @example Use custom name for the `message` and `time` fields
|
|
32
|
+
# UmbrellioUtils::SemanticLogger::TinyJsonFormatter.new(
|
|
33
|
+
# time: :timestamp, message: :note,
|
|
34
|
+
# ) #=> <UmbrellioUtils::SemanticLogger::TinyJsonFormatter:0x000>
|
|
35
|
+
# @return [UmbrellioUtils::SemanticLogger::TinyJsonFormatter]
|
|
36
|
+
# a new instance of the {UmbrellioUtils::SemanticLogger::TinyJsonFormatter}
|
|
37
|
+
def initialize(**custom_names_mapping)
|
|
38
|
+
self.field_names = { **DEFAULT_NAMES_MAPPING, **custom_names_mapping }.freeze
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# Formats log structure into the JSON string.
|
|
42
|
+
# @param log [SemanticLogger::Log] log's data structure.
|
|
43
|
+
# @param logger [SemanticLogger::Logger] active logger.
|
|
44
|
+
# @return [String] data
|
|
45
|
+
def call(log, _logger)
|
|
46
|
+
data = build_data_for(log)
|
|
47
|
+
data.to_json
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
private
|
|
51
|
+
|
|
52
|
+
# @!attribute field_names
|
|
53
|
+
# @return [Hash<Symbol, Symbol>] the mapping from default field names to the new ones.
|
|
54
|
+
attr_accessor :field_names
|
|
55
|
+
|
|
56
|
+
# Builds hash with data from log.
|
|
57
|
+
# @return [Hash] the hash, which will be converted to the JSON later.
|
|
58
|
+
def build_data_for(log)
|
|
59
|
+
field_names.values_at(*DEFAULT_NAMES_MAPPING.keys).zip(pack_data(log)).to_h
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
# Builds an [Array] with all the required fields, which are arranged
|
|
63
|
+
# in the order of the declaration of keys
|
|
64
|
+
# in the {UmbrellioUtils::SemanticLogger::TinyJsonFormatter::DEFAULT_NAMES_MAPPING}.
|
|
65
|
+
# @return [Array] an array with serialized data.
|
|
66
|
+
def pack_data(log)
|
|
67
|
+
[
|
|
68
|
+
log.level.upcase,
|
|
69
|
+
log.name,
|
|
70
|
+
thread_fingerprint_for(log),
|
|
71
|
+
log.message,
|
|
72
|
+
log.named_tags,
|
|
73
|
+
log.time.utc.iso8601(3),
|
|
74
|
+
]
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
# Calculates MD5 fingerprint for the thread, in which the log was made.
|
|
78
|
+
# @return [String] truncated `MD5` hash.
|
|
79
|
+
def thread_fingerprint_for(log)
|
|
80
|
+
Digest::MD5.hexdigest("#{log.thread_name}#{Process.pid}")[0...8]
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
end
|
data/lib/umbrellio_utils.rb
CHANGED
|
@@ -5,8 +5,6 @@ require "memery"
|
|
|
5
5
|
module UmbrellioUtils
|
|
6
6
|
GLOBAL_MUTEX = Mutex.new
|
|
7
7
|
|
|
8
|
-
Dir["#{__dir__}/*/*.rb"].each { |file_path| require_relative(file_path) }
|
|
9
|
-
|
|
10
8
|
extend self
|
|
11
9
|
|
|
12
10
|
def included(othermod)
|
|
@@ -47,3 +45,21 @@ module UmbrellioUtils
|
|
|
47
45
|
GLOBAL_MUTEX.owned? ? yield : GLOBAL_MUTEX.synchronize(&block)
|
|
48
46
|
end
|
|
49
47
|
end
|
|
48
|
+
|
|
49
|
+
require_relative "umbrellio_utils/cards"
|
|
50
|
+
require_relative "umbrellio_utils/checks"
|
|
51
|
+
require_relative "umbrellio_utils/constants"
|
|
52
|
+
require_relative "umbrellio_utils/control"
|
|
53
|
+
require_relative "umbrellio_utils/database"
|
|
54
|
+
require_relative "umbrellio_utils/formatting"
|
|
55
|
+
require_relative "umbrellio_utils/http_client"
|
|
56
|
+
require_relative "umbrellio_utils/misc"
|
|
57
|
+
require_relative "umbrellio_utils/parsing"
|
|
58
|
+
require_relative "umbrellio_utils/passwords"
|
|
59
|
+
require_relative "umbrellio_utils/random"
|
|
60
|
+
require_relative "umbrellio_utils/request_wrapper"
|
|
61
|
+
require_relative "umbrellio_utils/rounding"
|
|
62
|
+
require_relative "umbrellio_utils/semantic_logger/tiny_json_formatter"
|
|
63
|
+
require_relative "umbrellio_utils/store"
|
|
64
|
+
require_relative "umbrellio_utils/vault"
|
|
65
|
+
require_relative "umbrellio_utils/version"
|
data/umbrellio_utils.gemspec
CHANGED
|
@@ -38,7 +38,9 @@ Gem::Specification.new do |spec|
|
|
|
38
38
|
spec.add_development_dependency "pry"
|
|
39
39
|
spec.add_development_dependency "rake"
|
|
40
40
|
spec.add_development_dependency "rspec"
|
|
41
|
+
spec.add_development_dependency "rspec-json_matcher"
|
|
41
42
|
spec.add_development_dependency "rubocop-config-umbrellio"
|
|
43
|
+
spec.add_development_dependency "semantic_logger"
|
|
42
44
|
spec.add_development_dependency "simplecov"
|
|
43
45
|
spec.add_development_dependency "simplecov-lcov"
|
|
44
46
|
spec.add_development_dependency "yard"
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: umbrellio-utils
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.4.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- JustAnotherDude
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2021-
|
|
11
|
+
date: 2021-10-31 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: memery
|
|
@@ -150,6 +150,20 @@ dependencies:
|
|
|
150
150
|
- - ">="
|
|
151
151
|
- !ruby/object:Gem::Version
|
|
152
152
|
version: '0'
|
|
153
|
+
- !ruby/object:Gem::Dependency
|
|
154
|
+
name: rspec-json_matcher
|
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
|
156
|
+
requirements:
|
|
157
|
+
- - ">="
|
|
158
|
+
- !ruby/object:Gem::Version
|
|
159
|
+
version: '0'
|
|
160
|
+
type: :development
|
|
161
|
+
prerelease: false
|
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
163
|
+
requirements:
|
|
164
|
+
- - ">="
|
|
165
|
+
- !ruby/object:Gem::Version
|
|
166
|
+
version: '0'
|
|
153
167
|
- !ruby/object:Gem::Dependency
|
|
154
168
|
name: rubocop-config-umbrellio
|
|
155
169
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -164,6 +178,20 @@ dependencies:
|
|
|
164
178
|
- - ">="
|
|
165
179
|
- !ruby/object:Gem::Version
|
|
166
180
|
version: '0'
|
|
181
|
+
- !ruby/object:Gem::Dependency
|
|
182
|
+
name: semantic_logger
|
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
|
184
|
+
requirements:
|
|
185
|
+
- - ">="
|
|
186
|
+
- !ruby/object:Gem::Version
|
|
187
|
+
version: '0'
|
|
188
|
+
type: :development
|
|
189
|
+
prerelease: false
|
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
191
|
+
requirements:
|
|
192
|
+
- - ">="
|
|
193
|
+
- !ruby/object:Gem::Version
|
|
194
|
+
version: '0'
|
|
167
195
|
- !ruby/object:Gem::Dependency
|
|
168
196
|
name: simplecov
|
|
169
197
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -240,6 +268,7 @@ files:
|
|
|
240
268
|
- lib/umbrellio_utils/random.rb
|
|
241
269
|
- lib/umbrellio_utils/request_wrapper.rb
|
|
242
270
|
- lib/umbrellio_utils/rounding.rb
|
|
271
|
+
- lib/umbrellio_utils/semantic_logger/tiny_json_formatter.rb
|
|
243
272
|
- lib/umbrellio_utils/store.rb
|
|
244
273
|
- lib/umbrellio_utils/vault.rb
|
|
245
274
|
- lib/umbrellio_utils/version.rb
|
|
@@ -266,7 +295,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
266
295
|
- !ruby/object:Gem::Version
|
|
267
296
|
version: '0'
|
|
268
297
|
requirements: []
|
|
269
|
-
rubygems_version: 3.2.
|
|
298
|
+
rubygems_version: 3.2.30
|
|
270
299
|
signing_key:
|
|
271
300
|
specification_version: 4
|
|
272
301
|
summary: A set of utilities that speed up development
|