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