Skip to main content

#34 - Ruby on Rails

· 5 min read

17/09/2022 - Aula 1 de Ruby (Presencial)

A primeira aula de Ruby, o professor Mauricio começou a aula falando sobre o que é Ruby, e como ele é uma linguagem de programação de alto nível, interpretada, orientada a objetos, imperativa, funcional e reflexiva. Também falou que o Ruby não é a linguagem mais , mas que tem um desenvolvimento extremamente rápido.

O Ruby é uma linguagem que utiliza um terminal interativo, chamado de IRB, que é um interpretador de comandos que permite a execução de comandos Ruby de forma interativa.

Para a aula, o professor criou um arquivo no Google Drive, que é para irmos editando conforme a aula for decorrendo. O link é esse.

Tudo em Ruby é um objeto, e para saber o tipo de um objeto, podemos utilizar o método class:

"string".class
# => String

Também podemos utilizar o método is_a? para saber se um objeto é de um determinado tipo:

"string".is_a?(String)
# => true

Para listar todos os métodos de um objeto, podemos utilizar o método methods:

"string".methods
[
include?, %, *, +, unicode_normalize, to_c, unicode_normalize!,
unicode_normalized?, count, partition, unpack, encode, encode!, next,
casecmp, insert, bytesize, match, succ!, next!, upto, index, rindex,
replace, clear, chr, +@, -@, setbyte, getbyte, <=>, <<, scrub, scrub!,
byteslice, ==, ===, dump, =~, downcase, [], []=, upcase, downcase!,
capitalize, swapcase, upcase!, oct, empty?, eql?, hex, chars, split,
capitalize!, swapcase!, concat, codepoints, reverse, lines, bytes,
prepend, scan, ord, reverse!, center, sub, freeze, inspect, intern,
end_with?, gsub, chop, crypt, gsub!, start_with?, rstrip, sub!, ljust,
length, size, strip!, succ, rstrip!, chomp, strip, rjust, lstrip!,
tr!, chomp!, squeeze, lstrip, tr_s!, to_str, to_sym, chop!, each_byte,
each_char, each_codepoint, to_s, to_i, tr_s, delete, encoding,
force_encoding, sum, delete!, squeeze!, tr, to_f, valid_encoding?,
slice, slice!, rpartition, each_line, b, ascii_only?, hash, to_r, <, >,
<=, >=, between?, instance_of?, public_send, instance_variable_get,
instance_variable_set, instance_variable_defined?,
remove_instance_variable, private_methods, kind_of?,
instance_variables, tap, method, public_method, singleton_method,
is_a?, extend, define_singleton_method, to_enum, enum_for, !~,
respond_to?, display, object_id, send, nil?, class, singleton_class,
!, !=, __send__, equal?, instance_eval, instance_exec, __id__
]

No Ruby, podemos utilizar o ! para indicar que um método é perigoso, ou seja, ele pode alterar o estado do objeto. Por exemplo, o método upcase! altera o estado do objeto, enquanto o método upcase não altera o estado do objeto:

string = "string"
string.upcase
# => "STRING"
string
# => "string"
string.upcase! # Vai alterar o estado do objeto
# => "STRING"
string
# => "STRING"

Para poder acessar um valor de uma classe, podemos criar getters e setters. Por exemplo, para criar um getter, podemos utilizar o método attr_reader:

class Pessoa
attr_reader :nome
def initialize(nome)
@nome = nome
end
end

pessoa = Pessoa.new("Nome da pessoa")
pessoa.nome
# => "Nome da pessoa"

Para criar um setter, podemos utilizar o método attr_writer:

class Pessoa
attr_writer :nome
def initialize(nome)
@nome = nome
end
end

pessoa = Pessoa.new("Nome da pessoa")
pessoa.nome = "Novo nome"
pessoa.nome
# => "Novo nome"

Para criar um getter e um setter, podemos utilizar o método attr_accessor:

class Pessoa
attr_accessor :nome
def initialize(nome)
@nome = nome
end
end

pessoa = Pessoa.new("Nome da pessoa")
pessoa.nome
# => "Nome da pessoa"
pessoa.nome = "Novo nome"
pessoa.nome
# => "Novo nome"

Para criar um método, podemos utilizar a palavra reservada def:

def soma(a, b)
a + b
end

soma(1, 2)
# => 3

Criando um projeto Ruby

Podemos instalar o Ruby on Rails utilizando o RubyGems, que é um gerenciador de pacotes para a linguagem Ruby. Para instalar o Ruby on Rails, podemos utilizar o comando gem install:

gem install rails

E para instalar as dependências do projeto, podemos utilizar o comando bundle install:

bundle install

Para criar um projeto Ruby, podemos utilizar o Ruby on Rails, que é um framework web escrito em Ruby. Para criar um projeto Ruby on Rails, podemos utilizar o comando rails new:

rails new projeto

Para iniciar o servidor do projeto, podemos utilizar o comando rails server:

rails server

Para criar um controller, podemos utilizar o comando rails generate controller:

rails generate controller articles

Para criar um model, podemos utilizar o comando rails generate model:

rails generate model article title:string body:text

Para criar um scaffold, podemos utilizar o comando rails generate scaffold:

rails generate scaffold article title:string body:text

Para criar um migration, podemos utilizar o comando rails generate migration:

rails generate migration add_details_to_articles

Para executar as migrations, podemos utilizar o comando rails db:migrate:

rails db:migrate

Para criar um banco de dados, podemos utilizar o comando rails db:create:

rails db:create

Para gerarmos 1000 articles, podemos utilizar no console do Rails o comando Article.create:

rails console
1000.times do |i|
Article.create(title: "Title: #{i}", body: "Body")
end

Vimos em como fazer na mão, seguindo o tutorial do Ruby on Rails.

A aula foi bem produtiva, conseguimos avançar bem no tutorial.