render_me_pretty 0.8.0 → 0.8.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.circleci/config.yml +58 -0
- data/.gitignore +1 -0
- data/CHANGELOG.md +14 -0
- data/README.md +8 -0
- data/lib/render_me_pretty/erb/base_handler.rb +4 -4
- data/lib/render_me_pretty/erb/main_error_handler.rb +7 -1
- data/lib/render_me_pretty/erb.rb +8 -6
- data/lib/render_me_pretty/version.rb +1 -1
- data/lib/render_me_pretty.rb +2 -1
- data/render_me_pretty.gemspec +1 -1
- metadata +5 -6
- data/Gemfile.lock +0 -52
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 568385d41ee6116a69769e93aef3da2540dd504313956a521938d5e8c85114dc
|
4
|
+
data.tar.gz: 6728276075074f49d08860f254d09a71e5a4adc24346c218cb5f9961a85c81da
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 06c70b6311b152a7725c200da4760678c2ba5bc12a3dc4a127a3e91a32be762df5e9717678973c9aeddfe054afdec4345911400d2aa7b221302af6437c9e7ce7
|
7
|
+
data.tar.gz: 40c6951774cc3de8106a5e96a9a75823fb0d9aebcd990b1db32d156474d85a1fb844ed6fc1f8ce85f3385a1d4768a4d5642fcc3a11bb16abfa2cbf8433fc2b2d
|
@@ -0,0 +1,58 @@
|
|
1
|
+
# Ruby CircleCI 2.0 configuration file
|
2
|
+
#
|
3
|
+
# Check https://circleci.com/docs/2.0/language-ruby/ for more details
|
4
|
+
#
|
5
|
+
version: 2
|
6
|
+
jobs:
|
7
|
+
build:
|
8
|
+
docker:
|
9
|
+
# specify the version you desire here
|
10
|
+
- image: circleci/ruby:2.5.3
|
11
|
+
|
12
|
+
working_directory: ~/repo
|
13
|
+
|
14
|
+
steps:
|
15
|
+
- checkout
|
16
|
+
|
17
|
+
- run:
|
18
|
+
name: submodule sync
|
19
|
+
command: |
|
20
|
+
git submodule sync
|
21
|
+
git submodule update --init
|
22
|
+
|
23
|
+
# Download and cache dependencies
|
24
|
+
- restore_cache:
|
25
|
+
keys:
|
26
|
+
- v2-dependencies-{{ checksum "Gemfile.lock" }}
|
27
|
+
# fallback to using the latest cache if no exact match is found
|
28
|
+
- v2-dependencies-
|
29
|
+
|
30
|
+
- run:
|
31
|
+
name: install dependencies
|
32
|
+
command: |
|
33
|
+
bundle install --jobs=4 --retry=3 --path vendor/bundle
|
34
|
+
|
35
|
+
- save_cache:
|
36
|
+
paths:
|
37
|
+
- ./vendor/bundle
|
38
|
+
key: v2-dependencies-{{ checksum "Gemfile.lock" }}
|
39
|
+
|
40
|
+
# run tests!
|
41
|
+
- run:
|
42
|
+
name: run tests
|
43
|
+
command: |
|
44
|
+
mkdir /tmp/test-results
|
45
|
+
|
46
|
+
cat >.rspec <<EOL
|
47
|
+
--format documentation
|
48
|
+
--require spec_helper
|
49
|
+
EOL
|
50
|
+
|
51
|
+
bundle exec rspec
|
52
|
+
|
53
|
+
# collect reports
|
54
|
+
- store_test_results:
|
55
|
+
path: /tmp/test-results
|
56
|
+
- store_artifacts:
|
57
|
+
path: /tmp/test-results
|
58
|
+
destination: test-results
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
@@ -3,6 +3,20 @@
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
4
4
|
This project *tries* to adhere to [Semantic Versioning](http://semver.org/), even before v1.0.
|
5
5
|
|
6
|
+
## [0.8.4] - 2021-12-28
|
7
|
+
- fix activesupport require
|
8
|
+
|
9
|
+
## [0.8.3]
|
10
|
+
- add .circleci/config.yml
|
11
|
+
- show full backtrace when error not found within users layout or project path
|
12
|
+
|
13
|
+
## [0.8.2]
|
14
|
+
- use rainbow gem for terminal color
|
15
|
+
|
16
|
+
## [0.8.1]
|
17
|
+
- tilt default_encoding utf-8
|
18
|
+
- update readme with layout support
|
19
|
+
|
6
20
|
## [0.8.0]
|
7
21
|
- pull request #1 from tongueroo/layout-support
|
8
22
|
|
data/README.md
CHANGED
@@ -2,6 +2,8 @@
|
|
2
2
|
|
3
3
|
[![CircleCI](https://circleci.com/gh/tongueroo/render_me_pretty.svg?style=svg)](https://circleci.com/gh/tongueroo/render_me_pretty)
|
4
4
|
|
5
|
+
[![BoltOps Badge](https://img.boltops.com/boltops/badges/boltops-badge.png)](https://www.boltops.com)
|
6
|
+
|
5
7
|
Let's say you have an error in your ERB template:
|
6
8
|
|
7
9
|
```
|
@@ -47,6 +49,12 @@ There's also a convenience class method:
|
|
47
49
|
RenderMePretty.result("/path/to/tempate.erb", a: 5)
|
48
50
|
```
|
49
51
|
|
52
|
+
### Layout Support
|
53
|
+
|
54
|
+
```ruby
|
55
|
+
RenderMePretty.result("/path/to/tempate.erb", layout: "/path/to/layout.erb")
|
56
|
+
```
|
57
|
+
|
50
58
|
### Custom Context
|
51
59
|
|
52
60
|
```ruby
|
@@ -15,10 +15,10 @@ class RenderMePretty::Erb
|
|
15
15
|
io = StringIO.new
|
16
16
|
|
17
17
|
message = full_message ? ": #{@exception.message}" : ""
|
18
|
-
io.puts "#{@exception.class}#{message}".
|
18
|
+
io.puts "#{@exception.class}#{message}".color(:red)
|
19
19
|
|
20
20
|
pretty_path = template_path_with_error.sub(/^\.\//, '')
|
21
|
-
io.puts "Error evaluating ERB template around line #{error_line_number.to_s.
|
21
|
+
io.puts "Error evaluating ERB template around line #{error_line_number.to_s.color(:red)} of: #{pretty_path}:"
|
22
22
|
|
23
23
|
context = 5 # lines of context
|
24
24
|
top, bottom = [error_line_number-context-1, 0].max, error_line_number+context-1
|
@@ -28,7 +28,7 @@ class RenderMePretty::Erb
|
|
28
28
|
lines[top..bottom].each_with_index do |line_content, index|
|
29
29
|
current_line_number = top+index+1
|
30
30
|
if current_line_number == error_line_number
|
31
|
-
io.printf("%#{spacing}d %s\n".
|
31
|
+
io.printf("%#{spacing}d %s\n".color(:red), current_line_number, line_content)
|
32
32
|
else
|
33
33
|
io.printf("%#{spacing}d %s\n", current_line_number, line_content)
|
34
34
|
end
|
@@ -73,7 +73,7 @@ class RenderMePretty::Erb
|
|
73
73
|
# render_me_pretty lines
|
74
74
|
lines = lines[0..7] # keep 8 lines
|
75
75
|
end
|
76
|
-
lines[0] = lines[0].
|
76
|
+
lines[0] = lines[0].color(:red)
|
77
77
|
|
78
78
|
# header
|
79
79
|
lines.unshift "\nOriginal backtrace#{full ? '' : ' (last 8 lines)'}:"
|
@@ -10,7 +10,13 @@ class RenderMePretty::Erb
|
|
10
10
|
error_line = lines.select do |line|
|
11
11
|
line.include?(template_path_with_error)
|
12
12
|
end.first
|
13
|
-
|
13
|
+
|
14
|
+
if error_line.nil?
|
15
|
+
puts "WARN: Unable to find line number. Fallback and print out full backtrace."
|
16
|
+
puts @exception.backtrace
|
17
|
+
else
|
18
|
+
error_line.split(':')[1].to_i
|
19
|
+
end
|
14
20
|
end
|
15
21
|
|
16
22
|
def error_in_layout?
|
data/lib/render_me_pretty/erb.rb
CHANGED
@@ -73,17 +73,19 @@ module RenderMePretty
|
|
73
73
|
context.instance_variable_set('@' + key.to_s, value)
|
74
74
|
end
|
75
75
|
|
76
|
+
# https://github.com/gotar/dry-view/commit/39e3f96625bf90da2e51fb1fd437f18cedb9ae8c
|
77
|
+
tilt_options = {trim: '-', default_encoding: "utf-8"}
|
76
78
|
if @layout_path
|
77
|
-
layout = Tilt::ERBTemplate.new(@layout_path,
|
79
|
+
layout = Tilt::ERBTemplate.new(@layout_path, tilt_options)
|
78
80
|
else
|
79
81
|
# trim mode: https://searchcode.com/codesearch/view/77362792/
|
80
|
-
template = Tilt::ERBTemplate.new(@path,
|
82
|
+
template = Tilt::ERBTemplate.new(@path, tilt_options)
|
81
83
|
end
|
82
84
|
|
83
85
|
begin
|
84
86
|
if @layout_path
|
85
87
|
layout.render(context) do
|
86
|
-
Tilt::ERBTemplate.new(@path,
|
88
|
+
Tilt::ERBTemplate.new(@path, tilt_options).render(context)
|
87
89
|
end
|
88
90
|
else
|
89
91
|
template.render(context)
|
@@ -107,8 +109,8 @@ module RenderMePretty
|
|
107
109
|
# Refer to specs and uncomment puts out to see the different types of errors.
|
108
110
|
def handle_exception(e)
|
109
111
|
# puts "*" * 30
|
110
|
-
# puts e.class.to_s.
|
111
|
-
# puts e.message.
|
112
|
+
# puts e.class.to_s.color(:cyan)
|
113
|
+
# puts e.message.color(:cyan)
|
112
114
|
# puts e.backtrace
|
113
115
|
# puts "*" * 30
|
114
116
|
handler = e.is_a?(SyntaxError) ?
|
@@ -158,7 +160,7 @@ module RenderMePretty
|
|
158
160
|
# render_me_pretty lines
|
159
161
|
lines = lines[0..7] # keep 8 lines
|
160
162
|
end
|
161
|
-
lines[0] = lines[0].
|
163
|
+
lines[0] = lines[0].color(:red)
|
162
164
|
|
163
165
|
# header
|
164
166
|
lines.unshift "\nOriginal backtrace#{full ? '' : ' (last 8 lines)'}:"
|
data/lib/render_me_pretty.rb
CHANGED
data/render_me_pretty.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: render_me_pretty
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tung Nguyen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-12-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -25,7 +25,7 @@ dependencies:
|
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: rainbow
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
@@ -101,11 +101,11 @@ executables: []
|
|
101
101
|
extensions: []
|
102
102
|
extra_rdoc_files: []
|
103
103
|
files:
|
104
|
+
- ".circleci/config.yml"
|
104
105
|
- ".gitignore"
|
105
106
|
- ".rspec"
|
106
107
|
- CHANGELOG.md
|
107
108
|
- Gemfile
|
108
|
-
- Gemfile.lock
|
109
109
|
- README.md
|
110
110
|
- Rakefile
|
111
111
|
- bin/console
|
@@ -136,8 +136,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
136
136
|
- !ruby/object:Gem::Version
|
137
137
|
version: '0'
|
138
138
|
requirements: []
|
139
|
-
|
140
|
-
rubygems_version: 2.7.3
|
139
|
+
rubygems_version: 3.2.32
|
141
140
|
signing_key:
|
142
141
|
specification_version: 4
|
143
142
|
summary: Render ERB template and provide more useful message pointing out the line
|
data/Gemfile.lock
DELETED
@@ -1,52 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
render_me_pretty (0.6.0)
|
5
|
-
activesupport
|
6
|
-
colorize
|
7
|
-
tilt
|
8
|
-
|
9
|
-
GEM
|
10
|
-
remote: https://rubygems.org/
|
11
|
-
specs:
|
12
|
-
activesupport (5.1.5)
|
13
|
-
concurrent-ruby (~> 1.0, >= 1.0.2)
|
14
|
-
i18n (~> 0.7)
|
15
|
-
minitest (~> 5.1)
|
16
|
-
tzinfo (~> 1.1)
|
17
|
-
colorize (0.8.1)
|
18
|
-
concurrent-ruby (1.0.5)
|
19
|
-
diff-lcs (1.3)
|
20
|
-
i18n (0.9.5)
|
21
|
-
concurrent-ruby (~> 1.0)
|
22
|
-
minitest (5.11.3)
|
23
|
-
rake (12.3.0)
|
24
|
-
rspec (3.7.0)
|
25
|
-
rspec-core (~> 3.7.0)
|
26
|
-
rspec-expectations (~> 3.7.0)
|
27
|
-
rspec-mocks (~> 3.7.0)
|
28
|
-
rspec-core (3.7.1)
|
29
|
-
rspec-support (~> 3.7.0)
|
30
|
-
rspec-expectations (3.7.0)
|
31
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
32
|
-
rspec-support (~> 3.7.0)
|
33
|
-
rspec-mocks (3.7.0)
|
34
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
35
|
-
rspec-support (~> 3.7.0)
|
36
|
-
rspec-support (3.7.1)
|
37
|
-
thread_safe (0.3.6)
|
38
|
-
tilt (2.0.8)
|
39
|
-
tzinfo (1.2.5)
|
40
|
-
thread_safe (~> 0.1)
|
41
|
-
|
42
|
-
PLATFORMS
|
43
|
-
ruby
|
44
|
-
|
45
|
-
DEPENDENCIES
|
46
|
-
bundler
|
47
|
-
rake
|
48
|
-
render_me_pretty!
|
49
|
-
rspec
|
50
|
-
|
51
|
-
BUNDLED WITH
|
52
|
-
1.16.1
|