discover-unused-partials
discover-unused-partials copied to clipboard
Error: invalid byte sequence in UTF-8 (ArgumentError)
When I run discover-unused-partials
it fails with this error:
/app # discover-unused-partials .
Traceback (most recent call last):
16: from /usr/local/bundle/bin/discover-unused-partials:23:in `<main>'
15: from /usr/local/bundle/bin/discover-unused-partials:23:in `load'
14: from /usr/local/bundle/gems/discover-unused-partials-0.3.5/bin/discover-unused-partials:24:in `<top (required)>'
13: from /usr/local/bundle/gems/discover-unused-partials-0.3.5/lib/discover-unused-partials.rb:6:in `find'
12: from /usr/local/bundle/gems/discover-unused-partials-0.3.5/lib/discover-unused-partials.rb:6:in `chdir'
11: from /usr/local/bundle/gems/discover-unused-partials-0.3.5/lib/discover-unused-partials.rb:6:in `block in find'
10: from /usr/local/bundle/gems/discover-unused-partials-0.3.5/lib/discover-unused-partials.rb:63:in `used_partials'
9: from /usr/local/bundle/gems/discover-unused-partials-0.3.5/lib/discover-unused-partials.rb:63:in `loop'
8: from /usr/local/bundle/gems/discover-unused-partials-0.3.5/lib/discover-unused-partials.rb:64:in `block in used_partials'
7: from /usr/local/bundle/gems/discover-unused-partials-0.3.5/lib/discover-unused-partials.rb:85:in `process_partials'
6: from /usr/local/bundle/gems/discover-unused-partials-0.3.5/lib/discover-unused-partials.rb:85:in `each'
5: from /usr/local/bundle/gems/discover-unused-partials-0.3.5/lib/discover-unused-partials.rb:86:in `block in process_partials'
4: from /usr/local/bundle/gems/discover-unused-partials-0.3.5/lib/discover-unused-partials.rb:86:in `open'
3: from /usr/local/bundle/gems/discover-unused-partials-0.3.5/lib/discover-unused-partials.rb:87:in `block (2 levels) in process_partials'
2: from /usr/local/bundle/gems/discover-unused-partials-0.3.5/lib/discover-unused-partials.rb:87:in `each'
1: from /usr/local/bundle/gems/discover-unused-partials-0.3.5/lib/discover-unused-partials.rb:88:in `block (3 levels) in process_partials'
/usr/local/bundle/gems/discover-unused-partials-0.3.5/lib/discover-unused-partials.rb:88:in `strip!': invalid byte sequence in UTF-8 (ArgumentError)
@MatheusRich
The issue is caused by a line within the files of the specified directory containing a non UTF-8 character. To detect these lines, you can simply place a guard before the call to .strip!
like so:
unless line.ascii_only?
puts "** found **"
puts file
puts line
puts "** end **"
end
After running the script again, you will see which lines contain non UTF-8 characters.
In the case that you legitimately need to have non UTF-8 characters in your views, you can simply add a guard before the call to strip!
on /lib/discover-unused-partials.rb:88
like so:
File.open(file) do |f|
f.each do |line|
next unless line.ascii_only?
line.strip!
....