2. Quem sou eu?
Daniel Coelho de Andrade
Graduando em Engenharia de Computação - UEFS
Membro da Empresa Júnior de Engenharia de
Computação da UEFS
3. “Ruby”?
● Linguagem dinâmica
● Foco na simplicidade e produtividade
● Leitura natural
● Multiparadigma e propósito geral
● Scripts
● Interpretada
4. Um pouco de história...
● Criador: Yukihiro Matsumoto - “Matz”
● Primeira versão estável: 1996
● Versão atual (estável): 2.2.0
5. “Ruby is simple in appearance, but is very
complex inside, just like the human body”
– Matz
6. ...mais uma linguagem?
● Matz queria uma linguagem que...
– Fosse mais poderosa que o Pearl
– Mais orientada a objetos que Python
– Simples como o Lisp
21. Porque programar em Ruby?
● Fácil leitura
● Foco na simplicidade e produtividade
● Comunidade
● Desenvolvimento Ágil (Framework Rails)
● Sempre tem mais de um jeito de fazer a
mesma coisa
● É divertido :)
28. “O Ruby é mal. Muito mal. Mas por que é tão
mal? Porque é tão bonito. A sintaxe é tão
elegante, tudo é objeto, tudo faz sentido. O
jeito Ruby de fazer as coisas é tão atraente...”
Simon Eskildsen
Responsável pela infraestrutura do Shopify
32. No Windows
● Faça o download do executável em
http://rubyinstaller.org/
● Instale
33. No Linux
● Distribuições baseadas no Red Hat
– sudo yum install ruby irb rubygems
● Distribuições baseadas no Debian
– sudo apt-get install ruby irb rubygems
135. Pra fixar o conhecimento...
● Faça uma função que aceite um array como
parâmetro e, quando dado um bloco, imprima
cada um dos elementos do array.
Dicas: Para passar um array como parâmetro usa um *
antes do nome da variável. Para verificar se foi
passado um bloco como parâmetro, use a função
block_given?
191. ● Classe Telefone(numero:String, crédito:inteiro)
● Métodos
– Ligar(número:String) [Desconta 5 créditos por
ligação)
– Adicionar créditos
– Total de Telefones [Retorna o total de telefones]
● Obs: Se não for passado um valor, os créditos iniciam em
quantidade igual a 50.
● Obs²: A ligação só pode ser feita se os créditos forem
suficientes
204. Outro exercício
● Crie um Module chamado Motor e uma classe
chamada Veículo. Em module, defina os
métodos “Ligar” e “Desligar”, que devem
imprimir “Motor ligado” e “Motor ligado”,
respectivamente. Faça um mixin com a classe
Veiculo e o Module Motor.
211. Exercício
Crie uma classe Superman e uma classe
Pessoa. Faça com que Superman ensina uma
pessoa a voar numa Aula. Superman, Pessoa e
Aula devem estar em arquivos separados.