This PR includes three commits (that can be squashed before merging):
Added rubocop (and related gems) and autogenerated a config file that matches enabled cops to the existing code style. Also added rubocop step to GitHub actions.
Manually disabled a few cops that depend on arbitrarily chosen lengths (e.g. Metrics/MethodLength).
Enabled some cops and fixed related warnings.
For the last commit, I chose cops that were very easy to update the code to adhere to and, in some cases, relate to preventing bugs. I mostly avoided cops that involve more personal code style preferences (e.g. spacing, alignment, naming). If those changes don't follow this project's preferred styling, I'm happy to roll some or all of them back.
This PR includes three commits (that can be squashed before merging):
Metrics/MethodLength
).For the last commit, I chose cops that were very easy to update the code to adhere to and, in some cases, relate to preventing bugs. I mostly avoided cops that involve more personal code style preferences (e.g. spacing, alignment, naming). If those changes don't follow this project's preferred styling, I'm happy to roll some or all of them back.