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 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