Skip to content

Ruby Stylesheet

Sumário

  1. Declaração de classes, funções e variáveis
  2. Identação chaves e colchetes
  3. Rotas
  4. Comentários

Considerações gerais

Todos os nomes de variáveis, métodos, rotas, classes e funções devem ser em inglês
Comentários devem ser um português

1. Declaração de classes, funções e variáveis:

Summary

1.1. Declaração de clases

Classes sempre começam com letra maiúscula e em caso de uma classe com nome composto usa-se camel case
Exemplos:

class CompanyDenunciation < ActiveRecord::Base
end
class Notification < ActiveRecord::Base
end

1.2. Depois da declação da classe

Depois da declação da classe e suas dependências deve-se pular uma linha para escrever os métodos.
Exemplos:

class CommentsController < ApplicationController
  before_action :authenticate_user
  before_action :verify_user_permission, only: [:destroy, :edit]

  def new
     @comment = Comment.new
  end

...

end

1.3. Declaração de atributos:

Exemplos:

has_many :active_battles
has_many :passive_battles
has_many :won_battles

1.4. Declaração de variáveis e métodos/funções

Nunca abreviar os nomes e sempre separar nomes compostos por _ (underline)
Exemplos:

@battle_answer_notification
@pending_battles
def um_exemplo
  @meu_metodo
end

1.5. Variáveis para lops

Variáveis dentro de lops devem sempre corresponder ao singular do nome do array (que deve ser composto)
Exemplos:

  def read

    render :nothing => true
    @notifications = current_user.notifications.where(visualized: false)
    @notifications.each do |notification|
       notification.update_attribute(:visualized, true)
    end

  end

2. Identação chaves e colchetes

Summary

Identação sempre com 2 espaços.
Parênteses e colchetes sempre na mesma linha.
Chaves sempre separadas do conteúdo por um espaço.
Exemplos:

def update
  @vote = Vote.new(vote_params)
  @vote.question_id = params[:question_id]
  @vote.option_id = params[:vote][:option_id]
  @votes.each do |vote|
    vote.description = nil
  end

  if @vote.save
    redirect_to "/questions/#{ @vote.question_id }/results" 
  end 

end

3. Rotas:

Summary

Rotas devem sempre começar com letra minúscula
Os nomes devem ser intuitivos e em inglês
Exemplos:

#questions
  get 'questions/humans' => 'questions#humans'
  get 'questions/languages' => 'questions#languages'
  get 'questions/math' => 'questions#math'
  get 'questions/nature' => 'questions#nature'
  get 'questions/recommended' => 'questions#recommended'
  get 'questions/upload' => 'questions#new'
  post 'questions/upload_questions'
  post 'questions/upload_candidates_data'

4. Comentários:

Summary

Os comentários devem sempre de acordo com a identação.
Devem começar com letra maiúscula.
Devem estar em português.

  # Meu exemplo de comentário
  # Continua meu exemplo de comentário