getaround_utils 0.1.11 → 0.1.12

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1f7f3d0da69b7509f3053c794451828c06d884f52e99aa1e1354ce7d33d3f73b
4
- data.tar.gz: 8de112caf848bd487de4ac5ef7fb914eca7177da431aa340a70efaaa84aa0078
3
+ metadata.gz: c8111d0bfe63899265268fea8edcea433312a1286299d5b00f67fd5eb658c813
4
+ data.tar.gz: bb7c45164af9db998c5f0008f4dbec5288ff87f49d923f28916c79af94683bf0
5
5
  SHA512:
6
- metadata.gz: f64546ec07d84d49a4401898a488fbc8d934ee9083252930751395a0bf9343e01eb1a53d7721a55a870644b11de31d935fe8a9e59b5d80ace03108f2a16c3eaa
7
- data.tar.gz: 024771347ee39b7ae902a1cae00903786f5cbabc0ed1f4db2da0e167ef710e5597eb2c42bfce171d5bea480ebc6f1fb7299c30d85898bc07fe63523000196281
6
+ metadata.gz: 7f0992f71d843c927bd5d6dffe170980c3a7adfc6dce0997b49c6299159593ba9866f7d68b70a0feeaf59689913f7a5f9fc22cddab0c11a59d78800c19fd1d16
7
+ data.tar.gz: e8c73735d0189471f259da0c57a9821bf98c741718877558d1918c1a2500fc3b910ca2d7c6a0cc4d71516e8099d506ffdad10eaae2496af64a5bd6fd4218b065
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 2.5
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- getaround_utils (0.1.11)
4
+ getaround_utils (0.1.12)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -1,36 +1,46 @@
1
1
  module GetaroundUtils; end
2
2
  module GetaroundUtils::LogFormatters; end
3
3
 
4
- require 'getaround_utils/utils/deep_key_value_serializer'
5
-
6
- class GetaroundUtils::LogFormatters::DeepKeyValue < GetaroundUtils::Utils::DeepKeyValueSerializer
7
- def normalize(message)
8
- if message.is_a?(Hash)
9
- serialize(message.compact)
10
- elsif message.is_a?(String) && message.match(/^[^ =]+=/)
11
- message
12
- else
13
- serialize(message: message.to_s)
4
+ require 'getaround_utils/utils/deep_key_value'
5
+
6
+ class GetaroundUtils::LogFormatters::DeepKeyValue
7
+ module Shared
8
+ def normalize(message)
9
+ if message.is_a?(Hash)
10
+ GetaroundUtils::Utils::DeepKeyValue.serialize(message.compact)
11
+ elsif message.is_a?(String) && message.match(/^[^ =]+=/)
12
+ message
13
+ else
14
+ GetaroundUtils::Utils::DeepKeyValue.serialize(message: message.to_s)
15
+ end
14
16
  end
15
17
  end
16
18
 
17
- def call(severity, _datetime, appname, message)
18
- payload = { severity: severity, appname: appname }
19
- "#{normalize(payload)} #{normalize(message)}\n"
19
+ class Base
20
+ include GetaroundUtils::LogFormatters::DeepKeyValue::Shared
21
+
22
+ def call(severity, _datetime, appname, message)
23
+ payload = { severity: severity, appname: appname }
24
+ "#{normalize(payload)} #{normalize(message)}\n"
25
+ end
26
+ end
27
+
28
+ def self.new
29
+ Base.new
20
30
  end
21
31
 
22
- module Lograge
32
+ class Lograge
23
33
  def call(message)
24
34
  message = message.compact if message.is_a?(Hash)
25
- serialize(message)
35
+ GetaroundUtils::Utils::DeepKeyValue.serialize(message)
26
36
  end
27
37
  end
28
38
 
29
39
  def self.for_lograge
30
- new.extend(Lograge)
40
+ Lograge.new
31
41
  end
32
42
 
33
- module Sidekiq
43
+ class Sidekiq < Base
34
44
  def sidekiq_context
35
45
  context = Thread.current&.fetch(:sidekiq_context, nil)
36
46
  context.is_a?(Hash) ? context : {}
@@ -48,6 +58,6 @@ class GetaroundUtils::LogFormatters::DeepKeyValue < GetaroundUtils::Utils::DeepK
48
58
  end
49
59
 
50
60
  def self.for_sidekiq
51
- new.extend(Sidekiq)
61
+ Sidekiq.new
52
62
  end
53
63
  end
@@ -24,15 +24,11 @@ module GetaroundUtils::Mixins::Loggable
24
24
  end
25
25
  end
26
26
 
27
- def loggable_formatter
28
- @loggable_formatter ||= GetaroundUtils::Utils::DeepKeyValueSerializer.new
29
- end
30
-
31
27
  def loggable(severity, message, payload = {})
32
28
  payload = { message: message }.merge(payload)
33
29
  base_append_infos_to_loggable(payload)
34
30
 
35
- message = loggable_formatter.serialize(payload.compact)
31
+ message = GetaroundUtils::Utils::DeepKeyValue.serialize(payload.compact)
36
32
  base_loggable_logger.send(severity.to_sym, message)
37
33
  end
38
34
  end
@@ -1,4 +1,4 @@
1
- require 'getaround_utils/utils/deep_key_value_serializer'
1
+ require 'getaround_utils/log_formatters/deep_key_value'
2
2
 
3
3
  module GetaroundUtils; end
4
4
  module GetaroundUtils::Patches; end
@@ -18,25 +18,29 @@ module GetaroundUtils::Patches; end
18
18
 
19
19
  class GetaroundUtils::Patches::KeyValueLogTags
20
20
  module TaggedLoggingFormatter
21
+ include GetaroundUtils::LogFormatters::DeepKeyValue::Shared
22
+
21
23
  def tags_text
22
24
  "#{current_tags.join(' ')} " if current_tags.any?
23
25
  end
24
- end
25
26
 
26
- module RackLogger
27
- def kv_formatter
28
- @kv_formatter ||= GetaroundUtils::Utils::DeepKeyValueSerializer.new
27
+ def call(severity, datetime, appname, message)
28
+ original_method = method(__method__).super_method.super_method
29
+ message = "#{tags_text}#{normalize(message)}"
30
+ original_method.call(severity, datetime, appname, message)
29
31
  end
32
+ end
30
33
 
34
+ module RackLogger
31
35
  def compute_tags(request)
32
36
  @taggers.collect do |tag|
33
37
  case tag
34
38
  when Proc
35
- kv_formatter.serialize(tag.call(request))
39
+ GetaroundUtils::Utils::DeepKeyValue.serialize(tag.call(request))
36
40
  when Symbol
37
- kv_formatter.serialize(tag => request.send(tag))
41
+ GetaroundUtils::Utils::DeepKeyValue.serialize(tag => request.send(tag))
38
42
  else
39
- kv_formatter.serialize(tag)
43
+ GetaroundUtils::Utils::DeepKeyValue.serialize(tag)
40
44
  end
41
45
  end
42
46
  end
@@ -1,22 +1,18 @@
1
1
  require 'sidekiq/exception_handler'
2
- require 'getaround_utils/utils/deep_key_value_serializer'
2
+ require 'getaround_utils/utils/deep_key_value'
3
3
 
4
4
  module GetaroundUtils; end
5
5
  module GetaroundUtils::Patches; end
6
6
 
7
7
  class GetaroundUtils::Patches::KeyValueSidekiqExceptions
8
8
  module ExceptionHandlerLogger
9
- def kv_formatter
10
- @kv_formatter ||= GetaroundUtils::Utils::DeepKeyValueSerializer.new
11
- end
12
-
13
9
  def call(exception, ctx)
14
10
  payload = {}
15
11
  payload[:message] = exception.message
16
12
  payload[:exception] = exception.class.name
17
13
  payload[:backtrace] = exception.backtrace&.join("\n")
18
14
  payload[:sidekiq] = ctx
19
- Sidekiq.logger.warn(kv_formatter.serialize(payload.compact))
15
+ Sidekiq.logger.warn(GetaroundUtils::Utils::DeepKeyValue.serialize(payload.compact))
20
16
  end
21
17
  end
22
18
 
@@ -1,13 +1,8 @@
1
1
  module GetaroundUtils; end
2
2
  module GetaroundUtils::Utils; end
3
3
 
4
- class GetaroundUtils::Utils::DeepKeyValueSerializer
5
- def initialize(max_depth: 5, max_length: 512)
6
- @max_depth = max_depth
7
- @max_length = max_length
8
- end
9
-
10
- def serialize(data)
4
+ module GetaroundUtils::Utils::DeepKeyValue
5
+ def self.serialize(data)
11
6
  case data
12
7
  when Array
13
8
  flattify(data).map { |key, value| "#{key}=#{value}" }.join(' ')
@@ -23,31 +18,31 @@ class GetaroundUtils::Utils::DeepKeyValueSerializer
23
18
  end
24
19
 
25
20
  # https://stackoverflow.com/questions/48836464/how-to-flatten-a-hash-making-each-key-a-unique-value
26
- def flattify(value, result = {}, path = [])
27
- if path.length > @max_depth
21
+ def self.flattify(value, result = {}, path = [], max_length = 512, max_depth = 5)
22
+ if path.length > max_depth
28
23
  result[path.join(".")] = '"..."'
29
24
  return result
30
25
  end
31
26
  case value
32
27
  when Array
33
28
  value.each.with_index(0) do |v, i|
34
- flattify(v, result, path + [i])
29
+ flattify(v, result, path + [i], max_length, max_depth)
35
30
  end
36
31
  when Hash
37
32
  value.each do |k, v|
38
- flattify(v, result, path + [k])
33
+ flattify(v, result, path + [k], max_length, max_depth)
39
34
  end
40
35
  when Numeric
41
36
  result[path.join(".")] = value.to_s
42
37
  when String
43
38
  value = if value =~ /^".*"$/
44
- value.length >= @max_length ? %{#{value[0...@max_length]} ..."} : value
39
+ value.length >= max_length ? %{#{value[0...max_length]} ..."} : value
45
40
  else
46
- value.length >= @max_length ? %{#{value[0...@max_length]} ...}.inspect : value.inspect
41
+ value.length >= max_length ? %{#{value[0...max_length]} ...}.inspect : value.inspect
47
42
  end
48
43
  result[path.join(".")] = value
49
44
  else
50
- flattify(value.to_s, result, path)
45
+ flattify(value.to_s, result, path, max_length, max_depth)
51
46
  end
52
47
  result
53
48
  end
@@ -1,3 +1,3 @@
1
1
  module GetaroundUtils::Utils
2
- autoload :DeepKeyValueSerializer, 'getaround_utils/utils/deep_key_value_serializer'
2
+ autoload :DeepKeyValue, 'getaround_utils/utils/deep_key_value'
3
3
  end
@@ -1,3 +1,3 @@
1
1
  module GetaroundUtils
2
- VERSION = '0.1.11'.freeze
2
+ VERSION = '0.1.12'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: getaround_utils
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.11
4
+ version: 0.1.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Drivy
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2019-11-20 00:00:00.000000000 Z
12
+ date: 2019-11-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -197,6 +197,7 @@ extensions: []
197
197
  extra_rdoc_files: []
198
198
  files:
199
199
  - ".rubocop.yml"
200
+ - ".ruby-version"
200
201
  - Gemfile
201
202
  - Gemfile.lock
202
203
  - README.md
@@ -211,7 +212,7 @@ files:
211
212
  - lib/getaround_utils/patches/key_value_sidekiq_exceptions.rb
212
213
  - lib/getaround_utils/railties/lograge.rb
213
214
  - lib/getaround_utils/utils.rb
214
- - lib/getaround_utils/utils/deep_key_value_serializer.rb
215
+ - lib/getaround_utils/utils/deep_key_value.rb
215
216
  - lib/getaround_utils/version.rb
216
217
  homepage: https://github.com/drivy
217
218
  licenses: