trifle-logger 0.1.1 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/ruby.yml +16 -17
- data/Gemfile.lock +1 -1
- data/lib/trifle/logger.rb +12 -0
- data/lib/trifle/logger/configuration.rb +16 -5
- data/lib/trifle/logger/tracer/hash.rb +40 -4
- data/lib/trifle/logger/tracer/null.rb +8 -0
- data/lib/trifle/logger/version.rb +1 -1
- data/trifle-logger.gemspec +8 -7
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 48a73aff34aa2692b1e519b9187d24f183eb77a78f12c281ed2c58d70eae83b2
|
4
|
+
data.tar.gz: 901814f4bbb5d1ba051fbb07df45515cba23a3f5c917d4faf56d74bbf11c641d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f771e9199c43e8e92b539441bb92a05bda8016f6f8f8e81e5b4cd3715af24e040dff78e26e867b42c0e6653025e7731d2d0333272acfece001be27de8c84ff81
|
7
|
+
data.tar.gz: aff6f4c35409a475fdfbf20acc54497ee00aa0ac60c7cd340d39dfb6b7480ad2a5bc04a3a50e7c8a30ec037ced3c2bb6e15fa43c9809cfb1aab5e158bcea6e26
|
data/.github/workflows/ruby.yml
CHANGED
@@ -9,29 +9,28 @@ name: Ruby
|
|
9
9
|
|
10
10
|
on:
|
11
11
|
push:
|
12
|
-
branches: [
|
12
|
+
branches: [main]
|
13
13
|
pull_request:
|
14
|
-
branches: [
|
14
|
+
branches: [main]
|
15
15
|
|
16
16
|
jobs:
|
17
17
|
test:
|
18
|
-
|
19
18
|
runs-on: ubuntu-latest
|
20
19
|
strategy:
|
21
20
|
matrix:
|
22
|
-
ruby-version: [
|
21
|
+
ruby-version: ["3.0"]
|
23
22
|
|
24
23
|
steps:
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
24
|
+
- uses: actions/checkout@v2
|
25
|
+
- name: Set up Ruby
|
26
|
+
# To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
|
27
|
+
# change this to (see https://github.com/ruby/setup-ruby#versioning):
|
28
|
+
# uses: ruby/setup-ruby@v1
|
29
|
+
uses: ruby/setup-ruby@473e4d8fe5dd94ee328fdfca9f8c9c7afc9dae5e
|
30
|
+
with:
|
31
|
+
ruby-version: ${{ matrix.ruby-version }}
|
32
|
+
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
|
33
|
+
- name: Rspec
|
34
|
+
run: bundle exec rspec
|
35
|
+
- name: Rubocop
|
36
|
+
run: bundle exec rubocop
|
data/Gemfile.lock
CHANGED
data/lib/trifle/logger.rb
CHANGED
@@ -3,17 +3,28 @@
|
|
3
3
|
module Trifle
|
4
4
|
module Logger
|
5
5
|
class Configuration
|
6
|
-
attr_accessor :tracer_klass, :callbacks
|
6
|
+
attr_accessor :tracer_klass, :callbacks, :bump_every
|
7
7
|
|
8
8
|
def initialize
|
9
9
|
@tracer_klass = Trifle::Logger::Tracer::Hash
|
10
|
-
@callbacks = {
|
11
|
-
|
12
|
-
|
10
|
+
@callbacks = { liftoff: [], bump: [], wrapup: [] }
|
11
|
+
@bump_every = 15.seconds
|
12
|
+
end
|
13
|
+
|
14
|
+
def on_liftoff(tracer)
|
15
|
+
@callbacks.fetch(:liftoff, []).map do |c|
|
16
|
+
c.call(tracer)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def on_bump(tracer)
|
21
|
+
@callbacks.fetch(:bump, []).map do |c|
|
22
|
+
c.call(tracer)
|
23
|
+
end
|
13
24
|
end
|
14
25
|
|
15
26
|
def on_wrapup(tracer)
|
16
|
-
@callbacks.fetch(:wrapup, []).
|
27
|
+
@callbacks.fetch(:wrapup, []).map do |c|
|
17
28
|
c.call(tracer)
|
18
29
|
end
|
19
30
|
end
|
@@ -4,7 +4,7 @@ module Trifle
|
|
4
4
|
module Logger
|
5
5
|
module Tracer
|
6
6
|
class Hash
|
7
|
-
attr_accessor :key, :meta, :data, :tags, :artifacts, :state
|
7
|
+
attr_accessor :key, :meta, :data, :tags, :artifacts, :state, :ignore, :reference
|
8
8
|
|
9
9
|
def initialize(key:, meta: nil)
|
10
10
|
@key = key
|
@@ -12,10 +12,12 @@ module Trifle
|
|
12
12
|
@data = []
|
13
13
|
@tags = []
|
14
14
|
@artifacts = []
|
15
|
-
@state = :
|
15
|
+
@state = :running
|
16
|
+
@ignore = false
|
16
17
|
@result_prefix = '=> '
|
17
18
|
|
18
19
|
trace("Trifle::Trace has been initialized for #{key}")
|
20
|
+
@reference = liftoff.first
|
19
21
|
end
|
20
22
|
|
21
23
|
def keys
|
@@ -23,7 +25,7 @@ module Trifle
|
|
23
25
|
parts.count.times.map { |i| parts[0..i].join('/') }
|
24
26
|
end
|
25
27
|
|
26
|
-
def trace(message, state: :success, head: false)
|
28
|
+
def trace(message, state: :success, head: false) # rubocop:disable Metrics/MethodLength
|
27
29
|
result = yield if block_given?
|
28
30
|
rescue => e # rubocop:disable Style/RescueStandardError
|
29
31
|
raise e
|
@@ -33,6 +35,7 @@ module Trifle
|
|
33
35
|
head: head, state: block_given? && result.nil? || e ? :error : state
|
34
36
|
)
|
35
37
|
dump_result(result) if block_given?
|
38
|
+
bump
|
36
39
|
result
|
37
40
|
end
|
38
41
|
|
@@ -56,25 +59,58 @@ module Trifle
|
|
56
59
|
|
57
60
|
def tag(tag)
|
58
61
|
@tags << tag
|
62
|
+
bump
|
63
|
+
tag
|
59
64
|
end
|
60
65
|
|
61
66
|
def artifact(name, path)
|
62
67
|
@data << {
|
63
|
-
at: now, message:
|
68
|
+
at: now, message: name,
|
64
69
|
state: :success, head: false, meta: false, media: true
|
65
70
|
}
|
66
71
|
@artifacts << path
|
72
|
+
bump
|
73
|
+
path
|
67
74
|
end
|
68
75
|
|
69
76
|
def fail!
|
70
77
|
@state = :error
|
71
78
|
end
|
72
79
|
|
80
|
+
def warn!
|
81
|
+
@state = :warning
|
82
|
+
end
|
83
|
+
|
84
|
+
def success!
|
85
|
+
@state = :success
|
86
|
+
end
|
87
|
+
|
73
88
|
def success?
|
74
89
|
@state == :success
|
75
90
|
end
|
76
91
|
|
92
|
+
def running?
|
93
|
+
@state == :running
|
94
|
+
end
|
95
|
+
|
96
|
+
def ignore!
|
97
|
+
@ignore = true
|
98
|
+
end
|
99
|
+
|
100
|
+
def liftoff
|
101
|
+
@bumped_at = now
|
102
|
+
Trifle::Logger.default.on_liftoff(self)
|
103
|
+
end
|
104
|
+
|
105
|
+
def bump
|
106
|
+
return unless @bumped_at && @bumped_at <= now - Trifle::Logger.default.bump_every
|
107
|
+
|
108
|
+
@bumped_at = now
|
109
|
+
Trifle::Logger.default.on_bump(self)
|
110
|
+
end
|
111
|
+
|
77
112
|
def wrapup
|
113
|
+
success! if running?
|
78
114
|
Trifle::Logger.default.on_wrapup(self)
|
79
115
|
end
|
80
116
|
end
|
data/trifle-logger.gemspec
CHANGED
@@ -1,18 +1,19 @@
|
|
1
1
|
require_relative 'lib/trifle/logger/version'
|
2
2
|
|
3
3
|
Gem::Specification.new do |spec|
|
4
|
-
spec.name =
|
4
|
+
spec.name = 'trifle-logger'
|
5
5
|
spec.version = Trifle::Logger::VERSION
|
6
|
-
spec.authors = [
|
7
|
-
spec.email = [
|
6
|
+
spec.authors = ['Jozef Vaclavik']
|
7
|
+
spec.email = ['jozef@hey.com']
|
8
8
|
|
9
9
|
spec.summary = 'Simple logger backed by Hash'
|
10
10
|
spec.description = 'Trifle::Logger is a way too simple timeline logger '\
|
11
11
|
'that helps you track custom outputs.'
|
12
12
|
spec.homepage = 'https://trifle.io'
|
13
|
-
spec.
|
13
|
+
spec.licenses = ['MIT']
|
14
|
+
spec.required_ruby_version = Gem::Requirement.new('>= 2.6')
|
14
15
|
|
15
|
-
spec.metadata[
|
16
|
+
spec.metadata['homepage_uri'] = spec.homepage
|
16
17
|
spec.metadata['source_code_uri'] = 'https://github.com/trifle-io/trifle-logger'
|
17
18
|
|
18
19
|
# Specify which files should be added to the gem when it is released.
|
@@ -20,9 +21,9 @@ Gem::Specification.new do |spec|
|
|
20
21
|
spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
|
21
22
|
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
22
23
|
end
|
23
|
-
spec.bindir =
|
24
|
+
spec.bindir = 'exe'
|
24
25
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
25
|
-
spec.require_paths = [
|
26
|
+
spec.require_paths = ['lib']
|
26
27
|
|
27
28
|
spec.add_development_dependency('bundler', '~> 2.1')
|
28
29
|
spec.add_development_dependency('byebug', '>= 0')
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: trifle-logger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jozef Vaclavik
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-07-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -113,7 +113,8 @@ files:
|
|
113
113
|
- lib/trifle/logger/version.rb
|
114
114
|
- trifle-logger.gemspec
|
115
115
|
homepage: https://trifle.io
|
116
|
-
licenses:
|
116
|
+
licenses:
|
117
|
+
- MIT
|
117
118
|
metadata:
|
118
119
|
homepage_uri: https://trifle.io
|
119
120
|
source_code_uri: https://github.com/trifle-io/trifle-logger
|