k_log 0.0.11 → 0.0.16

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: 9ac934ee60e4b387c82fd684b1f0e51408246cf6ba0f2b6006b2f9f249f05378
4
- data.tar.gz: 3c50f23e11899c8a7c87b7f5b788fa1c600592a74814dd79e6eac51ef88498a6
3
+ metadata.gz: ba63dfa4daf9b11166e15ebd5b0f0204a1ff4886c9431a252e1ff93a5c2ce343
4
+ data.tar.gz: f4ede795aeca562e9ab6ab91329fcd9bc4657fc7e9ad3338bf748d15c24e1af6
5
5
  SHA512:
6
- metadata.gz: 1f91fa31506ff4ecb7f99cd84c7ade1778bfc181a57871e9fb3e593d51613017a83197f29a858bf8414dd4112d1f408156430c478962dcbb9334b697251d4544
7
- data.tar.gz: 04bff2e6b2258f96ed212fb9eefaf953309aa9dc2d39e8293de4a1fafbaa681122374cc888b9275c81e436f9f0620094aeb56d9e4acd4956032e4367077e847a
6
+ metadata.gz: 01dd4e8a183ec4aaa3511cd2787f65dcef0cf36ac20b6bf1159a8e920206776f7af2fed28bfd7aa59c8cf83f8d831c63be3040133f2c885f3e56483340f7e05f
7
+ data.tar.gz: 8aa357235342a2ce4a41d0aa37ee753d3dd5abcfc7ce50b890f958fdc3ad965949ddaf85c89f0e2c2bee3eec55aaa9c6074ee5843a2394acf3f0ba1c6d58400a
data/.rubocop.yml CHANGED
@@ -44,6 +44,9 @@ 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:
data/k_log.gemspec CHANGED
@@ -38,6 +38,6 @@ Gem::Specification.new do |spec|
38
38
  spec.require_paths = ['lib']
39
39
  # spec.extensions = ['ext/k_log/extconf.rb']
40
40
 
41
- spec.add_dependency 'table_print', '~> 1.5.7'
41
+ spec.add_dependency 'table_print', '~> 1.5.7'
42
42
  # spec.add_dependency 'tty-box', '~> 0.5.0'
43
43
  end
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
@@ -14,11 +15,25 @@ module KLog
14
15
 
15
16
  class << self
16
17
  attr_accessor :logger
18
+
19
+ def default_logger
20
+ return @default_logger if defined? @default_logger
21
+
22
+ @default_logger = begin
23
+ logger = Logger.new($stdout)
24
+ logger.level = Logger::DEBUG
25
+ logger.formatter = KLog::LogFormatter.new
26
+ KLog::LogUtil.new(logger)
27
+ end
28
+ end
17
29
  end
18
30
  end
19
31
 
20
- # KLog.logger = Logger.new($stdout)
21
- # KLog.logger.level = Logger::DEBUG
22
- # KLog.logger.formatter = KLog::LogFormatter.new
32
+ KLog.logger = KLog.default_logger
23
33
 
24
- # L = KLog::LogUtil.new(KLog.logger)
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(40)} : #{version.ljust(9)} : #{file_path}"
39
+ end
@@ -0,0 +1,120 @@
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
+ end
29
+
30
+ def examples_complex
31
+ log.block ['Line 1', 12, 'Line 3', true, 'Line 5']
32
+
33
+ log.progress(0, 'Section 1')
34
+ log.progress
35
+ log.progress
36
+ save_progress = log.progress
37
+
38
+ log.progress(10, 'Section 2')
39
+ log.progress
40
+ log.progress
41
+ log.progress
42
+
43
+ log.progress(save_progress, 'Section 1')
44
+ log.progress
45
+ log.progress
46
+ log.progress
47
+
48
+ log.line
49
+ log.line(20)
50
+ log.line(20, character: '-')
51
+
52
+ yaml1 = {}
53
+ yaml1['title'] = 'Software Architect'
54
+ yaml1['age'] = 45
55
+ yaml1['name'] = 'David'
56
+
57
+ yaml3 = {}
58
+ yaml3['title'] = 'Developer'
59
+ yaml3['age'] = 20
60
+ yaml3['name'] = 'Jin'
61
+
62
+ log.yaml(yaml1)
63
+
64
+ yaml2 = OpenStruct.new
65
+ yaml2.title = 'Software Architect'
66
+ yaml2.age = 45
67
+ yaml2.name = 'David'
68
+
69
+ log.yaml(yaml2)
70
+
71
+ mixed_yaml_array = [yaml1, yaml2]
72
+
73
+ # This fails because we don't correctly pre-process the array
74
+ log.yaml(mixed_yaml_array)
75
+
76
+ hash_yaml_array = [yaml1, yaml3]
77
+
78
+ log.yaml(hash_yaml_array)
79
+
80
+ begin
81
+ raise 'Here is an error'
82
+ rescue StandardError => e
83
+ log.exception(e)
84
+ end
85
+ end
86
+ # rubocop:enable Metrics/AbcSize, Metrics/MethodLength
87
+
88
+ private
89
+
90
+ def debug_multi_lines(lines)
91
+ lines.each do |line|
92
+ debug(line)
93
+ end
94
+ end
95
+
96
+ def info_multi_lines(lines)
97
+ lines.each do |line|
98
+ info(line)
99
+ end
100
+ end
101
+
102
+ def warn_multi_lines(lines)
103
+ lines.each do |line|
104
+ warn(line)
105
+ end
106
+ end
107
+
108
+ def error_multi_lines(lines)
109
+ lines.each do |line|
110
+ error(line)
111
+ end
112
+ end
113
+
114
+ def fatal_multi_lines(lines)
115
+ lines.each do |line|
116
+ fatal(line)
117
+ end
118
+ end
119
+ end
120
+ end
@@ -100,8 +100,8 @@ module KLog
100
100
 
101
101
  # # :sql_array should be an array with SQL and values or with SQL and Hash
102
102
  # # example:
103
- # # L.sql(["name = :name and group_id = :value OR parent_id = :value", name: "foo'bar", value: 4])
104
- # # L.sql([sql_exact_match_skills_in_use, {names: self.segments_container.segment_values}])
103
+ # # KLog.logger.sql(["name = :name and group_id = :value OR parent_id = :value", name: "foo'bar", value: 4])
104
+ # # KLog.logger.sql([sql_exact_match_skills_in_use, {names: self.segments_container.segment_values}])
105
105
  # def sql(sql_array)
106
106
  # value = ActiveRecord::Base.send(:sanitize_sql_array, sql_array)
107
107
 
@@ -136,12 +136,12 @@ module KLog
136
136
  case value
137
137
  when OpenStruct
138
138
  if value['rows'].is_a?(Array)
139
- # L.subheading(key)
139
+ # KLog.logger.subheading(key)
140
140
  opts[:subheading] = key
141
141
  open_struct(value, indent, **opts)
142
142
  opts.delete(:subheading)
143
143
  else
144
- L.kv "#{indent}#{key}", ''
144
+ KLog.logger.kv "#{indent}#{key}", ''
145
145
  indent = "#{indent} "
146
146
  open_struct(value, indent, **opts)
147
147
  indent = indent.chomp(' ')
@@ -149,18 +149,17 @@ module KLog
149
149
  when Array
150
150
  next unless opts[:skip_array].nil?
151
151
 
152
- # puts LogHelper.subheading(key, 88)# unless opts[:subheading].nil?
153
- puts LogHelper.subheading(opts[:subheading], 88) unless opts[:subheading].nil?
152
+ puts LogHelper.section_heading(opts[:subheading], 88) unless opts[:subheading].nil?
154
153
 
155
154
  if value.length.positive?
156
155
  if value.first.is_a?(String)
157
- L.kv "#{indent}#{key}", value.join(', ')
156
+ KLog.logger.kv "#{indent}#{key}", value.join(', ')
158
157
  else
159
158
  tp value, value.first.to_h.keys
160
159
  end
161
160
  end
162
161
  else
163
- L.kv "#{indent}#{key}", value
162
+ KLog.logger.kv "#{indent}#{key}", value
164
163
  end
165
164
  end
166
165
  nil
@@ -234,6 +233,27 @@ module KLog
234
233
  end
235
234
  end
236
235
 
236
+ def visual_compare_hashes(hash1, hash2)
237
+ content1 = JSON.pretty_generate(hash1)
238
+ content2 = JSON.pretty_generate(hash2)
239
+
240
+ file1 = Tempfile.new('hash1')
241
+ file1.write(content1)
242
+ file1.close
243
+
244
+ file2 = Tempfile.new('hash2')
245
+ file2.write(content2)
246
+ file2.close
247
+
248
+ system "code --diff #{file1.path} #{file2.path}"
249
+
250
+ # Provide enough time for vscode to open and display the files before deleting them
251
+ sleep 1
252
+
253
+ file1.unlink
254
+ file2.unlink
255
+ end
256
+
237
257
  #----------------------------------------------------------------------------------------------------
238
258
  # Internal Methods
239
259
  #----------------------------------------------------------------------------------------------------
@@ -245,43 +265,43 @@ module KLog
245
265
  end
246
266
 
247
267
  def self.examples_simple
248
- L.debug 'some debug message'
249
- L.info 'some info message'
250
- L.warn 'some warning message'
251
- L.error 'some error message'
252
- L.fatal 'some fatal message'
253
-
254
- L.kv('First Name', 'David')
255
- L.kv('Last Name', 'Cruwys')
256
- L.kv('Age', 45)
257
- L.kv('Sex', 'male')
258
-
259
- L.heading('Heading')
260
- L.subheading('Sub Heading')
261
- L.section_heading('Section Heading')
268
+ KLog.logger.debug 'some debug message'
269
+ KLog.logger.info 'some info message'
270
+ KLog.logger.warn 'some warning message'
271
+ KLog.logger.error 'some error message'
272
+ KLog.logger.fatal 'some fatal message'
273
+
274
+ KLog.logger.kv('First Name', 'David')
275
+ KLog.logger.kv('Last Name', 'Cruwys')
276
+ KLog.logger.kv('Age', 45)
277
+ KLog.logger.kv('Sex', 'male')
278
+
279
+ KLog.logger.heading('Heading')
280
+ KLog.logger.subheading('Sub Heading')
281
+ KLog.logger.section_heading('Section Heading')
262
282
  end
263
283
 
264
284
  def self.examples_complex
265
- L.block ['Line 1', 12, 'Line 3', true, 'Line 5']
285
+ KLog.logger.block ['Line 1', 12, 'Line 3', true, 'Line 5']
266
286
 
267
- L.progress(0, 'Section 1')
268
- L.progress
269
- L.progress
270
- save_progress = L.progress
287
+ KLog.logger.progress(0, 'Section 1')
288
+ KLog.logger.progress
289
+ KLog.logger.progress
290
+ save_progress = KLog.logger.progress
271
291
 
272
- L.progress(10, 'Section 2')
273
- L.progress
274
- L.progress
275
- L.progress
292
+ KLog.logger.progress(10, 'Section 2')
293
+ KLog.logger.progress
294
+ KLog.logger.progress
295
+ KLog.logger.progress
276
296
 
277
- L.progress(save_progress, 'Section 1')
278
- L.progress
279
- L.progress
280
- L.progress
297
+ KLog.logger.progress(save_progress, 'Section 1')
298
+ KLog.logger.progress
299
+ KLog.logger.progress
300
+ KLog.logger.progress
281
301
 
282
- L.line
283
- L.line(20)
284
- L.line(20, character: '-')
302
+ KLog.logger.line
303
+ KLog.logger.line(20)
304
+ KLog.logger.line(20, character: '-')
285
305
 
286
306
  yaml1 = {}
287
307
  yaml1['title'] = 'Software Architect'
@@ -293,28 +313,28 @@ module KLog
293
313
  yaml3['age'] = 20
294
314
  yaml3['name'] = 'Jin'
295
315
 
296
- L.yaml(yaml1)
316
+ KLog.logger.yaml(yaml1)
297
317
 
298
318
  yaml2 = OpenStruct.new
299
319
  yaml2.title = 'Software Architect'
300
320
  yaml2.age = 45
301
321
  yaml2.name = 'David'
302
322
 
303
- L.yaml(yaml2)
323
+ KLog.logger.yaml(yaml2)
304
324
 
305
325
  mixed_yaml_array = [yaml1, yaml2]
306
326
 
307
327
  # This fails because we don't correctly pre-process the array
308
- L.yaml(mixed_yaml_array)
328
+ KLog.logger.yaml(mixed_yaml_array)
309
329
 
310
330
  hash_yaml_array = [yaml1, yaml3]
311
331
 
312
- L.yaml(hash_yaml_array)
332
+ KLog.logger.yaml(hash_yaml_array)
313
333
 
314
334
  begin
315
335
  raise 'Here is an error'
316
336
  rescue StandardError => e
317
- L.exception(e)
337
+ KLog.logger.exception(e)
318
338
  end
319
339
  end
320
340
  # rubocop:enable Metrics/AbcSize, Metrics/MethodLength
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module KLog
4
+ module Logging
5
+ def log
6
+ @log ||= KLog.logger
7
+ end
8
+ end
9
+ end
data/lib/k_log/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module KLog
4
- VERSION = '0.0.11'
4
+ VERSION = '0.0.16'
5
5
  end
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.11
4
+ version: 0.0.16
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-04-01 00:00:00.000000000 Z
11
+ date: 2021-04-05 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