twiglet 2.4.0 → 3.0.0

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: a9eac4966bd34b02389637e38100f843f842fc115bad74d9480dc5b87a1dcad2
4
- data.tar.gz: 3fb45d8d76a99246f4a215e42fa15dfa52b3f8f7cd8821edf8590653a114514c
3
+ metadata.gz: a3d278f5c152781abb779db8f28f7297f52c4d76db5358a78f13e784475f4851
4
+ data.tar.gz: bd8e3ae4b640ade3cb57489216cbdc7aec383f5535946c328352cc350057474c
5
5
  SHA512:
6
- metadata.gz: 276587b79e63ad48de407c26ad113e64c6fb2819c991622f3f6ea50abe583853991a7f32ceafa4fc2008dff2a4ff4216766c53d0910ff8538ad26430474573f5
7
- data.tar.gz: a963f5d218c7c8c327400245b122f83873201191c01828efa125418ea6e0b08d21c86a53ab791aedc9fb900a8642cb0e1130a835516388e922da6b00ccf83880
6
+ metadata.gz: ef689b0df5314da2ddb0e5ed95a724d25f0f5c93f2f9647478d7f9eb60acb60b7b712c731b4118087d28f32685cc91bdb032f73e7438a822ad8fc7be7e742dd4
7
+ data.tar.gz: 2bc88df6d4f6a7cd4c0304eeafa199384054c58cc6f39629daec456605c72397302a49380f8bf681645654b030bc59b7d458ac45ca42091558711ea9980b6580
@@ -16,7 +16,7 @@ jobs:
16
16
 
17
17
  strategy:
18
18
  matrix:
19
- ruby-version: [2.5, 2.6, 2.7]
19
+ ruby-version: [2.6, 2.7]
20
20
 
21
21
  steps:
22
22
  - uses: actions/checkout@v2
@@ -2,7 +2,7 @@ inherit_gem:
2
2
  simplycop: .simplycop.yml
3
3
 
4
4
  AllCops:
5
- TargetRubyVersion: 2.5
5
+ TargetRubyVersion: 2.6
6
6
  Rails:
7
7
  Enabled: false
8
8
  Documentation:
data/Gemfile CHANGED
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  source 'https://rubygems.org'
4
- gem 'simplycop', git: 'https://github.com/simplybusiness/simplycop.git'
5
4
  group :development, :test do
6
5
  gem 'minitest'
7
6
  gem 'rake'
8
7
  gem 'simplecov', '0.17.1'
8
+ gem 'simplycop'
9
9
  end
@@ -8,27 +8,27 @@ logger = Twiglet::Logger.new('petshop')
8
8
 
9
9
  # Start our petshop
10
10
  logger.info({
11
- event: {
12
- action: 'startup'
13
- },
14
- message: "Ready to go, listening on port #{PORT}",
15
- server: {
16
- port: PORT
17
- }
18
- })
11
+ event: {
12
+ action: 'startup'
13
+ },
14
+ message: "Ready to go, listening on port #{PORT}",
15
+ server: {
16
+ port: PORT
17
+ }
18
+ })
19
19
 
20
20
  # Use text logging
21
21
  logger.info("Ready to go, listening on port #{PORT}")
22
22
  #
23
23
  # We get a request
24
24
  request_logger = logger.with({
25
- event: {
26
- action: 'HTTP request'
27
- },
28
- trace: {
29
- id: '126bb6fa-28a2-470f-b013-eefbf9182b2d'
30
- }
31
- })
25
+ event: {
26
+ action: 'HTTP request'
27
+ },
28
+ trace: {
29
+ id: '126bb6fa-28a2-470f-b013-eefbf9182b2d'
30
+ }
31
+ })
32
32
 
33
33
  # Oh noes!
34
34
  db_err = StandardError.new('Connection timed-out')
@@ -37,16 +37,16 @@ request_logger.error({ message: 'DB connection failed.' }, db_err) if db_err
37
37
 
38
38
  # We return an error to the requester
39
39
  request_logger.info({
40
- message: 'Internal Server Error',
41
- http: {
42
- request: {
43
- method: 'get'
44
- },
45
- response: {
46
- status_code: 500
47
- }
48
- }
49
- })
40
+ message: 'Internal Server Error',
41
+ http: {
42
+ request: {
43
+ method: 'get'
44
+ },
45
+ response: {
46
+ status_code: 500
47
+ }
48
+ }
49
+ })
50
50
 
51
51
  # Logging with an empty message is an anti-pattern and is therefore forbidden
52
52
  # Both of the following lines would throw an error
@@ -22,8 +22,8 @@ module HashExtensions
22
22
 
23
23
  def build_nested_object(key, val)
24
24
  key.to_s
25
- .split('.')
26
- .reverse
27
- .reduce(val) { |nested, key_part| Hash[key_part.to_sym, nested] }
25
+ .split('.')
26
+ .reverse
27
+ .reduce(val) { |nested, key_part| Hash[key_part.to_sym, nested] }
28
28
  end
29
29
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Twiglet
4
- VERSION = '2.4.0'
4
+ VERSION = '3.0.0'
5
5
  end
@@ -3,6 +3,16 @@
3
3
  require 'minitest/autorun'
4
4
  require_relative '../lib/twiglet/logger'
5
5
 
6
+ LEVELS = [
7
+ { method: :debug, level: 'debug' },
8
+ { method: :info, level: 'info' },
9
+ { method: :warning, level: 'warn' },
10
+ { method: :warn, level: 'warn' },
11
+ { method: :critical, level: 'fatal' },
12
+ { method: :fatal, level: 'fatal' },
13
+ { method: :error, level: 'error' }
14
+ ].freeze
15
+
6
16
  # rubocop:disable Metrics/BlockLength
7
17
  describe Twiglet::Logger do
8
18
  before do
@@ -13,16 +23,6 @@ describe Twiglet::Logger do
13
23
  output: @buffer)
14
24
  end
15
25
 
16
- LEVELS = [
17
- { method: :debug, level: 'debug' },
18
- { method: :info, level: 'info' },
19
- { method: :warning, level: 'warn' },
20
- { method: :warn, level: 'warn' },
21
- { method: :critical, level: 'fatal' },
22
- { method: :fatal, level: 'fatal' },
23
- { method: :error, level: 'error' }
24
- ].freeze
25
-
26
26
  it 'should throw an error with an empty service name' do
27
27
  assert_raises RuntimeError do
28
28
  Twiglet::Logger.new(' ')
@@ -105,16 +105,16 @@ describe Twiglet::Logger do
105
105
  it "should be able to add properties with '.with'" do
106
106
  # Let's add some context to this customer journey
107
107
  purchase_logger = @logger.with({
108
- trace: {id: '1c8a5fb2-fecd-44d8-92a4-449eb2ce4dcb'},
109
- customer: {full_name: 'Freda Bloggs'},
110
- event: {action: 'pet purchase'}
111
- })
108
+ trace: {id: '1c8a5fb2-fecd-44d8-92a4-449eb2ce4dcb'},
109
+ customer: {full_name: 'Freda Bloggs'},
110
+ event: {action: 'pet purchase'}
111
+ })
112
112
 
113
113
  # do stuff
114
114
  purchase_logger.info({
115
- message: 'customer bought a dog',
116
- pet: {name: 'Barker', species: 'dog', breed: 'Bitsa'}
117
- })
115
+ message: 'customer bought a dog',
116
+ pet: {name: 'Barker', species: 'dog', breed: 'Bitsa'}
117
+ })
118
118
 
119
119
  log = read_json @buffer
120
120
 
@@ -285,12 +285,12 @@ describe Twiglet::Logger do
285
285
  describe 'dotted keys' do
286
286
  it 'should be able to convert dotted keys to nested objects' do
287
287
  @logger.debug({
288
- "trace.id": '1c8a5fb2-fecd-44d8-92a4-449eb2ce4dcb',
289
- message: 'customer bought a dog',
290
- "pet.name": 'Barker',
291
- "pet.species": 'dog',
292
- "pet.breed": 'Bitsa'
293
- })
288
+ "trace.id": '1c8a5fb2-fecd-44d8-92a4-449eb2ce4dcb',
289
+ message: 'customer bought a dog',
290
+ "pet.name": 'Barker',
291
+ "pet.species": 'dog',
292
+ "pet.breed": 'Bitsa'
293
+ })
294
294
  log = read_json(@buffer)
295
295
 
296
296
  assert_equal '1c8a5fb2-fecd-44d8-92a4-449eb2ce4dcb', log[:trace][:id]
@@ -302,11 +302,11 @@ describe Twiglet::Logger do
302
302
 
303
303
  it 'should be able to mix dotted keys and nested objects' do
304
304
  @logger.debug({
305
- "trace.id": '1c8a5fb2-fecd-44d8-92a4-449eb2ce4dcb',
306
- message: 'customer bought a dog',
307
- pet: {name: 'Barker', breed: 'Bitsa'},
308
- "pet.species": 'dog'
309
- })
305
+ "trace.id": '1c8a5fb2-fecd-44d8-92a4-449eb2ce4dcb',
306
+ message: 'customer bought a dog',
307
+ pet: {name: 'Barker', breed: 'Bitsa'},
308
+ "pet.species": 'dog'
309
+ })
310
310
  log = read_json(@buffer)
311
311
 
312
312
  assert_equal '1c8a5fb2-fecd-44d8-92a4-449eb2ce4dcb', log[:trace][:id]
@@ -18,7 +18,7 @@ Gem::Specification.new do |gem|
18
18
  gem.test_files = `git ls-files -- {test}/*`.split("\n")
19
19
 
20
20
  gem.require_paths = ['lib']
21
- gem.required_ruby_version = '>= 2.5'
21
+ gem.required_ruby_version = '>= 2.6'
22
22
 
23
23
  gem.license = 'Copyright SimplyBusiness'
24
24
  end
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: 2.4.0
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Simply Business
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-09-04 00:00:00.000000000 Z
11
+ date: 2020-12-22 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Like a log, only smaller.
14
14
  email:
@@ -59,14 +59,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
59
59
  requirements:
60
60
  - - ">="
61
61
  - !ruby/object:Gem::Version
62
- version: '2.5'
62
+ version: '2.6'
63
63
  required_rubygems_version: !ruby/object:Gem::Requirement
64
64
  requirements:
65
65
  - - ">="
66
66
  - !ruby/object:Gem::Version
67
67
  version: '0'
68
68
  requirements: []
69
- rubygems_version: 3.0.3
69
+ rubygems_version: 3.1.4
70
70
  signing_key:
71
71
  specification_version: 4
72
72
  summary: Twiglet