k_log 0.0.14 → 0.0.19
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 +4 -4
- data/.rubocop.yml +6 -0
- data/lib/k_log.rb +7 -1
- data/lib/k_log/examples.rb +129 -0
- data/lib/k_log/log_helper.rb +1 -1
- data/lib/k_log/log_util.rb +34 -2
- data/lib/k_log/logging.rb +9 -0
- data/lib/k_log/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 243999c48416e082085f9c72519cd2cc97bb8585389ee6848592f18dc2cfc6bd
|
4
|
+
data.tar.gz: '009abfdd9b635d89f6e31f8197516f0dd612ce14adc9dfb7f005c9a9da458684'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f19cf492a22aaf8dbc89dcd9246aacc5732e3db7844d17030d63091e672c4fb201d11c221bbe24450cb1d8745b16d8b70bb21994cc821387ee703aaea4bbc69f
|
7
|
+
data.tar.gz: f0355d0438831db47d1ec390ba7d336b763d76f8d1d23f9520c98a1641901f0114c9961e9ac5d158daa8cddf5658782c6311721aeea5f01cd6dbe7ba24a80c80
|
data/.rubocop.yml
CHANGED
@@ -44,11 +44,17 @@ Layout/LineLength:
|
|
44
44
|
Lint/UnusedMethodArgument:
|
45
45
|
AllowUnusedKeywordArguments: true
|
46
46
|
|
47
|
+
Style/Documentation:
|
48
|
+
Enabled: false
|
49
|
+
|
47
50
|
Style/BlockComments:
|
48
51
|
Enabled: false
|
49
52
|
Include:
|
50
53
|
- "**/spec/*"
|
51
54
|
|
55
|
+
Layout/EndOfLine:
|
56
|
+
EnforcedStyle: lf
|
57
|
+
|
52
58
|
# My Preferences - Start
|
53
59
|
Metrics/ClassLength:
|
54
60
|
Enabled: false
|
data/lib/k_log.rb
CHANGED
@@ -6,6 +6,7 @@ require 'k_log/version'
|
|
6
6
|
require 'k_log/log_formatter'
|
7
7
|
require 'k_log/log_helper'
|
8
8
|
require 'k_log/log_util'
|
9
|
+
require 'k_log/logging'
|
9
10
|
|
10
11
|
# Simple console log helpers
|
11
12
|
module KLog
|
@@ -30,4 +31,9 @@ end
|
|
30
31
|
|
31
32
|
KLog.logger = KLog.default_logger
|
32
33
|
|
33
|
-
|
34
|
+
if ENV['KLUE_DEBUG']&.to_s&.downcase == 'true'
|
35
|
+
namespace = 'KLog::Version'
|
36
|
+
file_path = $LOADED_FEATURES.find { |f| f.include?('k_log/version') }
|
37
|
+
version = KLog::VERSION.ljust(9)
|
38
|
+
puts "#{namespace.ljust(35)} : #{version.ljust(9)} : #{file_path}"
|
39
|
+
end
|
@@ -0,0 +1,129 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module KLog
|
4
|
+
class Examples
|
5
|
+
include KLog::Logging
|
6
|
+
|
7
|
+
# rubocop:disable Metrics/AbcSize, Metrics/MethodLength
|
8
|
+
def examples
|
9
|
+
examples_simple
|
10
|
+
examples_complex
|
11
|
+
end
|
12
|
+
|
13
|
+
def examples_simple
|
14
|
+
log.debug 'some debug message'
|
15
|
+
log.info 'some info message'
|
16
|
+
log.warn 'some warning message'
|
17
|
+
log.error 'some error message'
|
18
|
+
log.fatal 'some fatal message'
|
19
|
+
|
20
|
+
log.kv('First Name', 'David')
|
21
|
+
log.kv('Last Name', 'Cruwys')
|
22
|
+
log.kv('Age', 45)
|
23
|
+
log.kv('Sex', 'male')
|
24
|
+
|
25
|
+
log.heading('Heading')
|
26
|
+
log.subheading('Sub Heading')
|
27
|
+
log.section_heading('Section Heading')
|
28
|
+
|
29
|
+
data = OpenStruct.new
|
30
|
+
data.title = 'Software Architect'
|
31
|
+
data.age = 45
|
32
|
+
data.name = 'David'
|
33
|
+
data.names = %w[David Bill]
|
34
|
+
data.status = :debug
|
35
|
+
data.statuses = %i[debug info blah]
|
36
|
+
log.open_struct(data, section_heading: 'Display Open Struct')
|
37
|
+
end
|
38
|
+
|
39
|
+
def examples_complex
|
40
|
+
log.block ['Line 1', 12, 'Line 3', true, 'Line 5']
|
41
|
+
|
42
|
+
log.progress(0, 'Section 1')
|
43
|
+
log.progress
|
44
|
+
log.progress
|
45
|
+
save_progress = log.progress
|
46
|
+
|
47
|
+
log.progress(10, 'Section 2')
|
48
|
+
log.progress
|
49
|
+
log.progress
|
50
|
+
log.progress
|
51
|
+
|
52
|
+
log.progress(save_progress, 'Section 1')
|
53
|
+
log.progress
|
54
|
+
log.progress
|
55
|
+
log.progress
|
56
|
+
|
57
|
+
log.line
|
58
|
+
log.line(20)
|
59
|
+
log.line(20, character: '-')
|
60
|
+
|
61
|
+
yaml1 = {}
|
62
|
+
yaml1['title'] = 'Software Architect'
|
63
|
+
yaml1['age'] = 45
|
64
|
+
yaml1['name'] = 'David'
|
65
|
+
|
66
|
+
yaml3 = {}
|
67
|
+
yaml3['title'] = 'Developer'
|
68
|
+
yaml3['age'] = 20
|
69
|
+
yaml3['name'] = 'Jin'
|
70
|
+
|
71
|
+
log.yaml(yaml1)
|
72
|
+
|
73
|
+
yaml2 = OpenStruct.new
|
74
|
+
yaml2.title = 'Software Architect'
|
75
|
+
yaml2.age = 45
|
76
|
+
yaml2.name = 'David'
|
77
|
+
|
78
|
+
log.yaml(yaml2)
|
79
|
+
|
80
|
+
mixed_yaml_array = [yaml1, yaml2]
|
81
|
+
|
82
|
+
# This fails because we don't correctly pre-process the array
|
83
|
+
log.yaml(mixed_yaml_array)
|
84
|
+
|
85
|
+
hash_yaml_array = [yaml1, yaml3]
|
86
|
+
|
87
|
+
log.yaml(hash_yaml_array)
|
88
|
+
|
89
|
+
begin
|
90
|
+
raise 'Here is an error'
|
91
|
+
rescue StandardError => e
|
92
|
+
log.exception(e)
|
93
|
+
end
|
94
|
+
end
|
95
|
+
# rubocop:enable Metrics/AbcSize, Metrics/MethodLength
|
96
|
+
|
97
|
+
private
|
98
|
+
|
99
|
+
def debug_multi_lines(lines)
|
100
|
+
lines.each do |line|
|
101
|
+
debug(line)
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
def info_multi_lines(lines)
|
106
|
+
lines.each do |line|
|
107
|
+
info(line)
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
def warn_multi_lines(lines)
|
112
|
+
lines.each do |line|
|
113
|
+
warn(line)
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
def error_multi_lines(lines)
|
118
|
+
lines.each do |line|
|
119
|
+
error(line)
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
def fatal_multi_lines(lines)
|
124
|
+
lines.each do |line|
|
125
|
+
fatal(line)
|
126
|
+
end
|
127
|
+
end
|
128
|
+
end
|
129
|
+
end
|
data/lib/k_log/log_helper.rb
CHANGED
data/lib/k_log/log_util.rb
CHANGED
@@ -50,6 +50,7 @@ module KLog
|
|
50
50
|
#----------------------------------------------------------------------------------------------------
|
51
51
|
|
52
52
|
# Write a Key/Value Pair
|
53
|
+
# Need to change this to named_param
|
53
54
|
def kv(key, value, key_width = 30)
|
54
55
|
message = LogHelper.kv(key, value, key_width)
|
55
56
|
@logger.info(message)
|
@@ -132,6 +133,10 @@ module KLog
|
|
132
133
|
|
133
134
|
# rubocop:disable Metrics/CyclomaticComplexity, Metrics/MethodLength, Metrics/PerceivedComplexity, Metrics/AbcSize
|
134
135
|
def open_struct(data, indent = '', **opts)
|
136
|
+
KLog.logger.heading(opts[:heading], 88) unless opts[:heading].nil?
|
137
|
+
KLog.logger.subheading(opts[:subheading], 88) unless opts[:subheading].nil?
|
138
|
+
KLog.logger.section_heading(opts[:section_heading], 88) unless opts[:section_heading].nil?
|
139
|
+
|
135
140
|
data.each_pair do |key, value|
|
136
141
|
case value
|
137
142
|
when OpenStruct
|
@@ -152,8 +157,8 @@ module KLog
|
|
152
157
|
puts LogHelper.section_heading(opts[:subheading], 88) unless opts[:subheading].nil?
|
153
158
|
|
154
159
|
if value.length.positive?
|
155
|
-
if value.first.is_a?(String)
|
156
|
-
KLog.logger.kv "#{indent}#{key}", value.join(', ')
|
160
|
+
if value.first.is_a?(String) || value.first.is_a?(Symbol)
|
161
|
+
KLog.logger.kv "#{indent}#{key}", value.map(&:to_s).join(', ')
|
157
162
|
else
|
158
163
|
tp value, value.first.to_h.keys
|
159
164
|
end
|
@@ -206,6 +211,12 @@ module KLog
|
|
206
211
|
end
|
207
212
|
# rubocop:enable Metrics/AbcSize
|
208
213
|
|
214
|
+
def kv_hash(hash)
|
215
|
+
hash.each do |key, value|
|
216
|
+
kv(key, value)
|
217
|
+
end
|
218
|
+
end
|
219
|
+
|
209
220
|
# NOTE: using pretty_inspect is an existing namespace conflict
|
210
221
|
def pretty_params(params)
|
211
222
|
line
|
@@ -233,6 +244,27 @@ module KLog
|
|
233
244
|
end
|
234
245
|
end
|
235
246
|
|
247
|
+
def visual_compare_hashes(hash1, hash2)
|
248
|
+
content1 = JSON.pretty_generate(hash1)
|
249
|
+
content2 = JSON.pretty_generate(hash2)
|
250
|
+
|
251
|
+
file1 = Tempfile.new('hash1')
|
252
|
+
file1.write(content1)
|
253
|
+
file1.close
|
254
|
+
|
255
|
+
file2 = Tempfile.new('hash2')
|
256
|
+
file2.write(content2)
|
257
|
+
file2.close
|
258
|
+
|
259
|
+
system "code --diff #{file1.path} #{file2.path}"
|
260
|
+
|
261
|
+
# Provide enough time for vscode to open and display the files before deleting them
|
262
|
+
sleep 1
|
263
|
+
|
264
|
+
file1.unlink
|
265
|
+
file2.unlink
|
266
|
+
end
|
267
|
+
|
236
268
|
#----------------------------------------------------------------------------------------------------
|
237
269
|
# Internal Methods
|
238
270
|
#----------------------------------------------------------------------------------------------------
|
data/lib/k_log/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: k_log
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.19
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Cruwys
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-07-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: table_print
|
@@ -52,9 +52,11 @@ files:
|
|
52
52
|
- hooks/update-version
|
53
53
|
- k_log.gemspec
|
54
54
|
- lib/k_log.rb
|
55
|
+
- lib/k_log/examples.rb
|
55
56
|
- lib/k_log/log_formatter.rb
|
56
57
|
- lib/k_log/log_helper.rb
|
57
58
|
- lib/k_log/log_util.rb
|
59
|
+
- lib/k_log/logging.rb
|
58
60
|
- lib/k_log/version.rb
|
59
61
|
- usage.png
|
60
62
|
homepage: http://appydave.com/gems/k-log
|