colorful-exceptions 0.1.20170811
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 +7 -0
- data/.rspec +1 -0
- data/README.md +1 -0
- data/Rakefile +23 -0
- data/lib/colorful-exceptions.rb +27 -0
- data/spec/colorful-exceptions_spec.rb +45 -0
- data/spec/spec_helper.rb +7 -0
- metadata +77 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 2cd34a53c890e8926d3e5678a71a974f3910bcf0
|
4
|
+
data.tar.gz: ac7b8ae06e391a4f1855f40b80dd2eb6ef572a9a
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 75b58386ee32e37e6c731e409c315047367279cb5dddf610e8048115a9ea93be5f39afa2bc7225d4575504ea783e90ae0bf9703fd76ee63ef615e789546d1d82
|
7
|
+
data.tar.gz: c73c4d5e7cf4271c39b5d5d5729c5bdb9a14ad80b3a2e2827d73919ae4e3bc1172dfc6d87491a79a58aca63c1d82c8e21b4d21fb7b3b36780e0013b81d125510
|
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--require spec_helper
|
data/README.md
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
If you want your stacktraces to be colorful add `colorful-exceptions` to your `Gemfile`.
|
data/Rakefile
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
task "default" => "spec"
|
2
|
+
task "test" => "spec"
|
3
|
+
|
4
|
+
desc "Run tests"
|
5
|
+
task "spec" do
|
6
|
+
system "rspec"
|
7
|
+
end
|
8
|
+
|
9
|
+
desc "Clean up"
|
10
|
+
task "clean" do
|
11
|
+
system "trash colorful-exceptions-*.gem"
|
12
|
+
end
|
13
|
+
|
14
|
+
desc "Build gem"
|
15
|
+
task "gem:build" do
|
16
|
+
system "gem build colorful-exceptions.gemspec"
|
17
|
+
end
|
18
|
+
|
19
|
+
desc "Upload gem"
|
20
|
+
task "gem:push" => "gem:build" do
|
21
|
+
gem_file = Dir["colorful-exceptions-*.gem"][-1] or raise "No gem found"
|
22
|
+
system "gem", "push", gem_file
|
23
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module ColorfulExceptions
|
2
|
+
def backtrace
|
3
|
+
value = super
|
4
|
+
if value
|
5
|
+
green = "\e[#{32}m"
|
6
|
+
cyan = "\e[#{36}m"
|
7
|
+
clear = "\e[0m"
|
8
|
+
value.map do |msg|
|
9
|
+
case msg
|
10
|
+
when %r[\A(.*?):(\d+):in `(.*)'\z]
|
11
|
+
"#{green}#{$1}#{clear}:#{green}#{$2}#{clear}: in `#{cyan}#{$3}#{clear}'"
|
12
|
+
# Never seen them, but documentation insists they exist
|
13
|
+
when %r[\A(.*?):(\d+)]
|
14
|
+
"#{green}#{$1}#{clear}:#{green}#{$2}#{clear}"
|
15
|
+
else
|
16
|
+
"#{green}#{msg}#{clear}"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
else
|
20
|
+
value
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
class Exception
|
26
|
+
prepend ColorfulExceptions
|
27
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
describe ColorfulExceptions do
|
2
|
+
let(:g) { "\e[#{32}m" }
|
3
|
+
let(:c) { "\e[#{36}m" }
|
4
|
+
let(:e) { "\e[0m" }
|
5
|
+
|
6
|
+
it "prints colorful exceptions" do
|
7
|
+
exception = (eval("1.times{\n1/0\n}", nil, "/lib/test.rb", 1) rescue $!)
|
8
|
+
expect(exception.backtrace[0]).to eq(
|
9
|
+
"#{g}/lib/test.rb#{e}:#{g}2#{e}: in `#{c}/#{e}'"
|
10
|
+
)
|
11
|
+
expect(exception.backtrace[1]).to eq(
|
12
|
+
"#{g}/lib/test.rb#{e}:#{g}2#{e}: in `#{c}block (3 levels) in <top (required)>#{e}'"
|
13
|
+
)
|
14
|
+
expect(exception.backtrace[2]).to eq(
|
15
|
+
"#{g}/lib/test.rb#{e}:#{g}1#{e}: in `#{c}times#{e}'"
|
16
|
+
)
|
17
|
+
expect(exception.backtrace[3]).to eq(
|
18
|
+
"#{g}/lib/test.rb#{e}:#{g}1#{e}: in `#{c}block (2 levels) in <top (required)>#{e}'"
|
19
|
+
)
|
20
|
+
end
|
21
|
+
|
22
|
+
it "nil backtrace" do
|
23
|
+
exception = RuntimeError.new("fail")
|
24
|
+
expect(exception.backtrace).to eq(nil)
|
25
|
+
end
|
26
|
+
|
27
|
+
it "weird backtrace still mostly works" do
|
28
|
+
exception = RuntimeError.new("fail")
|
29
|
+
exception.set_backtrace([
|
30
|
+
"/lib/foo.rb:1: in `times'",
|
31
|
+
"/lib/bar.rb:2",
|
32
|
+
"somewhere",
|
33
|
+
])
|
34
|
+
# What set_backtraace is doing exactly...
|
35
|
+
expect(exception.backtrace[0]).to eq(
|
36
|
+
"#{g}/lib/foo.rb#{e}:#{g}1#{e}"
|
37
|
+
)
|
38
|
+
expect(exception.backtrace[1]).to eq(
|
39
|
+
"#{g}/lib/bar.rb#{e}:#{g}2#{e}"
|
40
|
+
)
|
41
|
+
expect(exception.backtrace[2]).to eq(
|
42
|
+
"#{g}somewhere#{e}"
|
43
|
+
)
|
44
|
+
end
|
45
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,77 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: colorful-exceptions
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.20170811
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Tomasz Wegrzanowski
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2017-08-11 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rake
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rspec
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
description: Recolors exception backtraces. Compatible with most software.
|
42
|
+
email: Tomasz.Wegrzanowski@gmail.com
|
43
|
+
executables: []
|
44
|
+
extensions: []
|
45
|
+
extra_rdoc_files: []
|
46
|
+
files:
|
47
|
+
- ".rspec"
|
48
|
+
- README.md
|
49
|
+
- Rakefile
|
50
|
+
- lib/colorful-exceptions.rb
|
51
|
+
- spec/colorful-exceptions_spec.rb
|
52
|
+
- spec/spec_helper.rb
|
53
|
+
homepage: https://github.com/taw/colorful-exceptions
|
54
|
+
licenses:
|
55
|
+
- MIT
|
56
|
+
metadata: {}
|
57
|
+
post_install_message:
|
58
|
+
rdoc_options: []
|
59
|
+
require_paths:
|
60
|
+
- lib
|
61
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
62
|
+
requirements:
|
63
|
+
- - ">="
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '0'
|
66
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
67
|
+
requirements:
|
68
|
+
- - ">="
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '0'
|
71
|
+
requirements: []
|
72
|
+
rubyforge_project:
|
73
|
+
rubygems_version: 2.5.2
|
74
|
+
signing_key:
|
75
|
+
specification_version: 4
|
76
|
+
summary: Colorful exception backtraces
|
77
|
+
test_files: []
|