k_log 0.0.17 → 0.0.27

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.
@@ -0,0 +1,51 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'k_util'
4
+
5
+ module KLog
6
+ module Tools
7
+ # This tool will build a Log Structure Formatter configuration by working
8
+ # through the object graph you would like to use with Log Structure
9
+ class BuildFormatterConfigurationForLogStructure
10
+ # Build a sample configuration based on the structure
11
+ def build_sample_config(data)
12
+ open_struct_data = KUtil.data.to_open_struct(data)
13
+
14
+ lines = [
15
+ '# Usage:',
16
+ '',
17
+ "formatter = #{infer_config(open_struct_data)}",
18
+ '',
19
+ "log.structure(data, heading: 'Insert Heading', line_width: 150, formatter: formatter)"
20
+ ]
21
+ KLog.logger.line
22
+ puts lines
23
+ KLog.logger.line
24
+ end
25
+
26
+ private
27
+
28
+ def infer_config(data)
29
+ result = {}
30
+
31
+ data.each_pair do |key, value|
32
+ next unless value.is_a?(Array)
33
+ next if KUtil.data.basic_type?(value.first)
34
+
35
+ result[key] = {
36
+ heading: key.to_s,
37
+ take: :all,
38
+ array_columns: value.first.to_h.keys
39
+ }
40
+ end
41
+
42
+ # This is essentially a pretty hash
43
+ JSON.pretty_generate(result)
44
+ .gsub(/(?:"|')(?<key>[^"]*)(?:"|')(?=:)(?::)/) do |_|
45
+ "#{Regexp.last_match(:key)}:"
46
+ end
47
+ .gsub('take: "all"', 'take: :all')
48
+ end
49
+ end
50
+ end
51
+ end
data/lib/k_log/version.rb CHANGED
@@ -1,5 +1,5 @@
1
- # frozen_string_literal: true
2
-
3
- module KLog
4
- VERSION = '0.0.17'
5
- end
1
+ # frozen_string_literal: true
2
+
3
+ module KLog
4
+ VERSION = '0.0.27'
5
+ end
data/lib/k_log.rb CHANGED
@@ -1,39 +1,40 @@
1
- # frozen_string_literal: true
2
-
3
- require 'logger'
4
- require 'table_print'
5
- require 'k_log/version'
6
- require 'k_log/log_formatter'
7
- require 'k_log/log_helper'
8
- require 'k_log/log_util'
9
- require 'k_log/logging'
10
-
11
- # Simple console log helpers
12
- module KLog
13
- # raise KLog::Error, 'Sample message'
14
- class Error < StandardError; end
15
-
16
- class << self
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
29
- end
30
- end
31
-
32
- KLog.logger = KLog.default_logger
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
1
+ # frozen_string_literal: true
2
+
3
+ require 'logger'
4
+ require 'table_print'
5
+ require 'k_log/version'
6
+ require 'k_log/log_formatter'
7
+ require 'k_log/log_helper'
8
+ require 'k_log/log_structure'
9
+ require 'k_log/log_util'
10
+ require 'k_log/logging'
11
+
12
+ # Simple console log helpers
13
+ module KLog
14
+ # raise KLog::Error, 'Sample message'
15
+ class Error < StandardError; end
16
+
17
+ class << self
18
+ attr_accessor :logger
19
+
20
+ def default_logger
21
+ return @default_logger if defined? @default_logger
22
+
23
+ @default_logger = begin
24
+ logger = Logger.new($stdout)
25
+ logger.level = Logger::DEBUG
26
+ logger.formatter = KLog::LogFormatter.new
27
+ KLog::LogUtil.new(logger)
28
+ end
29
+ end
30
+ end
31
+ end
32
+
33
+ KLog.logger = KLog.default_logger
34
+
35
+ if ENV['KLUE_DEBUG']&.to_s&.downcase == 'true'
36
+ namespace = 'KLog::Version'
37
+ file_path = $LOADED_FEATURES.find { |f| f.include?('k_log/version') }
38
+ version = KLog::VERSION.ljust(9)
39
+ puts "#{namespace.ljust(35)} : #{version.ljust(9)} : #{file_path}"
40
+ end
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: k_log
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.17
4
+ version: 0.0.27
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-17 00:00:00.000000000 Z
11
+ date: 2021-08-29 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: k_util
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: table_print
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -55,8 +69,10 @@ files:
55
69
  - lib/k_log/examples.rb
56
70
  - lib/k_log/log_formatter.rb
57
71
  - lib/k_log/log_helper.rb
72
+ - lib/k_log/log_structure.rb
58
73
  - lib/k_log/log_util.rb
59
74
  - lib/k_log/logging.rb
75
+ - lib/k_log/tools/build_formatter_configuration_for_log_structure.rb
60
76
  - lib/k_log/version.rb
61
77
  - usage.png
62
78
  homepage: http://appydave.com/gems/k-log