64 lines
3.3 KiB
Markdown
64 lines
3.3 KiB
Markdown
---
|
|
title: Rubocop
|
|
localeTitle: Rubocop
|
|
---
|
|
[Rubocop](https://github.com/bbatsov/rubocop) é uma ferramenta de análise estática para [Ruby](https://www.ruby-lang.org/en/) O que isto significa? Significa Rubocop vontade de 'ler' o seu código (ao invés de executá-lo, daí a parte 'estática' do nome), e analisá-lo. As regras de análise usadas pelo Rubocop são do [Guia de estilo da comunidade Ruby](https://github.com/bbatsov/ruby-style-guide) .
|
|
|
|
O guia de estilo é um conjunto de sugestões específicas sobre como escrever código que é mais legível, mais expressivo e mais convencional. Como uma comunidade, seria ótimo se pudéssemos ler o código de qualquer outra pessoa facilmente, e eles poderiam leia o nosso facilmente. É isso que o Rubocop nos ajuda a fazer. Esse tipo de ferramenta é sempre valioso, mas é particularmente útil quando você está aprendendo Ruby, e você pode codificar o que é _correto_ , mas que não se ater às convenções Ruby, ou não aproveita alguns dos recursos mais poderosos do Ruby.
|
|
|
|
Mais útil, o Rubocop pode corrigir automaticamente muitos dos menores avisos - como espaçamento incorreto. Isso é muito útil antes da revisão do código, já que significa colegas desenvolvedores podem se concentrar em preocupações de nível mais alto, e não ter que desperdiçar tempo em problemas de sintaxe.
|
|
|
|
## Usando Rubocop
|
|
|
|
### Instalação
|
|
|
|
Rubocop é entregue como uma Gem, então em um projeto típico que usa Bundler você gostaria de adicioná-lo à seção de desenvolvimento do seu `Gemfile` :
|
|
```
|
|
group :development do
|
|
gem rubocop
|
|
end
|
|
```
|
|
|
|
Isso significa que qualquer um usando seu projeto terá a mesma versão do Rubocop, e todos concordarão sobre qual é a melhor prática atual.
|
|
|
|
### Uso
|
|
|
|
Antes de cada confirmação, gostaria de verificar se meu código recém-modificado está em conformidade o padrão comunitário, simplesmente executando:
|
|
```
|
|
rubocop
|
|
```
|
|
|
|
Isto irá mostrar uma lista de avisos sobre o seu código.
|
|
|
|
Pode ser útil pedir mais ajuda a Rubocop:
|
|
```
|
|
rubocop --extra-details --display-cop-names
|
|
```
|
|
|
|
(Você pode adicioná-los a um arquivo `.rubocop` para torná-los padrão.)
|
|
|
|
Muitos editores permitirão que você integre o Rubocop, o que pode dar feedback quando você está escrevendo código.
|
|
|
|
### Corrigindo problemas
|
|
|
|
Digamos que eu tenha escrito algum novo código; antes de comê-lo, eu poderia decidir verifique se segue as diretrizes:
|
|
|
|
```shell
|
|
rubocop <my new file>
|
|
```
|
|
|
|
Eu posso editar fazer as alterações sugeridas manualmente, ou posso pedir ao Rubocop para corrigir pequenos problemas automaticamente:
|
|
```
|
|
rubocop --auto-correct
|
|
```
|
|
|
|
### Correndo apenas certos policiais
|
|
|
|
Cada diretriz da comunidade é implementada em um 'policial' do Rubocop. Ao trabalhar em um codebase legado você pode ser inundado com avisos ao introduzir o Rubocop. Neste caso, pode ser útil executar apenas um único policial ao longo do codebase, e verificar essas mudanças antes de passar para a próxima diretriz, para exemplo:
|
|
```
|
|
rubocop --auto-correct --only 'Layout/EmptyLineAfterMagicComment'
|
|
```
|
|
|
|
### Integração do Editor de Texto
|
|
|
|
O Rubocop pode ser integrado ao Vim, ao Visual Studio Code, ao Atom e a outros editores de texto. Uma lista completa pode ser encontrada [aqui](https://rubocop.readthedocs.io/en/latest/integration_with_other_tools/) . |