curriculum icon indicating copy to clipboard operation
curriculum copied to clipboard

Ruby Course: Add Rubocop / Linting Lesson

Open ChargrilledChook opened this issue 3 years ago • 2 comments

Complete the following REQUIRED checkboxes:

  • [x] I have thoroughly read and understand The Odin Project Contributing Guide
  • [x] The title of this issue follows the location for request: brief description of request format, e.g. NodeJS course: Add lessons on XYZ

The following checkbox is OPTIONAL:

  • [x] I would like to be assigned this issue to work on it

1. Description of the Feature Request:

Rubocop is a very useful tool that is regularly recommended in Discord (as well as briefly introduced in the OOP section).

However, it is often also a source of confusion and questions in Discord, with many learners not understanding the difference between Rubocop the gem and the IDE integration. We also give very little context on how to read the output.

Introducing a lesson that covered topics such as installation and configuration, how to interpret / look up offenses on the community style guide and basic customization could provide a lot of value to learners, as well as provide parity with the linting lessons in the JS section.

2. Acceptance Criteria: A lesson that covers:

  • [ ] Gem installation + IDE integration
  • [ ] Difference between CLI and IDE versions, visual examples
  • [ ] Brief explanation of linting
  • [ ] Intro to community style guide + difference between different types of rules (style, lint, performance etc)
  • [ ] Explanation of more confusing rules (such as ABC / cyclomatic complexity metrics)
  • [ ] How to write a custom .rubocop.yml / add plugins

3. Additional Information:

If the maintainers like this idea I'm happy to create a more detailed lesson outline for discussion and/or provide a draft.

ChargrilledChook avatar Mar 15 '22 06:03 ChargrilledChook

@ChargrilledChook

Sounds really good mate. Look forward to seeing what you come up with.

CouchofTomato avatar Mar 15 '22 14:03 CouchofTomato

This issue is stale because it has had no activity for the last 30 days.

github-actions[bot] avatar Jul 05 '22 02:07 github-actions[bot]

This issue is stale because it has had no activity for the last 30 days.

github-actions[bot] avatar Apr 19 '23 01:04 github-actions[bot]

Hey @ChargrilledChook, would you have any objections to moving this to a discussion until it's ready to be worked on? 😄

KevinMulhern avatar Jun 25 '23 13:06 KevinMulhern