trifle-traces 1.1.2 → 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: e25f5db3d559fa90526a64e8387a2f2929e88fef23905b0e20118e4d9ba7987b
4
- data.tar.gz: fab65dfdfc2cc428464b35a98e158e149770cb9fa10891b85c704c1a989c1598
3
+ metadata.gz: ae4774408bf8527ca2a92df5ebbab34011342c49f202031cdbee81181c910c96
4
+ data.tar.gz: fa030e8f5a4b11d6f170f7b9f87970c5bf2225209176d47fe517662c1836f016
5
5
  SHA512:
6
- metadata.gz: 6b8c65153c8624b8f9b677f4050ccf81421c38825889e1bf634ad6de6c5da4862020a628457b1a58111ba21de464ca8192f4422fc81bf8f3d9f042ca25763bf2
7
- data.tar.gz: 26b5ad2ccb487a94b18f2ca8d0484511298cdf3d34b89e681d8334a6d0132fce5c5fd278e96f79cf04fc4bfd3edc40eee4d7ef7366b73d0a3621a5a8fe81b8ab
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.2)
4
+ trifle-traces (1.2.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -4,7 +4,7 @@ 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
@@ -22,7 +22,10 @@ module Trifle
22
22
  @artifacts = []
23
23
  @state = :running
24
24
  @ignore = false
25
- @result_prefix = '=> '
25
+ @result_prefix = "\u21B3 "
26
+ @block_begin_suffix = " \u21B4"
27
+ @block_end_suffix = " \u21B5"
28
+ @level = 0
26
29
  end
27
30
 
28
31
  def pop_all_data
@@ -47,28 +50,31 @@ module Trifle
47
50
  end
48
51
 
49
52
  def trace(message, state: :success, head: false) # rubocop:disable Metrics/MethodLength
50
- 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
51
58
  rescue StandardError => e
52
59
  raise e
53
60
  ensure
54
- dump_message(
55
- message,
56
- type: head ? :head : :text,
57
- state: e ? :error : state
58
- )
59
- 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
60
66
  bump
61
67
  result
62
68
  end
63
69
 
64
70
  def dump_message(message, type:, state:)
65
- @data << { at: now, message: message, state: state, type: type }
71
+ @data << { at: now, message: message, state: state, type: type, level: level }
66
72
  end
67
73
 
68
74
  def dump_result(result)
69
75
  @data << {
70
76
  at: now, message: "#{@result_prefix}#{sanitize_result(result)}",
71
- state: :success, type: :raw
77
+ state: :success, type: :raw, level: level
72
78
  }
73
79
  end
74
80
 
@@ -78,6 +84,14 @@ module Trifle
78
84
  Trifle::Traces::Serializer::Inspect.sanitize(result)
79
85
  end
80
86
 
87
+ def increase
88
+ @level += 1
89
+ end
90
+
91
+ def decrease
92
+ @level -= 1
93
+ end
94
+
81
95
  def now
82
96
  Time.now.to_i
83
97
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Trifle
4
4
  module Traces
5
- VERSION = '1.1.2'
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.2
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