trifle-logger 0.1.1 → 0.2.1

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: '0578601393dda909ed8cc166ca51644295c243fc4325b31069859582aa22ef6d'
4
- data.tar.gz: 67cf35fb1e7f96b0b0df9007f3c351be4403bd9a45392a27a90a905d92ce2d86
3
+ metadata.gz: 48a73aff34aa2692b1e519b9187d24f183eb77a78f12c281ed2c58d70eae83b2
4
+ data.tar.gz: 901814f4bbb5d1ba051fbb07df45515cba23a3f5c917d4faf56d74bbf11c641d
5
5
  SHA512:
6
- metadata.gz: 1e0cc99ab3f714b6f71689086b760ebe99d1d4fcef36904571851460870df6cba427015b867d91b12f74daa469db3d3746fd17ab0b73554603ac26ae9f6f9c61
7
- data.tar.gz: 6173ea06ba76ac6a505241b7e6d4460e2b230cb200606fd8eec1ed13228a688995d0446914bca2387cff5df3f02018be58fb95531b7fcc63b2bd2732c3a25bea
6
+ metadata.gz: f771e9199c43e8e92b539441bb92a05bda8016f6f8f8e81e5b4cd3715af24e040dff78e26e867b42c0e6653025e7731d2d0333272acfece001be27de8c84ff81
7
+ data.tar.gz: aff6f4c35409a475fdfbf20acc54497ee00aa0ac60c7cd340d39dfb6b7480ad2a5bc04a3a50e7c8a30ec037ced3c2bb6e15fa43c9809cfb1aab5e158bcea6e26
@@ -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.1)
4
+ trifle-logger (0.2.1)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/lib/trifle/logger.rb CHANGED
@@ -56,5 +56,17 @@ module Trifle
56
56
 
57
57
  tracer.fail!
58
58
  end
59
+
60
+ def self.warn!
61
+ return unless tracer
62
+
63
+ tracer.warn!
64
+ end
65
+
66
+ def self.ignore!
67
+ return unless tracer
68
+
69
+ tracer.ignore!
70
+ end
59
71
  end
60
72
  end
@@ -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,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 = :success
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: "Artifact: #{name}",
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
@@ -14,6 +14,14 @@ module Trifle
14
14
 
15
15
  def fail!; end
16
16
 
17
+ def warn!; end
18
+
19
+ def ignore!; end
20
+
21
+ def liftoff; end
22
+
23
+ def bump; end
24
+
17
25
  def wrapup; end
18
26
  end
19
27
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Trifle
4
4
  module Logger
5
- VERSION = '0.1.1'
5
+ VERSION = '0.2.1'
6
6
  end
7
7
  end
@@ -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.1
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-03-29 00:00:00.000000000 Z
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