curriculum
curriculum copied to clipboard
Ruby Course: Add Rubocop / Linting Lesson
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 requestformat, 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
Sounds really good mate. Look forward to seeing what you come up with.
This issue is stale because it has had no activity for the last 30 days.
This issue is stale because it has had no activity for the last 30 days.
Hey @ChargrilledChook, would you have any objections to moving this to a discussion until it's ready to be worked on? 😄