k_log 0.0.11 → 0.0.16

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