better_errors 2.6.0 → 2.7.0
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.
Potentially problematic release.
This version of better_errors might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.travis.yml +41 -1
- data/README.md +10 -0
- data/better_errors.gemspec +1 -0
- data/gemfiles/rails60.gemfile +7 -0
- data/gemfiles/rails60_boc.gemfile +8 -0
- data/gemfiles/rails60_haml.gemfile +8 -0
- data/lib/better_errors.rb +6 -0
- data/lib/better_errors/error_page.rb +7 -1
- data/lib/better_errors/raised_exception.rb +9 -5
- data/lib/better_errors/version.rb +1 -1
- metadata +19 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f0a9449e2952fc0366176c6e7160b9c3dc0ea875902510fd60d6f6e54e0b8110
|
4
|
+
data.tar.gz: f03dd3cf91ed360f4bd0a826e7b99827b9149f50efff44ea8dbc8bb1b585fa45
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e70808745a84bd58172df545a84371e64f7a42c0dc330ae44b271b759194ae534f7afb918d890c321e0dc075dc9cc66082e0ec9cef0dd769a3738ffa1aafcbd3
|
7
|
+
data.tar.gz: 1d69c89a9b05b116eac00cc03267abcd831bbcb9314f7462ea13279f5960db3abdab27c408f517af79259e837f60403650196fa06acacb59a820b8cdc166dcd1
|
data/.travis.yml
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
sudo: false
|
2
1
|
language: ruby
|
3
2
|
cache: bundler
|
4
3
|
notifications:
|
@@ -12,20 +11,25 @@ rvm:
|
|
12
11
|
- 2.3.8
|
13
12
|
- 2.4.9
|
14
13
|
- 2.5.7
|
14
|
+
- 2.6.5
|
15
|
+
- 2.7.0
|
15
16
|
- ruby-head
|
16
17
|
gemfile:
|
17
18
|
- gemfiles/rails42.gemfile
|
18
19
|
- gemfiles/rails50.gemfile
|
19
20
|
- gemfiles/rails51.gemfile
|
20
21
|
- gemfiles/rails52.gemfile
|
22
|
+
- gemfiles/rails60.gemfile
|
21
23
|
- gemfiles/rails42_haml.gemfile
|
22
24
|
- gemfiles/rails50_haml.gemfile
|
23
25
|
- gemfiles/rails51_haml.gemfile
|
24
26
|
- gemfiles/rails52_haml.gemfile
|
27
|
+
- gemfiles/rails60_haml.gemfile
|
25
28
|
- gemfiles/rails42_boc.gemfile
|
26
29
|
- gemfiles/rails50_boc.gemfile
|
27
30
|
- gemfiles/rails51_boc.gemfile
|
28
31
|
- gemfiles/rails52_boc.gemfile
|
32
|
+
- gemfiles/rails60_boc.gemfile
|
29
33
|
- gemfiles/rack.gemfile
|
30
34
|
- gemfiles/rack_boc.gemfile
|
31
35
|
- gemfiles/pry09.gemfile
|
@@ -38,21 +42,57 @@ matrix:
|
|
38
42
|
- gemfile: gemfiles/pry010.gemfile
|
39
43
|
- gemfile: gemfiles/pry011.gemfile
|
40
44
|
exclude:
|
45
|
+
- rvm: 2.2.10
|
46
|
+
gemfile: gemfiles/rails60.gemfile
|
47
|
+
- rvm: 2.2.10
|
48
|
+
gemfile: gemfiles/rails60_boc.gemfile
|
49
|
+
- rvm: 2.2.10
|
50
|
+
gemfile: gemfiles/rails60_haml.gemfile
|
41
51
|
- rvm: 2.3.8
|
42
52
|
gemfile: gemfiles/rails42.gemfile
|
43
53
|
- rvm: 2.3.8
|
44
54
|
gemfile: gemfiles/rails42_boc.gemfile
|
45
55
|
- rvm: 2.3.8
|
46
56
|
gemfile: gemfiles/rails42_haml.gemfile
|
57
|
+
- rvm: 2.3.8
|
58
|
+
gemfile: gemfiles/rails60.gemfile
|
59
|
+
- rvm: 2.3.8
|
60
|
+
gemfile: gemfiles/rails60_boc.gemfile
|
61
|
+
- rvm: 2.3.8
|
62
|
+
gemfile: gemfiles/rails60_haml.gemfile
|
47
63
|
- rvm: 2.4.9
|
48
64
|
gemfile: gemfiles/rails42.gemfile
|
49
65
|
- rvm: 2.4.9
|
50
66
|
gemfile: gemfiles/rails42_boc.gemfile
|
51
67
|
- rvm: 2.4.9
|
52
68
|
gemfile: gemfiles/rails42_haml.gemfile
|
69
|
+
- rvm: 2.4.9
|
70
|
+
gemfile: gemfiles/rails60.gemfile
|
71
|
+
- rvm: 2.4.9
|
72
|
+
gemfile: gemfiles/rails60_boc.gemfile
|
73
|
+
- rvm: 2.4.9
|
74
|
+
gemfile: gemfiles/rails60_haml.gemfile
|
53
75
|
- rvm: 2.5.7
|
54
76
|
gemfile: gemfiles/rails42.gemfile
|
55
77
|
- rvm: 2.5.7
|
56
78
|
gemfile: gemfiles/rails42_boc.gemfile
|
57
79
|
- rvm: 2.5.7
|
58
80
|
gemfile: gemfiles/rails42_haml.gemfile
|
81
|
+
- rvm: 2.6.5
|
82
|
+
gemfile: gemfiles/rails42.gemfile
|
83
|
+
- rvm: 2.6.5
|
84
|
+
gemfile: gemfiles/rails42_boc.gemfile
|
85
|
+
- rvm: 2.6.5
|
86
|
+
gemfile: gemfiles/rails42_haml.gemfile
|
87
|
+
- rvm: 2.7.0
|
88
|
+
gemfile: gemfiles/rails42.gemfile
|
89
|
+
- rvm: 2.7.0
|
90
|
+
gemfile: gemfiles/rails42_boc.gemfile
|
91
|
+
- rvm: 2.7.0
|
92
|
+
gemfile: gemfiles/rails42_haml.gemfile
|
93
|
+
- rvm: ruby-head
|
94
|
+
gemfile: gemfiles/rails42.gemfile
|
95
|
+
- rvm: ruby-head
|
96
|
+
gemfile: gemfiles/rails42_boc.gemfile
|
97
|
+
- rvm: ruby-head
|
98
|
+
gemfile: gemfiles/rails42_haml.gemfile
|
data/README.md
CHANGED
@@ -93,6 +93,16 @@ See [the wiki for instructions on configuring the editor](https://github.com/Bet
|
|
93
93
|
BetterErrors.maximum_variable_inspect_size = 100_000
|
94
94
|
```
|
95
95
|
|
96
|
+
## Ignore inspection of variables with certain classes.
|
97
|
+
|
98
|
+
```ruby
|
99
|
+
# e.g. in config/initializers/better_errors.rb
|
100
|
+
# This will stop BetterErrors from trying to inspect objects of these classes, which can cause
|
101
|
+
# slow loading times and unneccessary database queries. Does not check inheritance chain, use
|
102
|
+
# strings not contants.
|
103
|
+
# default value: ['ActionDispatch::Request', 'ActionDispatch::Response']
|
104
|
+
BetterErrors.ignored_classes = ['ActionDispatch::Request', 'ActionDispatch::Response']
|
105
|
+
```
|
96
106
|
|
97
107
|
## Get in touch!
|
98
108
|
|
data/better_errors.gemspec
CHANGED
@@ -22,6 +22,7 @@ Gem::Specification.new do |s|
|
|
22
22
|
|
23
23
|
s.add_development_dependency "rake", "~> 10.0"
|
24
24
|
s.add_development_dependency "rspec", "~> 3.5"
|
25
|
+
s.add_development_dependency "rspec-html-matchers"
|
25
26
|
s.add_development_dependency "rspec-its"
|
26
27
|
s.add_development_dependency "yard"
|
27
28
|
# kramdown 2.1 requires Ruby 2.3+
|
data/lib/better_errors.rb
CHANGED
@@ -21,6 +21,7 @@ module BetterErrors
|
|
21
21
|
{ symbols: [:idea], sniff: /idea/i, url: "idea://open?file=%{file}&line=%{line}" },
|
22
22
|
{ symbols: [:rubymine], sniff: /mine/i, url: "x-mine://open?file=%{file}&line=%{line}" },
|
23
23
|
{ symbols: [:vscode, :code], sniff: /code/i, url: "vscode://file/%{file}:%{line}" },
|
24
|
+
{ symbols: [:vscodium, :codium], sniff: /codium/i, url: "vscodium://file/%{file}:%{line}" },
|
24
25
|
{ symbols: [:atom], sniff: /atom/i, url: "atom://core/open/file?filename=%{file}&line=%{line}" },
|
25
26
|
]
|
26
27
|
|
@@ -54,9 +55,14 @@ module BetterErrors
|
|
54
55
|
# the variable won't be returned.
|
55
56
|
# @return int
|
56
57
|
attr_accessor :maximum_variable_inspect_size
|
58
|
+
|
59
|
+
# List of classes that are excluded from inspection.
|
60
|
+
# @return [Array]
|
61
|
+
attr_accessor :ignored_classes
|
57
62
|
end
|
58
63
|
@ignored_instance_variables = []
|
59
64
|
@maximum_variable_inspect_size = 100_000
|
65
|
+
@ignored_classes = ['ActionDispatch::Request', 'ActionDispatch::Response']
|
60
66
|
|
61
67
|
# Returns a proc, which when called with a filename and line number argument,
|
62
68
|
# returns a URL to open the filename and line in the selected editor.
|
@@ -105,7 +105,13 @@ module BetterErrors
|
|
105
105
|
end
|
106
106
|
|
107
107
|
def inspect_value(obj)
|
108
|
-
|
108
|
+
if BetterErrors.ignored_classes.include? obj.class.name
|
109
|
+
"<span class='unsupported'>(Instance of ignored class. "\
|
110
|
+
"#{obj.class.name ? "Remove #{CGI.escapeHTML(obj.class.name)} from" : "Modify"}"\
|
111
|
+
" BetterErrors.ignored_classes if you need to see it.)</span>"
|
112
|
+
else
|
113
|
+
InspectableValue.new(obj).to_html
|
114
|
+
end
|
109
115
|
rescue BetterErrors::ValueLargerThanConfiguredMaximum
|
110
116
|
"<span class='unsupported'>(Object too large. "\
|
111
117
|
"#{obj.class.name ? "Modify #{CGI.escapeHTML(obj.class.name)}#inspect or a" : "A"}"\
|
@@ -4,9 +4,8 @@ module BetterErrors
|
|
4
4
|
attr_reader :exception, :message, :backtrace
|
5
5
|
|
6
6
|
def initialize(exception)
|
7
|
-
if exception.respond_to?(:
|
8
|
-
|
9
|
-
elsif exception.respond_to?(:original_exception) && exception.original_exception
|
7
|
+
if exception.respond_to?(:original_exception) && exception.original_exception
|
8
|
+
# This supports some specific Rails exceptions, and is not intended to act the same as `#cause`.
|
10
9
|
exception = exception.original_exception
|
11
10
|
end
|
12
11
|
|
@@ -36,8 +35,13 @@ module BetterErrors
|
|
36
35
|
|
37
36
|
def setup_backtrace_from_bindings
|
38
37
|
@backtrace = exception.__better_errors_bindings_stack.map { |binding|
|
39
|
-
|
40
|
-
|
38
|
+
if binding.respond_to?(:source_location) # Ruby >= 2.6
|
39
|
+
file = binding.source_location[0]
|
40
|
+
line = binding.source_location[1]
|
41
|
+
else
|
42
|
+
file = binding.eval "__FILE__"
|
43
|
+
line = binding.eval "__LINE__"
|
44
|
+
end
|
41
45
|
name = binding.frame_description
|
42
46
|
StackFrame.new(file, line, name, binding)
|
43
47
|
}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: better_errors
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Charlie Somerville
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-04-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '3.5'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec-html-matchers
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: rspec-its
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -157,6 +171,9 @@ files:
|
|
157
171
|
- gemfiles/rails52.gemfile
|
158
172
|
- gemfiles/rails52_boc.gemfile
|
159
173
|
- gemfiles/rails52_haml.gemfile
|
174
|
+
- gemfiles/rails60.gemfile
|
175
|
+
- gemfiles/rails60_boc.gemfile
|
176
|
+
- gemfiles/rails60_haml.gemfile
|
160
177
|
- lib/better_errors.rb
|
161
178
|
- lib/better_errors/code_formatter.rb
|
162
179
|
- lib/better_errors/code_formatter/html.rb
|