trifle-logger 0.1.3 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e01d80c42124d01841fc6319f7ba1e7bb13729291cc9baf2aba7c32d642095f6
4
- data.tar.gz: cf44c0949bf5033174a14b4bb4b7e2f0637af77141a840d919b5598c4292c632
3
+ metadata.gz: 22b50e2000ee750a8f1d944ac0616112672f0075e2dd083775946c989a7a9262
4
+ data.tar.gz: f11284203057303f713dfd097cf48cc1bfa4a59169118bd2b80fa9efbe95b9c4
5
5
  SHA512:
6
- metadata.gz: f6158bebc28ae7f235a8fcfba2b89b05d37e746fb4f23b89a251564e36e4b400bbf1209d2cd3457646ffff1d12cce53a579f1c43d50264c60b3fab0bf335efd4
7
- data.tar.gz: 91a2ac72d053ab794bfb6af8b42996a6e56245d48b952afd86795cb85301a3f424041e640c54c3dadecbd379f2d73f40d9c7d42d4c0e30cd07db401e4d86133f
6
+ metadata.gz: fd97d0bd9e57ed06448352b30c65a544f49edbdabcabdbfdd1c326e7e46d2904d8adb99c5b8993dd5c743610ba13b1f191a38f408b3fdc1eaf130fa6a0767dc6
7
+ data.tar.gz: a51b16ea5f6a884db7daea389325a2a316b7594290b8ad16bcb1fcadb8aef943c20c2929931f3d7c074e95de64c29983401e08f3511116c7af60181e9fe5f3c1
@@ -9,29 +9,28 @@ name: Ruby
9
9
 
10
10
  on:
11
11
  push:
12
- branches: [ main ]
12
+ branches: [main]
13
13
  pull_request:
14
- branches: [ main ]
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: ['2.6', '2.7', '3.0']
21
+ ruby-version: ["3.0"]
23
22
 
24
23
  steps:
25
- - uses: actions/checkout@v2
26
- - name: Set up Ruby
27
- # To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
28
- # change this to (see https://github.com/ruby/setup-ruby#versioning):
29
- # uses: ruby/setup-ruby@v1
30
- uses: ruby/setup-ruby@473e4d8fe5dd94ee328fdfca9f8c9c7afc9dae5e
31
- with:
32
- ruby-version: ${{ matrix.ruby-version }}
33
- bundler-cache: true # runs 'bundle install' and caches installed gems automatically
34
- - name: Rspec
35
- run: bundle exec rspec
36
- - name: Rubocop
37
- run: bundle exec rubocop
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
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- trifle-logger (0.1.3)
4
+ trifle-logger (0.2.2)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -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
- wrapup: []
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, []).each do |c|
27
+ @callbacks.fetch(:wrapup, []).map do |c|
17
28
  c.call(tracer)
18
29
  end
19
30
  end
@@ -4,19 +4,25 @@ module Trifle
4
4
  module Logger
5
5
  module Tracer
6
6
  class Hash
7
- attr_accessor :key, :meta, :data, :tags, :artifacts, :state, :ignore
7
+ attr_accessor :key, :meta, :data, :tags, :artifacts, :state, :ignore, :reference
8
8
 
9
- def initialize(key:, meta: nil)
9
+ def initialize(key:, meta: nil, config: nil)
10
10
  @key = key
11
11
  @meta = meta
12
+ @config = config
12
13
  @data = []
13
14
  @tags = []
14
15
  @artifacts = []
15
- @state = :success
16
+ @state = :running
16
17
  @ignore = false
17
18
  @result_prefix = '=> '
18
19
 
19
- trace("Trifle::Trace has been initialized for #{key}")
20
+ trace("Tracer has been initialized for #{key}")
21
+ @reference = liftoff.first
22
+ end
23
+
24
+ def config
25
+ @config || Trifle::Logger.default
20
26
  end
21
27
 
22
28
  def keys
@@ -24,7 +30,7 @@ module Trifle
24
30
  parts.count.times.map { |i| parts[0..i].join('/') }
25
31
  end
26
32
 
27
- def trace(message, state: :success, head: false)
33
+ def trace(message, state: :success, head: false) # rubocop:disable Metrics/MethodLength
28
34
  result = yield if block_given?
29
35
  rescue => e # rubocop:disable Style/RescueStandardError
30
36
  raise e
@@ -34,6 +40,7 @@ module Trifle
34
40
  head: head, state: block_given? && result.nil? || e ? :error : state
35
41
  )
36
42
  dump_result(result) if block_given?
43
+ bump
37
44
  result
38
45
  end
39
46
 
@@ -57,6 +64,8 @@ module Trifle
57
64
 
58
65
  def tag(tag)
59
66
  @tags << tag
67
+ bump
68
+ tag
60
69
  end
61
70
 
62
71
  def artifact(name, path)
@@ -65,22 +74,49 @@ module Trifle
65
74
  state: :success, head: false, meta: false, media: true
66
75
  }
67
76
  @artifacts << path
77
+ bump
78
+ path
68
79
  end
69
80
 
70
81
  def fail!
71
82
  @state = :error
72
83
  end
73
84
 
85
+ def warn!
86
+ @state = :warning
87
+ end
88
+
89
+ def success!
90
+ @state = :success
91
+ end
92
+
74
93
  def success?
75
94
  @state == :success
76
95
  end
77
96
 
97
+ def running?
98
+ @state == :running
99
+ end
100
+
78
101
  def ignore!
79
102
  @ignore = true
80
103
  end
81
104
 
105
+ def liftoff
106
+ @bumped_at = now
107
+ config.on_liftoff(self)
108
+ end
109
+
110
+ def bump
111
+ return unless @bumped_at && @bumped_at <= now - config.bump_every
112
+
113
+ @bumped_at = now
114
+ config.on_bump(self)
115
+ end
116
+
82
117
  def wrapup
83
- Trifle::Logger.default.on_wrapup(self) unless @ignore
118
+ success! if running?
119
+ config.on_wrapup(self)
84
120
  end
85
121
  end
86
122
  end
@@ -14,8 +14,14 @@ module Trifle
14
14
 
15
15
  def fail!; end
16
16
 
17
+ def warn!; end
18
+
17
19
  def ignore!; end
18
20
 
21
+ def liftoff; end
22
+
23
+ def bump; end
24
+
19
25
  def wrapup; end
20
26
  end
21
27
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Trifle
4
4
  module Logger
5
- VERSION = '0.1.3'
5
+ VERSION = '0.2.2'
6
6
  end
7
7
  end
data/lib/trifle/logger.rb CHANGED
@@ -57,6 +57,12 @@ module Trifle
57
57
  tracer.fail!
58
58
  end
59
59
 
60
+ def self.warn!
61
+ return unless tracer
62
+
63
+ tracer.warn!
64
+ end
65
+
60
66
  def self.ignore!
61
67
  return unless tracer
62
68
 
@@ -1,18 +1,19 @@
1
1
  require_relative 'lib/trifle/logger/version'
2
2
 
3
3
  Gem::Specification.new do |spec|
4
- spec.name = "trifle-logger"
4
+ spec.name = 'trifle-logger'
5
5
  spec.version = Trifle::Logger::VERSION
6
- spec.authors = ["Jozef Vaclavik"]
7
- spec.email = ["jozef@hey.com"]
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.required_ruby_version = Gem::Requirement.new(">= 2.6")
13
+ spec.licenses = ['MIT']
14
+ spec.required_ruby_version = Gem::Requirement.new('>= 2.6')
14
15
 
15
- spec.metadata["homepage_uri"] = spec.homepage
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 = "exe"
24
+ spec.bindir = 'exe'
24
25
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
25
- spec.require_paths = ["lib"]
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.1.3
4
+ version: 0.2.2
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-05-07 00:00:00.000000000 Z
11
+ date: 2022-01-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