trifle-traces 1.1.1 → 1.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 71988f5f7722c658d363948740d0d3ad30afe87ec89099e94d38cf714f5fbf86
4
- data.tar.gz: ea1632cf0978b25879de9773e4ef4bd9cdd7b02600e005b2ef7debef85949f8e
3
+ metadata.gz: ae4774408bf8527ca2a92df5ebbab34011342c49f202031cdbee81181c910c96
4
+ data.tar.gz: fa030e8f5a4b11d6f170f7b9f87970c5bf2225209176d47fe517662c1836f016
5
5
  SHA512:
6
- metadata.gz: 07170f7fd333eac8f324e9d19b7545b6ef37d729d53d2f8acf3a4e708c20131ca0ed474a59fb77756f263d90d14d6ef97ccb63fefd57117ca9ee99c7468a833d
7
- data.tar.gz: a7996fcffcc14f1b7f3f63f825fcd1dd87d441509f1b4e51746e0cdcd23048d6f250d1eb3407b4db1d757aa9bd25fe9bb85d08ac0503b82f2fa870f299746cd7
6
+ metadata.gz: 5e8b13f015bbdda8b241170d789b2960e8d2917cb986dbb5e93518d6e660e58bee794cc8fce4b5c55cf1a63e1d7dbe01510d28eeeb386ccc7a182c2557880c52
7
+ data.tar.gz: cd9cb57d6351ad180c79da24a5922aee0de3a054099760c1d173533ac7cab6b0260def05cb396cbfe02176dbb463fe206ed2ce2a605ab42eb199f5da204c7587
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- trifle-traces (1.1.1)
4
+ trifle-traces (1.2.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -4,13 +4,12 @@ module Trifle
4
4
  module Traces
5
5
  module Tracer
6
6
  class Hash # rubocop:disable Metrics/ClassLength
7
- attr_accessor :key, :meta, :data, :tags, :artifacts, :state, :ignore, :reference
7
+ attr_accessor :key, :meta, :data, :tags, :artifacts, :state, :ignore, :reference, :level
8
8
 
9
9
  def initialize(key:, reference: nil, meta: nil, config: nil)
10
10
  @key = key
11
11
  @meta = meta
12
12
  @config = config
13
- @result_serializer = config.serializer_class.new
14
13
  set_defaults!
15
14
 
16
15
  trace("Tracer has been initialized for #{key}")
@@ -23,7 +22,10 @@ module Trifle
23
22
  @artifacts = []
24
23
  @state = :running
25
24
  @ignore = false
26
- @result_prefix = '=> '
25
+ @result_prefix = "\u21B3 "
26
+ @block_begin_suffix = " \u21B4"
27
+ @block_end_suffix = " \u21B5"
28
+ @level = 0
27
29
  end
28
30
 
29
31
  def pop_all_data
@@ -38,43 +40,58 @@ module Trifle
38
40
  @config || Trifle::Traces.default
39
41
  end
40
42
 
43
+ def result_serializer
44
+ @result_serializer ||= config.serializer_class.new
45
+ end
46
+
41
47
  def keys
42
48
  parts = key.split('/')
43
49
  parts.count.times.map { |i| parts[0..i].join('/') }
44
50
  end
45
51
 
46
52
  def trace(message, state: :success, head: false) # rubocop:disable Metrics/MethodLength
47
- result = yield if block_given?
53
+ dump_message("#{message}#{@block_begin_suffix if block_given?}", type: head ? :head : :text, state: state)
54
+ if block_given?
55
+ increase
56
+ result = yield
57
+ end
48
58
  rescue StandardError => e
49
59
  raise e
50
60
  ensure
51
- dump_message(
52
- message,
53
- type: head ? :head : :text,
54
- state: e ? :error : state
55
- )
56
- dump_result(result) if block_given?
61
+ if block_given?
62
+ decrease
63
+ dump_message("#{message}#{@block_end_suffix}", type: :text, state: e ? :error : state)
64
+ dump_result(result)
65
+ end
57
66
  bump
58
67
  result
59
68
  end
60
69
 
61
70
  def dump_message(message, type:, state:)
62
- @data << { at: now, message: message, state: state, type: type }
71
+ @data << { at: now, message: message, state: state, type: type, level: level }
63
72
  end
64
73
 
65
74
  def dump_result(result)
66
75
  @data << {
67
76
  at: now, message: "#{@result_prefix}#{sanitize_result(result)}",
68
- state: :success, type: :raw
77
+ state: :success, type: :raw, level: level
69
78
  }
70
79
  end
71
80
 
72
81
  def sanitize_result(result)
73
- @result_serializer.sanitize(result)
82
+ result_serializer.sanitize(result)
74
83
  rescue StandardError
75
84
  Trifle::Traces::Serializer::Inspect.sanitize(result)
76
85
  end
77
86
 
87
+ def increase
88
+ @level += 1
89
+ end
90
+
91
+ def decrease
92
+ @level -= 1
93
+ end
94
+
78
95
  def now
79
96
  Time.now.to_i
80
97
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Trifle
4
4
  module Traces
5
- VERSION = '1.1.1'
5
+ VERSION = '1.2.0'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trifle-traces
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jozef Vaclavik
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-08-13 00:00:00.000000000 Z
11
+ date: 2025-07-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler