Passo a passo: aprenda como montar um e-commerce do zero
Qual a importância de construir uma loja virtual personalizada?

Padronize seu código Ruby com Rubocop

Publicado em: • Última Atualização:

Recentemente, no time que estou trabalhando, notei durante os code reviews muitas ponderações relacionadas a estilo do código. Como por exemplo:

  • uso de aspas simples ou duplas para definir strings;
  • uso de espaços na definição de hashes;
  • tamanho máximo da linha;
  • etc …

Em nosso time utilizamos Ruby como principal linguagem, portanto nada melhor que se basear no Guia de Estilo Ruby.

Porém, também é importante utilizar uma ferramenta que nos ajude a garantir que esse estilo esteja sendo aplicado, e para isso temos o Rubocop.

Rubocop

Rubocop é um analisador estático que nos auxilia a validar e aplicar um padrão de estilo em nosso código Ruby, baseando-se no Guia de Estilo Ruby

Instalando

$ gem install rubocop

img1

As regras do Rubocop podem ser configuradas ou desabilitadas através do arquivo .rubocop.yml, que deve estar na raiz do projeto com as configurações desejadas.

Segue abaixo um exemplo do arquivo .rubocop.yml com algumas configurações:

Por exemplo, essa configuração está desconsiderando que linhas vazias entre o início e fim de módulos e blocos sejam violações.
Style/EmptyLinesAroundBlockBody:  
  Enabled: false

Style/EmptyLinesAroundModuleBody:  
  Enabled: false

Configurando seu editor

O Rubocop fornece algumas formas para validar seu código Ruby, que podem ser analisadas mais detalhadamente através de seu Docs. Porém, para extrair maior produtividade quanto ao seu uso, recomendo que tenha-o configurado no seu editor.

Sublime Text 3

Iremos instalar os pacotes necessários para a configuração do Rubocop através do Package Control, portanto antes dos próximos passos, será necessário sua instalação.

Será necessário a instação dos seguintes pacotes:

Basicamente, a instalação desses dois pacotes é o suficiente para ter o SublimeText integrado ao Rubocop. Porém, se você utiliza o rbenv para instalar e gerenciar o Ruby em sua máquina, será necessário informar o PATHdo Ruby ao SublimeLinter:

Tools > SublimeLinter > Open User Settings  

img2

{
    "user": {
        "paths": {
            "linux": [],
            "osx": ["~/.rbenv/shims"],
            "windows": []
...

img3

Obs1.: Nesse caso estou aplicando a configuração em um OSX, caso seu sistema operacional seja outro, basta mudar a configuração para linux ou windows. Você pode verificar a configuração completa aqui.

Obs2.: É necessário restartar o Sublime Text para que a configuração seja aplicada e o SublimeLinter comece a funcionar (Demorei um pouco pra descobrir isso..). Portanto, basta fechar e abrir novamente o editor.

Você vai saber que a integração funcionou quando abrir seu editor e verificar algumas marcações amarelas no seu código:

img4

Ao fixar o cursor em uma determinada linha, que está sendo apontada pela marcação, é possível verificar no rodapé do editor a respectiva violação.

img5

Atom

No Atom, vamos utilizar os seguintes plugins:

Vamos realizar a instalação via linha de comando, a qual eu acho mais simples.

$ apm install linter
$ apm install linter-rubocop

img6

Após a instalação será necessário configurar PATH do rubocop. Para isso, podemos editar diretamente o arquivo de configuração em ~/.atom/config.cson, ou através do menu:

Atom > Config...  

img7

Agora vamos verificar onde está o rubocop, através do comando which:

$ which rubocop

img8

Porém, se você como eu estiver utilizando o rbenv deverá executar o seguinte comando:

$ rbenv which rubocop

img9

E adicionar a seguinte configuração, com o respectivo PATH:

"linter-rubocop":
    command: "/Users/gabriel/.rbenv/versions/2.3.1/bin/rubocop"

img10

Semelhante ao Sublime Text 3, também será necessário restartar seu editor, fechando e abrindo novamente o mesmo.

E utilizando o mesmo arquivo como exemplo, podemos ver a integração do rubocop ao Atom:

img11

O plugin do Atom oferece algumas funcionalidades legais a mais que ao do Sublime.

Um placeholder informando o tipo da violação:

img12

Um contador e um painel detalhando as violações:

img13

Conclusão

Se você está desenvolvendo código e espera que outros possam ler e trabalhar com ele, então é muito importante escolher um estilo consistente e garantir que seja aplicado. Ter uma ferramenta que o auxilie a aplicar esse estilo integrada ao seu editor, é essencial para manter seu código padronizado no momento em que o mesmo está sendo produzido, mantendo um código padronizado você terá menos erros e uma avaliação mais eficaz. Caso esteja desenvolvendo código Ruby, utilize o Guia de Estilo Ruby e o Rubocop para verificar se o mesmo está sendo aplicado.

Artigo escrito por: Gabriel Silva Pereira – Coordenador de Desenvolvimento na Tray

Originalmente publicado em: https://gabrielpedepera.com.br/padronize-seu-codigo-ruby-com-rubocop/

Ficou com alguma dúvida? Faça parte do nosso grupo no Facebook com especialistas em e-commerce e outros lojistas e envie sua pergunta.

Está pensando em criar uma loja virtual? Faça o teste e descubra se você está pronto!

Padronize seu código Ruby com Rubocop
Avalie esse artigo!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *