gringotts VS rubocop-rails

Compare gringotts vs rubocop-rails and see what are their differences.

rubocop-rails

A RuboCop extension focused on enforcing Rails best practices and coding conventions. (by rubocop-hq)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
gringotts rubocop-rails
1 7
477 781
0.4% 2.2%
2.4 9.1
3 months ago 5 days ago
Elixir Ruby
MIT License MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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.

gringotts

Posts with mentions or reviews of gringotts. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-02-15.
  • Learning Ruby: Things I Like, Things I Miss from Python
    11 projects | news.ycombinator.com | 15 Feb 2021
    Thanks.

    > Stripe, including webhooks support, actively developed

    I've looked into Stripity Stripe. For some time it was unmaintained and ended up getting taken over by another maintainer. It's also not as comprehensive as the official Stripe libraries. There's also a very big difference in using an official Stripe library and hoping for the best with a random one someone developed. Just skimming the code base it looks like the Checkout module is missing features that exist in the official Stripe library in every other supported language.

    According to the README file for Stripity Stripe it's also using Stripe's API version from 2019. There have been multiple major API updates since then, and there's been an open issue since November 2020 to add support for newer API versions with no replies. Personally I would be using one of those major features too.

    And this really is the point I'm trying to drive home. With Ruby, Python, Go, PHP, Node, Java and .NET these are problems you don't even need to think about. You just pick the payment provider's official SDK and start coding immediately, often times there's also an abundance of resources to implement the billing code itself into your app too through blog posts, official docs, YouTube videos, and even paid products like https://spark.laravel.com/. Stuff that makes integrating billing into your app (through Stripe, BrainTree and Paddle) being something you get done in 1 day instead of 3 months.

    With Elixir it becomes weeks of comprehensive research, evaluating questionable libraries, opening PRs, and becoming a full time library developer just to get to the point where you could even maybe begin to start accepting payments with just Stripe.

    > the best I've found is https://github.com/aviabird/gringotts

    I asked the Gringotts developers if they would be supporting PayPal about 5 hours after they announced the project ~3 years ago. He said it was coming and to stay tuned. It's now ~3 years later and PayPal support isn't there. Neither is BrainTree or Paddle. Here's the open issue for PayPal support from 2018 (not by me, I asked on another site) https://github.com/aviabird/gringotts/issues/114. The Stripe integration is also missing a ton and hasn't been touched since 2018.

    By the way, the Pay gem is really good. It's a smart abstraction and supports a ton of different subscription / 1 off payment use cases. Even complex ones like the type of app I was building.

    > It's definitely a few weeks work to roll your own from scratch so to be honest I'd probably just integrate with Twilio and just pay for someone else to handle this for me.

    Twilio ends up being 1 potential delivery method, it's not really someone you pay to solve the problem for you.

    There's wanting to show notification in the app over websockets, saving them into a database, emailing them out only if they are unread, maybe sending an SNS through Twilio, Slack and other providers.

    The noticed gem handles all of this for you (and supports Twilio too).

    Notifications in general is another example where other frameworks have this solved in very good ways, but it becomes another example where you have to stop developing your app and start developing a notification library with Elixir.

    At this point we've only talked about payments and notifications too. There's lots of other examples.

rubocop-rails

Posts with mentions or reviews of rubocop-rails. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-04-05.
  • RuboCoping with legacy: Bring your Ruby code up to Standard
    2 projects | /r/ruby | 5 Apr 2023
    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
    12 projects | dev.to | 29 Jun 2022
    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.
  • Technical leadership during large refactors
    1 project | dev.to | 11 May 2022
    I'm still getting used to writing these. Still, this article from Evil Martians has been a big help. The rubocop-rails codebase also had some cops similar to what I wanted to put together. The cop we've put together checks if the class inherits from ActiveModel::Serializer and adds an offence to that line.
  • Future of Ruby – AST Tooling
    4 projects | dev.to | 14 Nov 2021
    Let's take a glance at the action_filter cop real quick here, but just a quick part of it:
  • Learning style?
    2 projects | /r/rails | 14 Jun 2021
    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
    4 projects | dev.to | 2 May 2021
  • Learning Ruby: Things I Like, Things I Miss from Python
    11 projects | news.ycombinator.com | 15 Feb 2021
    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?

When comparing gringotts and rubocop-rails you can also consider the following projects:

stripity_stripe - An Elixir Library for Stripe

Django - The Web framework for perfectionists with deadlines.

airbrake - An Elixir notifier to the Airbrake/Errbit. System-wide error reporting enriched with the information from Plug and Phoenix channels.

coc-solargraph - Solargraph extension for coc.nvim

instrumental - An Elixir client for Instrumental

Strapi - πŸš€ Strapi is the leading open-source headless CMS. It’s 100% JavaScript/TypeScript, fully customizable and developer-first.

elixtagram - :camera: Instagram API client for the Elixir language (elixir-lang)

rubocop-performance - An extension of RuboCop focused on code performance checks.

forecast_io - Simple wrapper for Forecast.IO API

standard - Ruby's bikeshed-proof linter and formatter 🚲

slack - Slack real time messaging and web API client in Elixir

unparser - Turn Ruby AST into semantically equivalent Ruby source