Ruby style guide
contracts.ruby
Our great sponsors
Ruby style guide | contracts.ruby | |
---|---|---|
36 | 5 | |
16,380 | 1,441 | |
0.1% | - | |
6.6 | 1.4 | |
3 months ago | about 1 year ago | |
Ruby | ||
- | BSD 2-clause "Simplified" 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.
Ruby style guide
-
An Introduction to RuboCop for Ruby on Rails
By default, RuboCop will enforce the style defined in the Ruby Community Style Guide. We can tailor it to our specific tastes and context, but let's rely on this basic set of rules to learn how to use RuboCop.
-
Code Reviewing a Ruby on Rails application.
RuboCop is a Ruby static code analyzer (a.k.a. linter) and code formatter. Out of the box it will enforce many of the guidelines outlined in the community Ruby Style Guide. Apart from reporting the problems discovered in your code, RuboCop can also automatically fix many of them for you.
- Naming conventions and style guides in programming"
-
Shine bright like a.. Ruby 💎
Read more about Ruby.
-
10 Best Practices for Ruby Programmers: Tips for Efficient, Maintainable, and Bug-Free Code
8. Use a consistent style: Consistency is key when it comes to writing readable code. Use a consistent style throughout your codebase, and follow common Ruby style guides like Ruby Style Guide.
-
It's Official: the Standard Ruby VS Code extension
The real standard is to use default rubocop configuration which is based on https://rubystyle.guide/.
-
Why I think we should adopt and use new Ruby features
It used to, before recently. It literally said, "The and and or keywords are banned."
-
Rubyme: My minimalist Ruby Handbook
rubocop/ruby-style-guide
-
Development guidelines
As you see - there are no reference to any technology or framework. There are a lot of best-practices for almost any framework, so you can choose an appropriate one. For example - if you're a rails developer, then you can check https://github.com/rubocop/ruby-style-guide and https://github.com/rubocop/rails-style-guide but if you're a golang developer - https://github.com/uber-go/guide/blob/master/style.md and https://developers.mattermost.com/contribute/more-info/server/style-guide/
- `and` and `or` control flow operators now allowed in Rubocop
contracts.ruby
-
A few words on Ruby's type annotations state
I had written a code contracts library for Ruby about 10 years ago [1]. I stopped working on it, mainly because it only provided runtime type checking, and I wanted static type checking. Nowadays my main language is typescript. I miss ruby, but can't give up the static typing that typescript provides. I really wish Ruby had a type system with the same level of support. VSCode has phenomenal TS support, and there's a community adding types to projects [2]. This is something I'd like for Ruby also.
> An integral part of this informality is relying on Matz’s taste and intuition for everything that affects the language’s core.
I think a more defined process would mean a better future for Ruby and Ruby developers.
- [1] https://github.com/egonschiele/contracts.ruby
- [2] https://github.com/DefinitelyTyped/DefinitelyTyped
-
Why I Stopped Using Sorbet in All My Ruby Projects
Contracts gem can be a nice middle-ground. It has a fairly readably syntax and only checks method inputs and outputs at runtime. We use it to annotate important core methods, while leaving the rest type-free.
-
Should gems support old Ruby versions like 2.4?
For example contracts gem needs to have a separate version/branch for ruby 3.x due to the breaking change above
-
Cells - Introduction
This gives me access to input values as long as I defined them via attr_reader. Oh what's the Contract XXX above attr_reader? They are from contracts.ruby and completely optional and won't be explained in this post. You can safely ignore those and maybe study that gem later.
What are some alternatives?
Rails style guide - A community-driven Ruby on Rails style guide
Fundamental Ruby - :books: Fundamental programming with ruby examples and references. It covers threads, SOLID principles, design patterns, data structures, algorithms. Books for reading. Repo for website https://github.com/khusnetdinov/betterdocs
RSpec style guide - RSpec Best Practices
fast-ruby - :dash: Writing Fast Ruby :heart_eyes: -- Collect Common Ruby idioms.
Best-Ruby - Ruby Tricks, Idiomatic Ruby, Refactoring and Best Practices
Functional Ruby