traceable 1.3.2 → 1.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/lib/traceable/args.rb +9 -0
- data/lib/traceable/tracer.rb +5 -1
- data/lib/traceable/version.rb +1 -1
- data/spec/traceable_args_spec.rb +17 -0
- 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: 3b33985a7f1cd981ee07372be082ea2686776086
|
4
|
+
data.tar.gz: 956815bb6c9baa2fb5d141497169aed860186b94
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a69ca83d50eafe13fea34bc927c5d41e5f5a46ead4b2b4ed438150f9f66a0edf80a86600e31934d7319e862ad4043a38a407237584be1c326351dd15c2fb3249
|
7
|
+
data.tar.gz: c8209b9f31551240e07ecc14dff517da72acaca75a6b6a76a83ede43252ee47c5d265bb910b2448761622d136e0223e279aa0e84d9fbd80a298031a444e9e5be
|
data/lib/traceable/args.rb
CHANGED
@@ -19,6 +19,15 @@ module Traceable
|
|
19
19
|
return val.to_trace if val.respond_to? :to_trace
|
20
20
|
return format_array_of_values(val) if val.is_a? Array
|
21
21
|
return format_hash_of_values(val) if val.is_a? Hash
|
22
|
+
return format_string(val) if val.is_a? String
|
23
|
+
val
|
24
|
+
end
|
25
|
+
|
26
|
+
MAX_STRING_LENGTH = 5000
|
27
|
+
TRUNC_STRING_LENGTH = MAX_STRING_LENGTH - 3
|
28
|
+
|
29
|
+
def self.format_string(val)
|
30
|
+
return val[0..TRUNC_STRING_LENGTH] + '...' if val.size > MAX_STRING_LENGTH
|
22
31
|
val
|
23
32
|
end
|
24
33
|
|
data/lib/traceable/tracer.rb
CHANGED
@@ -40,7 +40,11 @@ module Traceable
|
|
40
40
|
end
|
41
41
|
|
42
42
|
def make_tags(**tags)
|
43
|
-
@tags.merge(tags)
|
43
|
+
format_tags(@tags.merge(tags))
|
44
|
+
end
|
45
|
+
|
46
|
+
def format_tags(tags)
|
47
|
+
tags.each_with_object(tags) { |(k, v), t| t[k] = Args.format_value(v) }
|
44
48
|
end
|
45
49
|
|
46
50
|
def emit_tags(method, tags)
|
data/lib/traceable/version.rb
CHANGED
data/spec/traceable_args_spec.rb
CHANGED
@@ -28,6 +28,23 @@ RSpec.describe Traceable::Args do
|
|
28
28
|
|
29
29
|
let(:letters) { %w[a b c d e f g h i j k l m n o p q r s t u v w x y z] }
|
30
30
|
|
31
|
+
describe '#format_value' do
|
32
|
+
let(:long_string) { 'abcdefghijklmnopqrstuvwxyz'. * 1000 }
|
33
|
+
let(:number) { 1 }
|
34
|
+
|
35
|
+
it 'truncates long strings' do
|
36
|
+
expect(Traceable::Args.format_value(long_string))
|
37
|
+
.to eq(long_string[0..4997] + '...')
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'returns simple values un-modified' do
|
41
|
+
expect(Traceable::Args.format_value(number)). to be number
|
42
|
+
expect(Traceable::Args.format_value(nil)). to be nil
|
43
|
+
expect(Traceable::Args.format_value(true)). to be true
|
44
|
+
expect(Traceable::Args.format_value(false)). to be false
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
31
48
|
describe '#format_array_of_values' do
|
32
49
|
it 'truncates long arrays' do
|
33
50
|
expect(Traceable::Args.format_array_of_values(letters))
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: traceable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeremy Slade
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-07-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|