beautiful-log 0.1.6 → 0.2.0

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
  SHA1:
3
- metadata.gz: 8d0e1f4c8c3aea739ef470352ed36b2fa1947e29
4
- data.tar.gz: aecce600998bc5c3993caf1f77ec0a0965d0dad6
3
+ metadata.gz: 25927d2784ba9a2e0ee28f438335f220f6b40d9e
4
+ data.tar.gz: 4ff063f0c7bd22d53fc6618ccb1f37841e86fdb8
5
5
  SHA512:
6
- metadata.gz: e95680e6562d10ef934b8be094c0eb63a53301e28ef00665fe0ff552ba36a13dbddc18641d678ddfdb9a259cc841b59fc347ebac30a38405b9f24c04e8ec2f6f
7
- data.tar.gz: e0962d788b89a2e6c1efd2d8072781208444ca69a8ba86531a5e1574ec73b21a5262c6a841767350bb0b5ff21b879c7158f6b5c8e65fc1d28f66e842a4125209
6
+ metadata.gz: c0ff063a389fb17bb07be21cd192d80a1f516acdd6a83f95b993478b1b0305f866a99a10552eaf67a61931ff491e809e48645f221fb9996a1628d448bfc2554f
7
+ data.tar.gz: e0755aab97842b5d41b86929389518214c5aabe8b003e1b82a92a8534f2ce415b45a81e1b5ab3cd9b3bbd4ca188f31f656a2d417f076066a4436acd561230855
data/README.md CHANGED
@@ -119,6 +119,7 @@ Below is a hash containing default values.
119
119
  ```ruby
120
120
  Beautiful::Log::Formatter.new(
121
121
  only_project_code: true,
122
+ shrink_bundle_path: true,
122
123
  backtrace_ignore_paths: [],
123
124
  highlighted_line_range: 3,
124
125
  highlighted_line_styles: :cyan,
@@ -126,6 +127,7 @@ Beautiful::Log::Formatter.new(
126
127
  error_file_path_styles: :red,
127
128
  severity_styles: { FATAL: [:red, :swap], ERROR: :red, WARN: :light_red },
128
129
  status_code_styles: { (1..3) => [:green, :bold], 'other' => [:red, :bold] },
130
+ occurence_line: :light_blue
129
131
  )
130
132
  ```
131
133
 
@@ -1,4 +1,5 @@
1
1
  # coding: utf-8
2
+ # frozen_string_literal: true
2
3
  lib = File.expand_path('../lib', __FILE__)
3
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
5
  require 'beautiful/log/version'
@@ -22,15 +22,18 @@ module Beautiful
22
22
  # rubocop: disable Metrics/AbcSize, Style/ParameterLists, Style/MethodLength
23
23
  def initialize(
24
24
  only_project_code: true,
25
+ shrink_bundle_path: true,
25
26
  backtrace_ignore_paths: [],
26
27
  highlighted_line_range: 3,
27
28
  highlighted_line_styles: :cyan,
28
29
  backtrace_styles: :light_red,
29
30
  error_file_path_styles: :red,
30
31
  status_code_styles: {},
31
- severity_styles: {}
32
+ severity_styles: {},
33
+ occurence_line: :light_blue
32
34
  )
33
35
  @only_project_code = only_project_code
36
+ @shrink_bundle_path = shrink_bundle_path
34
37
  @ignore_paths = backtrace_ignore_paths.map do |path|
35
38
  Regexp.new "#{Rails.root}/#{path}"
36
39
  end << Regexp.new(bundle_path)
@@ -42,11 +45,12 @@ module Beautiful
42
45
  @error_file_path_styles = error_file_path_styles
43
46
  @status_code_styles = DEFAULT_STATUS_CODE_STYLES.merge(status_code_styles).with_indifferent_access
44
47
  @severity_styles = DEFAULT_SEVERITY_STYLES.merge(severity_styles).with_indifferent_access
48
+ @occurence_line = occurence_line
45
49
  end
46
50
 
47
51
  def call(severity, timestamp, _progname, message)
48
52
  problem_code = highlighted_code(message) if message.is_a?(Exception)
49
- header = message_header(timestamp, severity)
53
+ header = message_header(timestamp, severity, caller)
50
54
  message = "#{header} -- : #{message_body(message, header.uncolorize.length + 6)}\n"
51
55
  message = "#{message}\n#{problem_code}" if problem_code.present?
52
56
  message = "\n#{message}\n" if %w(FATAL ERROR).include?(severity)
@@ -55,11 +59,19 @@ module Beautiful
55
59
 
56
60
  private
57
61
 
58
- def message_header(timestamp, severity)
59
- header = "[#{timestamp.strftime(datetime_format)}] (pida=#{$PROCESS_ID}) #{format('%5s', severity)}"
62
+ def message_header(timestamp, severity, backtrace)
63
+ header = "[#{timestamp.strftime(datetime_format)}] (pida=#{$PROCESS_ID}) #{file_line(backtrace)} #{format('%5s', severity)}"
60
64
  colored_header(severity, header)
61
65
  end
62
66
 
67
+ def file_line(backtrace_lines)
68
+ file_line = backtrace_lines.find do |line|
69
+ (only_project_code && project_code?(line)) && !ignore_path?(line)
70
+ end
71
+ file_line&.sub!(bundle_install_path, '') if @shrink_bundle_path
72
+ apply_styles(omit_project_path(file_line), @occurence_line) if file_line.present?
73
+ end
74
+
63
75
  def colored_header(severity, header)
64
76
  styles = severity_styles[severity.to_sym]
65
77
  return header if styles.blank?
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  module Beautiful
3
3
  module Log
4
- VERSION = '0.1.6'.freeze
4
+ VERSION = '0.2.0'.freeze
5
5
  end
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: beautiful-log
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - nogahighland
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-02-02 00:00:00.000000000 Z
11
+ date: 2017-04-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler