Skip to content
Jonathan Rufino edited this page Sep 1, 2015 · 1 revision

A folha de estilo, contém as convenções de código adotadas para o projeto.

Identação e Espaçamento

Os níveis de indentação devem ser definidos com dois espaços ao invés de um TAB. Cada linha deve conter no máximo 80 caracteres, e uma única linha em branco deve ser usada para separar métodos de uma classe, ou blocos lógicos dentro de métodos.

def nonsense_method(is_valid)
  a_value = get_a_value()
  another_value = find_another_value(a_value)

  if is_valid
    another_value = find_another_value(another_value)
  end
  
  return another_value
end

def simple_method
  return 1
end

Um espaço em branco deve ser utilizado para separar código em geral de operadores matemáticos, operadores lógicos, e chaves ('{', '}'). Espaços não devem ser usados caso os símbolos sejam parênteses ('(', ')'), colchetes ('[', ']'), ou negações lógicas.

Um único espaço em branco também deve ser adicionado após vírgulas, mas jamais antes delas.

average = (a + b) / 2
is_valid_robot = has_legs && has_arms
my_bool = !your_bool
names_array = [“first name”, “second name”, “third name”]
```

### Sintaxe

Parênteses devem ser omitidos de declarações de funções sempre que ela não receber parâmetro algum.

````ruby
def a_method_without_params
  # See?
end

def a_method_with_params(some_name, some_number)
  # Clear enough, right?
end

Os operadores lógicos ‘&&’ e ‘||’ devem substituir 'and' e 'or' em expressões lógicas.

correct_logic = is_fuit && (is_red || is_orange)
incorrect_logic = is_fuit and (is_red or is_orange)

Parênteses devem ser usados em chamadas de métodos com argumentos. Por outro lado, eles devem ser omitidos em chamadas de função sem argumentos, estruturas de controle e condição, e alguns métodos reservados (como por exemplo puts e attr_acessor).

funciton_with_args("name", 100)
function_without_args

puts “No parenthesis...!
attr_acessor :name, :email

if x > 10
  puts "again"
end

Para funções que aceitam uma hash como parâmetro, as chaves podem ser omitidas.

function_with_hash_arg(student_id: “ZX22S89423”, grade_1: 8.5, grade_2: 10)

Nomenclatura

Classes e módulos devem seguir o padrão CamelCase. Métodos, variáveis e arquivos devem ser nomeados seguindo o padrão snake_case.

Para hashes que utilizam símbolos como chave, o padrão key: value deve ser usado, substituindo o padrão key => value.

do_not_do_this = { plate_name => “Exotic Salad”, price => 23.75 }
do_this_instead = { plate_name => “Exotic Salad”, price => 23.75 }