step-track 0.5.2 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/lib/step_track.rb +9 -6
- data/lib/step_track/version.rb +1 -1
- data/test/step_track_test.rb +8 -3
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 1f2cf3c8e226306a38bc949515f9860a9728b49d6e366a68cc65a65ec1ce3965
|
4
|
+
data.tar.gz: c4f55d097d5145106313637d079acd21d3e50ce7eb026cc4f7ffa90a6577d285
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 95f4f5509d36026b04843cd849be214e9c55527bd8b4a1f31667ba8edb340ee5a1e4225c3a606acacf04e823715139fb2ef85ac268375aa3b65ac769872cc936
|
7
|
+
data.tar.gz: 4a15c7da79f2bfd36e3b1a8b8210dff5c63e0d1ed323f471060dc01042a6b7daf36b1b01924d803311606d8dc1a9bfba73ff880f2b7e62fd7ff18ca28ca67590
|
data/lib/step_track.rb
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require "date"
|
4
|
+
|
3
5
|
module StepTrack
|
4
6
|
extend self
|
5
7
|
|
@@ -20,7 +22,7 @@ module StepTrack
|
|
20
22
|
track_id: config[:track_id] || Thread.current.object_id.to_s,
|
21
23
|
steps: [],
|
22
24
|
callback: Proc.new,
|
23
|
-
time:
|
25
|
+
time: DateTime.now,
|
24
26
|
caller: config&.[](:caller) || get_caller.()
|
25
27
|
}.merge(DEFAULT_CONFIG).merge(config)
|
26
28
|
end
|
@@ -31,9 +33,9 @@ module StepTrack
|
|
31
33
|
merge_step = track_ref[:steps].pop if payload.delete(track_ref[:merge_key])
|
32
34
|
last_step = track_ref[:steps].last
|
33
35
|
track_ref[:steps] << (merge_step || {}).merge(
|
34
|
-
split: Time.now.to_f - (last_step&.[](:time) || track_ref[:time]).to_f,
|
35
|
-
duration: Time.now.to_f - track_ref[:time].to_f,
|
36
|
-
time:
|
36
|
+
split: Time.now.to_f - (last_step&.[](:time) || track_ref[:time]).to_time.to_f,
|
37
|
+
duration: Time.now.to_f - track_ref[:time].to_time.to_f,
|
38
|
+
time: DateTime.now,
|
37
39
|
caller: merge_step&.[](:caller) || get_caller.(),
|
38
40
|
step_name: merge_step&.[](:step_name) || name
|
39
41
|
).merge(payload)
|
@@ -44,11 +46,12 @@ module StepTrack
|
|
44
46
|
track_ref = Thread.current[ref(track)]
|
45
47
|
Thread.current[ref(track)] = nil
|
46
48
|
steps = track_ref.delete(:steps)
|
47
|
-
steps.each { |
|
49
|
+
steps.each { |s| s[:timestamp] = s.delete(:time).iso8601 }
|
48
50
|
result = {
|
49
51
|
step_count: steps.count,
|
50
52
|
caller: track_ref[:caller],
|
51
|
-
duration: Time.now.to_f - track_ref[:time].to_f,
|
53
|
+
duration: Time.now.to_f - track_ref[:time].to_time.to_f,
|
54
|
+
timestamp: track_ref[:time].iso8601,
|
52
55
|
track_id: track_ref[:track_id]
|
53
56
|
}
|
54
57
|
if err = steps.detect { |s| s.key?(track_ref[:error_key]) }
|
data/lib/step_track/version.rb
CHANGED
data/test/step_track_test.rb
CHANGED
@@ -21,8 +21,8 @@ describe "StepTrack" do
|
|
21
21
|
"steps is no empty array #{data[:steps].inspect}"
|
22
22
|
assert data[:callback].is_a?(Proc),
|
23
23
|
"callback is no proc #{data[:callback].inspect}"
|
24
|
-
assert data[:time] <=
|
25
|
-
"time #{data[:time].inspect} > #{
|
24
|
+
assert data[:time] <= DateTime.now,
|
25
|
+
"time #{data[:time].inspect} > #{DateTime.now.inspect}"
|
26
26
|
assert_equal data[:track_id], Thread.current.object_id.to_s,
|
27
27
|
"track id is #{StepTrack.track_id("test")}"
|
28
28
|
refute_empty data[:caller], "caller is empty"
|
@@ -116,6 +116,11 @@ describe "StepTrack" do
|
|
116
116
|
assert_match %r{#{Regexp.escape(__FILE__)}}, result[:caller]
|
117
117
|
end
|
118
118
|
|
119
|
+
it "sets a timestamp" do
|
120
|
+
result = StepTrack.done("test")
|
121
|
+
assert_match %r{\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\+\d{2}:\d{2}}, result[:timestamp]
|
122
|
+
end
|
123
|
+
|
119
124
|
it "does not merge final step into results" do
|
120
125
|
result = StepTrack.done("test")
|
121
126
|
assert !result.key?(:gnu), "merged gnu into result"
|
@@ -130,7 +135,7 @@ describe "StepTrack" do
|
|
130
135
|
|
131
136
|
it "enumerates every step into result" do
|
132
137
|
result = StepTrack.done("test")
|
133
|
-
expected_key_parts = [:i, :split, :duration, :caller]
|
138
|
+
expected_key_parts = [:i, :split, :duration, :timestamp, :caller]
|
134
139
|
|
135
140
|
["step", "last"].each_with_index do |n, i|
|
136
141
|
expected_keys = expected_key_parts.map { |k| "step_#{n}_#{k}".to_sym }
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: step-track
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matthias Geier
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-04-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|
@@ -54,8 +54,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: '0'
|
56
56
|
requirements: []
|
57
|
-
|
58
|
-
rubygems_version: 2.5.2.3
|
57
|
+
rubygems_version: 3.0.3
|
59
58
|
signing_key:
|
60
59
|
specification_version: 4
|
61
60
|
summary: Tracks data fragments across the application
|