Ruby Stylesheet
Sumário
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