From a713f7f536c016be944cd5b00dc7cefa669577ca Mon Sep 17 00:00:00 2001 From: Omar Khan Date: Wed, 31 Jan 2024 14:22:27 -0600 Subject: [PATCH] Detect instance variable in partial without leading whitespace --- lib/erb_lint/linters/partial_instance_variable.rb | 2 +- spec/erb_lint/linters/partial_instance_variable_spec.rb | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/erb_lint/linters/partial_instance_variable.rb b/lib/erb_lint/linters/partial_instance_variable.rb index 50c5ff27..2e9e8a38 100644 --- a/lib/erb_lint/linters/partial_instance_variable.rb +++ b/lib/erb_lint/linters/partial_instance_variable.rb @@ -7,7 +7,7 @@ class PartialInstanceVariable < Linter include LinterRegistry def run(processed_source) - instance_variable_regex = /\s@\w+/ + instance_variable_regex = /[^\w]?@\w+/ return unless processed_source.filename.match?(%r{(\A|.*/)_[^/\s]*\.html\.erb\z}) && processed_source.file_content.match?(instance_variable_regex) diff --git a/spec/erb_lint/linters/partial_instance_variable_spec.rb b/spec/erb_lint/linters/partial_instance_variable_spec.rb index 49359e97..0687ec0e 100644 --- a/spec/erb_lint/linters/partial_instance_variable_spec.rb +++ b/spec/erb_lint/linters/partial_instance_variable_spec.rb @@ -30,6 +30,15 @@ ])) end end + + context "when instance variable is present without leading whitespace" do + let(:file) { "<%= link_to(@user) %>" } + it do + expect(subject).to(eq([ + build_offense(processed_source_one, 11..21, "Instance variable detected in partial."), + ])) + end + end end private