class RuboCop::Cop::Rails::HelperInstanceVariable

end
@template.do_something
class MyFormBuilder < ActionView::Helpers::FormBuilder
# good
end
“Hello #{user.name}”
def welcome_message(user)
# good
end
“Hello #{@user.name}”
def welcome_message
# bad
@example
an offense will not be registered.
Provided that a class inherits ‘ActionView::Helpers::FormBuilder`,
example to a model, decorator or presenter.
variable, consider moving the behavior elsewhere, for
If it seems awkward to explicitly pass in each dependent
methods.
Relying on instance variables makes it difficult to reuse helper
instance variables.
Checks for use of the helper methods which reference

def inherit_form_builder?(node)

def inherit_form_builder?(node)
  node.each_ancestor(:class) do |class_node|
    return true if form_builder_class?(class_node.parent_class)
  end
  false
end

def on_ivar(node)

def on_ivar(node)
  return if inherit_form_builder?(node)
  add_offense(node)
end

def on_ivasgn(node)

def on_ivasgn(node)
  return if node.parent.or_asgn_type? || inherit_form_builder?(node)
  add_offense(node.loc.name)
end