unparser
rubocop-rails
Our great sponsors
- CodiumAI - TestGPT | Generating meaningful tests for busy devs
- InfluxDB - Access the most powerful time series database as a service
- ONLYOFFICE ONLYOFFICE Docs β document collaboration in your environment
- SonarQube - Static code analysis for 29 languages.
unparser | rubocop-rails | |
---|---|---|
1 | 7 | |
291 | 709 | |
- | 3.4% | |
3.7 | 7.4 | |
11 days ago | 4 days ago | |
Ruby | Ruby | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
unparser
-
Future of Ruby β AST Tooling
There are already some techniques capable of doing just this, by combining Parser with Unparser, but of course such things can only be done on Ruby files read in rather than in a REPL session which is where a lot more fun could happen.
rubocop-rails
-
RuboCoping with legacy: Bring your Ruby code up to Standard
1) Auto-correcting a whole (large) codebase at once with tons of offenses and dozens of active branches should be used with caution. Merge conflicts, blame pollution (ok, can be solved with .git-blame-ignore-revs, though can hardly remember any project using it). Though, the most important argument is that auto-correct can introduce bugs. Unfortunately, even safe autocorrect can be unsafe. Recently, I broke one popular project (with a decent, but not 99.999% test coverage) with a single "safe" auto-correction commit π (This issue).
-
Linting and Auto-formatting Ruby Code With RuboCop
It's also possible to extend RuboCop through additional linters and formatters. You can build your own extensions or take advantage of existing ones if they are relevant to your project. For example, a Rails extension is available for the purpose of enforcing Rails best practices and coding conventions.
-
Future of Ruby β AST Tooling
Let's take a glance at the action_filter cop real quick here, but just a quick part of it:
-
Learning style?
Following on from this, I highly recommend setting up your editor to automatically lint Ruby files with RuboCop and its Rails extension and start adapting your code to adhere to the Ruby Style Guide.
- Rails 7 will introduce invert_where method, but it's dangerous
-
Learning Ruby: Things I Like, Things I Miss from Python
I just would like to point out that even though that is the most sane way, it comes with it owns set of problems. One of them is when developers start to code to cheat the linter, or they complicate the code just to "make the linter happy", another is when the linting rule introduces problems/errors like https://github.com/rubocop-hq/rubocop-rails/issues/418
What are some alternatives?
Django - The Web framework for perfectionists with deadlines.
coc-solargraph - Solargraph extension for coc.nvim
Strapi - π Strapi is the leading open-source headless CMS. Itβs 100% JavaScript, fully customizable and developer-first.
gringotts - A complete payment library for Elixir and Phoenix Framework
rubocop-performance - An extension of RuboCop focused on code performance checks.
anystyle - Fast and smart citation reference parsing
stripity_stripe - An Elixir Library for Stripe
ruby-next - Ruby Next makes modern Ruby code run in older versions and alternative implementations
Nest - A progressive Node.js framework for building efficient, scalable, and enterprise-grade server-side applications on top of TypeScript & JavaScript (ES6, ES7, ES8) π
Ruby style guide - A community-driven Ruby coding style guide
constant_sandbox - Tool for ruby codebases used to enforce boundaries and modularize Rails applications