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.