-
Notifications
You must be signed in to change notification settings - Fork 3
Folha de Estilo
A folha de estilo, contém as convenções de código adotadas para o projeto.
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)
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 }