twiglet 3.5.4 → 3.6.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: 7b8ba648b25202c2ee3c47bdd3885e879681ec1b4e3685edf97905b16a6caeb7
4
- data.tar.gz: 78547321be656034d05e9dfacb29f913214a5ed540355d4050675e55b5302ac0
3
+ metadata.gz: 76f00aef2cd70ee47d990053fe16f449a5634b31665773d577888db89964cb25
4
+ data.tar.gz: 5d341c7f95bd99d88258121e25f1946e34d25951962082f9e3dc966738d07de0
5
5
  SHA512:
6
- metadata.gz: a9c8563acaa808a3491c386a5c57025089d83033cf35d38baf92b4abb2d9cb88ee52827155c03504c4d012d50df8acecb084b649239e558dbeca2817b016734d
7
- data.tar.gz: 97d2797e525c3dd2dd19d9a6e5fde20226fa2675d40be1d3e7c2ba57dc6833dcb601ebe1e62f7c7827113f9a260cb642c40b3cfbc32bed0db9ba4b5d76f0dd61
6
+ metadata.gz: c5c6a7a188f8f4a5e0ac35f07d86dd2327fb630b232bd1c3f2d57f6ae638c4dd73f560ade3e5307f0b370b782d959b50e91b5c30d31b090a9784265af7a8eac5
7
+ data.tar.gz: 398bcd53aba62e0b97893735928efeb6b9c50c3a3ae6464ad124ba09a62280b0db11caf7dc9d71f0d50bfc352546504e7cf9733e95eb6b552c75a5c6caa3678f
@@ -7,23 +7,8 @@ permissions:
7
7
  contents: read
8
8
  jobs:
9
9
  pr_commented:
10
- runs-on: ubuntu-20.04
11
- if: startsWith(github.event.comment.body, '/dobby')
12
- env:
13
- BUNDLE_WITHOUT: "development:test"
14
- steps:
15
- - name: Chekcout action
16
- uses: actions/checkout@v3
17
- with:
18
- repository: 'simplybusiness/dobby'
19
- ref: 'v3.0.0'
20
- - name: Set up ruby
21
- uses: ruby/setup-ruby@v1
22
- with:
23
- bundler-cache: true
24
- - name: Bump version
25
- uses: simplybusiness/dobby@v3.0.1
26
- env:
27
- DOBBY_APP_ID: ${{ secrets.DOBBY_APP_ID }}
28
- DOBBY_PRIVATE_KEY: ${{ secrets.DOBBY_PRIVATE_KEY }}
29
- VERSION_FILE_PATH: lib/twiglet/version.rb
10
+ uses: simplybusiness/github-action-reusable-workflows/.github/workflows/dobby.yaml@v1
11
+ with:
12
+ version_file_path: ./lib/twiglet/version.rb
13
+ secrets: inherit
14
+
@@ -42,17 +42,26 @@ module Twiglet
42
42
  @validator.custom_error_handler = block
43
43
  end
44
44
 
45
+ def debug(message_or_error = nil, &block)
46
+ message = message_or_error.is_a?(Exception) ? error_message(message_or_error) : message_or_error
47
+
48
+ super(message, &block)
49
+ end
50
+
51
+ def info(message_or_error = nil, &block)
52
+ message = message_or_error.is_a?(Exception) ? error_message(message_or_error) : message_or_error
53
+
54
+ super(message, &block)
55
+ end
56
+
57
+ def warn(message_or_error = nil, &block)
58
+ message = message_or_error.is_a?(Exception) ? error_message(message_or_error) : message_or_error
59
+
60
+ super(message, &block)
61
+ end
62
+
45
63
  def error(message = nil, error = nil, &block)
46
- if error
47
- error_fields = {
48
- error: {
49
- type: error.class.to_s,
50
- message: error.message
51
- }
52
- }
53
- add_stack_trace(error_fields, error)
54
- message = Message.new(message).merge(error_fields)
55
- end
64
+ message = error_message(error, message) if error
56
65
 
57
66
  super(message, &block)
58
67
  end
@@ -76,6 +85,18 @@ module Twiglet
76
85
 
77
86
  private
78
87
 
88
+ def error_message(error, message = nil)
89
+ error_fields = {
90
+ error: {
91
+ type: error.class.to_s,
92
+ message: error.message
93
+ }
94
+ }
95
+ add_stack_trace(error_fields, error)
96
+ message = error.message if message.nil? || message.empty?
97
+ Message.new(message).merge(error_fields)
98
+ end
99
+
79
100
  def add_stack_trace(hash_to_add_to, error)
80
101
  hash_to_add_to[:error][:stack_trace] = error.backtrace if error.backtrace
81
102
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Twiglet
4
- VERSION = '3.5.4'
4
+ VERSION = '3.6.1'
5
5
  end
data/test/logger_test.rb CHANGED
@@ -361,6 +361,31 @@ describe Twiglet::Logger do
361
361
 
362
362
  assert_equal 'StandardError', actual_log[:error][:type]
363
363
  end
364
+
365
+ it 'can log just an error as "error", if no message is given' do
366
+ e = StandardError.new('some error')
367
+ @logger.error(nil, e)
368
+
369
+ actual_log = read_json(@buffer)
370
+
371
+ assert_equal 'some error', actual_log[:message]
372
+ assert_equal 'StandardError', actual_log[:error][:type]
373
+ assert_equal 'some error', actual_log[:error][:message]
374
+ end
375
+
376
+ [:debug, :info, :warn].each do |level|
377
+ it "can log an error with type, error message etc.. as '#{level}'" do
378
+ error_message = "error to be logged as #{level}"
379
+ e = StandardError.new(error_message)
380
+ @logger.public_send(level, e)
381
+
382
+ actual_log = read_json(@buffer)
383
+
384
+ assert_equal error_message, actual_log[:message]
385
+ assert_equal 'StandardError', actual_log[:error][:type]
386
+ assert_equal error_message, actual_log[:error][:message]
387
+ end
388
+ end
364
389
  end
365
390
 
366
391
  describe 'text logging' do
@@ -420,6 +445,15 @@ describe Twiglet::Logger do
420
445
  assert_equal 'a block log message', actual_log[:message]
421
446
  end
422
447
  end
448
+
449
+ it 'should ignore the given progname if a block is also given' do
450
+ block = proc { 'a block log message' }
451
+ @logger.info('my-program-name', &block)
452
+ actual_log = read_json(@buffer)
453
+
454
+ assert_equal 'info', actual_log[:log][:level]
455
+ assert_equal 'a block log message', actual_log[:message]
456
+ end
423
457
  end
424
458
 
425
459
  describe 'dotted keys' do
data/twiglet.gemspec CHANGED
@@ -15,7 +15,6 @@ Gem::Specification.new do |gem|
15
15
  gem.description = 'Like a log, only smaller.'
16
16
 
17
17
  gem.files = `git ls-files`.split("\n")
18
- gem.test_files = `git ls-files -- {test}/*`.split("\n")
19
18
 
20
19
  gem.require_paths = ['lib']
21
20
  gem.required_ruby_version = '>= 2.6'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: twiglet
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.5.4
4
+ version: 3.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Simply Business
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-07-11 00:00:00.000000000 Z
11
+ date: 2022-09-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json-schema