Shopify / erb-lint

Lint your ERB or HTML files
MIT License
593 stars 114 forks source link

Exception running erb-lint #275

Closed softwaregravy closed 1 year ago

softwaregravy commented 1 year ago

Creating a list of links causes and exception. Right to lint an exception, but not great to crash and stack trace.

<p class="text-black text-sm mb-6"><%= devices.map{ |d| link_to(d.name, device_path(d.id)) }.join(", ").html_safe %></p>

Stack Trace

Exception occurred when processing: [FILE NAME REDACTED]
If this file cannot be processed by erb-lint, you can exclude it in your configuration file.
undefined method `autocorrect' for #<ERBLint::Linters::ErbSafety:0x00000001103355c0 @file_loader=#<ERBLint::FileLoader:0x00000001103f6cc0 @base_path="XXXX">, @config=#<ERBLint::Linters::ErbSafety::ConfigSchema:0x0000000110335a98 @enabled=true, @exclude=["XXXX"]>, @offenses=[#<ERBLint::Offense linter=ERBLint::Linters::ErbSafety source_range=1587...1675 message=erb interpolation with '<%= (...).html_safe %>' in this context is never safe> severity=], @config_filename=nil, @better_html_config=#<BetterHtml::Config:0x0000000109055280 @partial_tag_name_pattern=/\A[a-z0-9\-\:]+\z/, @partial_attribute_name_pattern=/\A[a-zA-Z0-9\-\:]+\z/, @allow_single_quoted_attributes=true, @allow_unquoted_attributes=false, @javascript_safe_methods=["to_json"], @javascript_attribute_names=[/\Aon/i], @lodash_safe_javascript_expression=[/\AJSON\.stringify\(/]>>

        offense.linter.autocorrect(@processed_source, offense)
                      ^^^^^^^^^^^^
/Users/XXXX/.rvm/gems/ruby-3.1.2@demeter/gems/erb_lint-0.1.3/lib/erb_lint/corrector.rb:15:in `block in corrections'
/Users/XXXX/.rvm/gems/ruby-3.1.2@demeter/gems/erb_lint-0.1.3/lib/erb_lint/corrector.rb:14:in `map'
/Users/XXXX/.rvm/gems/ruby-3.1.2@demeter/gems/erb_lint-0.1.3/lib/erb_lint/corrector.rb:14:in `corrections'
/Users/XXXX/.rvm/gems/ruby-3.1.2@demeter/gems/erb_lint-0.1.3/lib/erb_lint/corrector.rb:20:in `corrector'
/Users/XXXX/.rvm/gems/ruby-3.1.2@demeter/gems/erb_lint-0.1.3/lib/erb_lint/corrector.rb:10:in `initialize'
/Users/XXXX/.rvm/gems/ruby-3.1.2@demeter/gems/erb_lint-0.1.3/lib/erb_lint/cli.rb:148:in `new'
/Users/XXXX/.rvm/gems/ruby-3.1.2@demeter/gems/erb_lint-0.1.3/lib/erb_lint/cli.rb:148:in `correct'
/Users/XXXX/.rvm/gems/ruby-3.1.2@demeter/gems/erb_lint-0.1.3/lib/erb_lint/cli.rb:110:in `block in run_with_corrections'
/Users/XXXX/.rvm/gems/ruby-3.1.2@demeter/gems/erb_lint-0.1.3/lib/erb_lint/cli.rb:105:in `times'
/Users/XXXX/.rvm/gems/ruby-3.1.2@demeter/gems/erb_lint-0.1.3/lib/erb_lint/cli.rb:105:in `run_with_corrections'
/Users/XXXX/.rvm/gems/ruby-3.1.2@demeter/gems/erb_lint-0.1.3/lib/erb_lint/cli.rb:64:in `block in run'
/Users/XXXX/.rvm/gems/ruby-3.1.2@demeter/gems/erb_lint-0.1.3/lib/erb_lint/cli.rb:61:in `each'
/Users/XXXX/.rvm/gems/ruby-3.1.2@demeter/gems/erb_lint-0.1.3/lib/erb_lint/cli.rb:61:in `run'
/Users/XXXX/.rvm/gems/ruby-3.1.2@demeter/gems/erb_lint-0.1.3/exe/erblint:9:in `<top (required)>'
/Users/XXXX/.rvm/gems/ruby-3.1.2@demeter/bin/erblint:25:in `load'
/Users/XXXX/.rvm/gems/ruby-3.1.2@demeter/bin/erblint:25:in `<main>'
/Users/XXXX/.rvm/gems/ruby-3.1.2@demeter/bin/ruby_executable_hooks:22:in `eval'
/Users/XXXX/.rvm/gems/ruby-3.1.2@demeter/bin/ruby_executable_hooks:22:in `<main>'
rafaelfranca commented 1 year ago

Fixed by https://github.com/Shopify/erb-lint/pull/264. Already released in 0.2.0.