Introdução ao Ruby
Tags: beginners, programming, ruby, backenddevelopment
Published: 2023-08-16 02:57:47

Principais ferramentas para trabalhar com o Ruby:
-Um bom editor de texto, o livro ("Ruby For Begginers do Ruby Monstas") recomenda o Sublime Text, porém o curso que estou fazendo começou com o VSCode, então estarei usando o VSCode até o final. A indentação sugerida é de 2 espaços, diferente do Python que era 4.
-Terminal, o livro deu uma revisada nos comandos básicos, como `cd` e `ls`, e deu a dica de usar o `tab` para autocompletar o nome do arquivo/pasta.
-Ruby Runtime, um programa que serve basicamente para executar os códigos Ruby no shell.

# Fluxo de trabalho da programação

Quando for escrever qualquer programa, criar o hábito de fazer o seguinte processo:
- Escrever o código no editor de texto.
- Salvar em um arquivo numa pasta específica. O arquivo deve terminar com `.rb.`
- Abrir o terminal, navegar para a pasta usando o `cd` e executar o arquivo usando `ruby`.
- Ir repetindo esse processo, mudando entre o editor de texto e o terminal.

# Interactive Ruby

Junto com o Ruby Runtime, vem o `irb`, que significa Interactive Ruby Shell, e ele serve para executar códigos Ruby diretamente do Shell. Para iniciar o `irb` basta apenas digitar `irb`, e para sair basta digitar `exit`, ou apertar `ctrl+d` .

# Estilizando o Ruby

Seguindo o livro _Introduction to Programming with Ruby_ da Launch School, é apresentada as convenções do Ruby:

- O tab é de 2 espaços;
- Frases depois de # são comentários;
- A formatação de nomes de variáveis, funções e arquivos seguem o padrão `snake_case`.

```ruby
# Nomeando um arquivo
isso_e_um_arquivo_em_snake_case.rb

# Declarando uma variável
quarenta_e_dois = 42

# Definindo um método
def isso_e_um_bom_metodo
  # faça algo
end
```

- Declarações de variáveis constantes são com LETRAS_MAIÚSCULAS.
- Ao trabalhar com blocos do/end, prefira usar { } quando toda a expressão do código couber numa linha.

```ruby
# Linhas múltiplas
[1, 2, 3].each do |i| 
	# faça algo 
end 
	
# Faz a mesma coisa numa única linha 
[1, 2, 3].each { |i| faca_algo }
```

-  Para nomear classes utiliza-se o `PascalCase`, ou ` upper CamelCase`

```ruby
# Nomeando classes
class MinhaPrimeiraClasse
end

class MinhaSegundaClasse
end
```


# Documentação


### Nome da classe ou nome do módulo

O nome da classe é referenciado usando  `::` .

### Métodos

`::` É utilizado quando se refere a um método de classe.
`#` É utilizado com métodos de instância.

**No código, :: serve como espaço de nome, e # é usado para fazer comentários.**

3 coisas mais importantes a se lembrar quando se lê a documentação Ruby: 
- A classe ou módulo que está vendo. 
- Os seus métodos de classe disponíveis.
- Os seus métodos de instância disponíveis - e como utilizar esses métodos.

# Debugar código Ruby usando Pry

Pry é uma biblioteca Ruby, uma de suas capacidades é a de debugar o código. Para fazer isso, basta instalar ele primeiro:

```ruby
gem install pry
```
## Usando o pry:

 Temos que `require "pry"` e inserir um `binding.pry` no arquivo:

```ruby
# preparation.rb
require "pry"

a = [1, 2, 3]
a << 4
binding.pry     # execução para aqui, permitindo verificar todos os objetos
puts a
```

Depois para continuar a execução do programa é só apertar `Ctrl+D`.

## Carregando um arquivo no irb:

```ruby
irb -r ./seu_arquivo.rb
```