This is a GitLab-specific style guide for Ruby code.
Generally, if a style is not covered by existing Rubocop rules or style guides, it shouldn’t be a blocker. Before adding a new cop to enforce a given style, make sure to discuss it with your team. When the style is approved by a backend EM or by a BE staff eng, add a new section to this page to document the new rule. For every new guideline, add it in a new section and link the discussion from the section’s version history note to provide context and serve as a reference.
Just because something is listed here does not mean it cannot be reopened for discussion.
Introduced in GitLab 14.1.
Instance variables can be accessed in a variety of ways in a class:
# public class Foo attr_reader :my_var def initialize(my_var) @my_var = my_var end def do_stuff puts my_var end end # private class Foo def initialize(my_var) @my_var = my_var end private attr_reader :my_var def do_stuff puts my_var end end # direct class Foo def initialize(my_var) @my_var = my_var end private def do_stuff puts @my_var end end
Public attributes should only be used if they are accessed outside of the class. There is not a strong opinion on what strategy is used when attributes are only accessed internally, as long as there is consistency in related code.