11 de Fevereiro de 2024 - @Walmir Neto
Sempre fui muito assíduo de definir todas as regras para meu estilo do meu código, só que esses dias descobri o Standard Ruby que é um grupo de regras feito pela própria comunidade e uma das coisas que eles falam é “Dois desenvolvedores jamais concordarão sobre quais deveriam ser todas as regras e formatos”.
E isso me fez lembrar que eu já tive muitas desse debates e sendo bem sincero, resolvi delegar meu estilo de código para o Standard Ruby
A idéia aqui é fazer o setup da Standard Ruby e ERB Lint tanto no projeto quanto no vscode, sem delongas vamo nessa…
Como estamos usando Rails, precisamos instalar as standard
e standard-rails
lá no bloco group :development, :test do
do Gemfile
:
group :development, :test do
# <https://github.com/standardrb/standard#usage>
gem "standard", "~> 1.33"
# <https://github.com/standardrb/standard-rails#usage>
gem "standard-rails", "~> 1.0"
end
Depois roda:
bundle install
bundle binstub standard # optional
Agora é hora do arquivo .stardand.yml
de configurações +info
fix: false # default: false
parallel: true # default: false
format: progress # default: Standard::Formatter
ruby_version: 3.2.3 # default: RUBY_VERSION
default_ignores: false # default: true
ignore: # default: []
- 'vendor/**/*'
plugins: # default: []
- standard-rails
Como o Standard Ruby usa o rubocop, podemos usar um arquivo .rubocop.yml
e usar o rubocop
normalmente
require:
- rubocop-rails
inherit_gem:
standard: config/base.yml
AllCops:
NewCops: enable
TargetRubyVersion: 3.3
TargetRailsVersion: 7.1
Além disso, para o vscode fazer o auto format é preciso adicionar ‣. Então procure-o na sua barra de extensões
Precisamos dizer a vscode para usar essa extensão para formatar, eu vou deixar dentro do próprio projeto, mas podemos deixar nas configurações do usuário no vscode. Além de deixar-la como sugestão no arquivo .vscode/suggestions.json
do projeto e no .vscode/settings.json
fica desse jeito
{
"[ruby]": {
"editor.defaultFormatter": "testdouble.vscode-standard-ruby",
"editor.formatOnSave": true, // Format files automatically when saving
"editor.tabSize": 2, // Use 2 spaces for indentation
"editor.insertSpaces": true, // Use spaces and not tabs for indentation
"editor.semanticHighlighting.enabled": true, // Enable semantic highlighting
"editor.formatOnType": true, // Enable formatting while typing
},
}
Feito isso é para tá funcionando o auto format quando salvar os arquivos .rb