tracee 1.0.4 → 1.0.5
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/lib/tracee/ext/better_errors.rb +2 -2
- data/lib/tracee/preprocessors/colorize.rb +48 -0
- data/lib/tracee/stack/base_decorator.rb +2 -1
- data/lib/tracee/stack.rb +1 -1
- data/lib/tracee/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 629176c76e868df0ce4b840100b9495bbb5e82fe
|
4
|
+
data.tar.gz: c462f5a1364a3262ba0cea39cb6515388a766fb6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b1fca1d6f6a41f110ac635f929171c0cc37763b4f738ae90e0a39f0aa786a926c3beb8c7096566378f99e9725786d3b2756a9c2ff2d976b0e8175a058a7dd7f3
|
7
|
+
data.tar.gz: fc1573d63c6634b3ae3fee01c6b976ccf24209bfe4886965ea811a1f6aeb6f1ebab8b43a05c7c43fedc87d3e7411f44a5126ec0b65441a2fe1b8ee17e7ed781a
|
@@ -17,9 +17,9 @@ module Tracee
|
|
17
17
|
|
18
18
|
frames = @error_page.backtrace_frames # original definition
|
19
19
|
frames = frames.map(&:to_s).reject {|line| line =~ IGNORE_RE}
|
20
|
-
frames = Stack::BaseDecorator.(frames)
|
20
|
+
frames = Stack::BaseDecorator.(frames, paint_code_line: :greenish)
|
21
21
|
frames.each do |frame|
|
22
|
-
if frame =~
|
22
|
+
if frame =~ /^[-\w]+ \(\d+\.[\w\.]+\) /
|
23
23
|
logger.debug " #{frame}"
|
24
24
|
else
|
25
25
|
logger.fatal " #{frame}"
|
@@ -0,0 +1,48 @@
|
|
1
|
+
module Tracee::Preprocessors
|
2
|
+
class Colorize < Base
|
3
|
+
COLOR_MAP = {
|
4
|
+
head: :white,
|
5
|
+
action: :yellow,
|
6
|
+
params: :yellowish,
|
7
|
+
redirect: :purple,
|
8
|
+
render: :greenish,
|
9
|
+
complete: :white,
|
10
|
+
raise: :red
|
11
|
+
}
|
12
|
+
|
13
|
+
def initialize(color_map=COLOR_MAP)
|
14
|
+
@color_map = color_map
|
15
|
+
exception_classes = Exception.descendants
|
16
|
+
@exception_classes_re = Exception.descendants.map(&:name).join '|'
|
17
|
+
end
|
18
|
+
|
19
|
+
def call(msg_level, datetime, progname, msg, caller_slice=[])
|
20
|
+
case msg
|
21
|
+
when %r{^Started (?<method>[A-Z]+) "(?<path>/[^"]*)" for (?<ip>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}) at (?<time>\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}(?: \+\d{4})?)}
|
22
|
+
m = $~
|
23
|
+
%{Started #{m[:method].send @color_map[:head]} "#{m[:path].send @color_map[:head]}" for #{m[:ip].send @color_map[:head]} at #{m[:time].send @color_map[:head]}}
|
24
|
+
when %r{^Processing by (?<class>[A-Z][\w:]+)#(?<method>\w+) as (?<format>[A-Z]+)$}
|
25
|
+
m = $~
|
26
|
+
%{Processing by #{m[:class].send @color_map[:action]}##{m[:method].send @color_map[:action]} as #{m[:format].send @color_map[:action]}}
|
27
|
+
when %r{^ Parameters: (.+)$}
|
28
|
+
m = $~
|
29
|
+
" Parameters: #{m[1].send @color_map[:params]}"
|
30
|
+
when %r{^Redirected to (\S+)$}
|
31
|
+
m = $~
|
32
|
+
"Redirected to #{m[1].send @color_map[:redirect]}"
|
33
|
+
when %r{^ Rendered .+ \(\d+\.\dms\)$}
|
34
|
+
msg.send @color_map[:render]
|
35
|
+
when %r{^Completed (?<code>\d{3}) (?<codename>[A-Z][\w ]+) in (?<time>\d+ms) (?<times>.+)$}
|
36
|
+
m = $~
|
37
|
+
#"\e[4mCompleted #{m[:code].send @color_map[:complete]}\e[4m #{m[:codename].send @color_map[:complete]}\e[4m in #{m[:time].send @color_map[:complete]}\e[4mms #{m[:times]}\e[0m"
|
38
|
+
"Completed #{m[:code].send @color_map[:complete]} #{m[:codename].send @color_map[:complete]} in #{m[:time].send @color_map[:complete]} #{m[:times]}"
|
39
|
+
when %r{^(BetterErrors::RaisedException|#@exception_classes_re) (.+)}
|
40
|
+
m = $~
|
41
|
+
"#{m[1].send @color_map[:raise]} #{m[2]}"
|
42
|
+
else
|
43
|
+
msg
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
end
|
@@ -3,7 +3,7 @@ module Tracee
|
|
3
3
|
module BaseDecorator
|
4
4
|
|
5
5
|
# Make sure that Dir.pwd is the application root directory
|
6
|
-
def self.call(source)
|
6
|
+
def self.call(source, paint_code_line: nil)
|
7
7
|
return source if source.empty? or source[0]["\n"] # already decorated
|
8
8
|
|
9
9
|
result, current_line_steps = [], []
|
@@ -21,6 +21,7 @@ module Tracee
|
|
21
21
|
current_line_steps.unshift "`#{method}#{" {#{step_details[:block_level]}}" if step_details[:block_level]}'"
|
22
22
|
elsif step_details[:line].to_i > 0 and code_line = Tracee::Stack.readline(step_details[:path], step_details[:line].to_i)
|
23
23
|
current_line_steps.unshift step
|
24
|
+
code_line = code_line.send paint_code_line if paint_code_line
|
24
25
|
result << "#{current_line_steps * ' -> '}\n >> #{code_line}"
|
25
26
|
current_line_steps = []
|
26
27
|
else
|
data/lib/tracee/stack.rb
CHANGED
data/lib/tracee/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tracee
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sergey Baev
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-04-
|
11
|
+
date: 2016-04-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -107,6 +107,7 @@ files:
|
|
107
107
|
- lib/tracee/ext/exception.rb
|
108
108
|
- lib/tracee/logger.rb
|
109
109
|
- lib/tracee/preprocessors/base.rb
|
110
|
+
- lib/tracee/preprocessors/colorize.rb
|
110
111
|
- lib/tracee/preprocessors/formatter.rb
|
111
112
|
- lib/tracee/preprocessors/quiet_assets.rb
|
112
113
|
- lib/tracee/stack.rb
|