Download - Apresentação Ruby no Dojo da UFBA
A Linguagem de ProgramaçãoA Linguagem de ProgramaçãoRubyRuby
Luciano Borges
@lusabo
Alex Chastinet
@alexchastinet
Matz1993
DHH2004
Por que o Ruby?
Dizem que é uma linguagem muito nova!
Python 1991 Ruby 1993/1995 PHP 1994 Java 1995
Dizem que não tem bibliotecas!
108 bibliotecas padrões (falta confirmar!)
Ruby Application Archive http://raa.ruby-lang.org/ + 1800 projetos
RubyForge http://rubyforge.org/ + 9000 projetos
RubyGems http://rubygems.org/ + 20000 gems
Dizem que não tem suporte!
Core 100% documentado http://www.ruby-doc.org/core/ http://apidock.com/
Vários tutoriais e livros disponíveis http://aprendaaprogramar.rubyonrails.pro.br/ http://why.nomedojogo.com/
Comunidade ativa http://softwarelivre.org/guru-ba http://guru-sp.com/ http://guruce.org/ http://softwarelivre.org/profile/grupo-de-usuarios-de-ruby-
on-rails-rs …
Dizem que ninguém usa Ruby!
Simulações Nasa e Motorola
Telefonia Lucent
Administração de Sistemas Level3
Redes Open Domain Server
Aplicações Web Aqui vem a lista do Rails :)
Sintaxe Limpa
Não precisa de ; Uso de () é opcional
Sintaxe Objetiva
objeto.atributo = – método
empty? e capitalize!– métodos
Declarações simples variavel_local @variavel_de_instancia @@variavel_de_classe $variavel_global
do … end ou {…} Tratamento de exceção
Similar ao Java
Interpolação de String
Sintaxe Flexível e Simples
Tudo é objeto Números Ranges Hashes Classes …
100% OO
HerançaHerança
Metraprogramação
Ruby permite adicionar outros métodos e operações aos objetos em tempo de execução.
Meta-programação é a capacidade de gerar/alterar código em tempo de execução.
Como se fosse uma string que sempre vai alocar o mesmo lugar na memória, não vai ficar mudando de lugar na memória.
Forma de guardar nomes performaticamente sem consumir memória desnecessariamente.
Use o sinal de : antes dos nomes dos símbolos.
Símbolos
Ranges
Ranges
Forma mais fácil de extrair informações de um texto.
Instância da classe Regexp http://rubular.com
Expressões Regulares
Método Descrição
=~ Procura pela expressão regular no texto e retorna o índice em que ela foi encontrada.
!~ Informa se existe uma ocorrência da expressão regular no texto.
match Retorna um objeto do tipo MatchData, que contém ponteiros para os locais onde cada grupo da expressão regular foi encontrado.
Expressões Regulares
Coleções de valores. Pode conter objetos de diversos tipos.
Arrays
Estrutura de dados que mantém um grupo de objetos conhecidos como keys e associa um valor para cada key.
Hashes
Utilizados para iterar em coleções, personalizar o comportamento de algum métodos etc.
Existem duas sintaxes diferente para definir um bloco. Utilizando o símbolo { e } ou utilizando as
palavras-chave do e end. Podem receber parâmetros.
O símbolo | (pipe) é utilizado para demarcar o início e o fim da lista de parâmetros.
Blocos de Código
Operadores condicionais• if / elsif / else / end
a=0if a == 0print “zero”elsif a == 1print “um”elseprint “não sei”end
unless a == 0print “não é zero”elseprint “a é zero”end
• unless
Operadores condicionais case / when / else / end
Operadores de loopOperador Descrição
break Sai do loop atual
next Executa o próximo passo do loop
return Sai do loop e do método atual
redo Reinicia o loop atual
O operadores acima podem ser utilizados com qualquer dos loops.
Operadores de loop
for i in 1..5puts iend
for a in %w{a b c d}puts aend
Operadores de loop
i = %w{a b c d e f}while b = i.popputs bend
Operadores de loop
i = 5until i = 0puts ii -= 1end
Operadores de loop
i = 0beginputs ii += 1end while i < 0
Operadores de loop
loop doputs “a”break if trueend
Interpretadores Ruby
• YARV, evolução do MRI
• JRuby – implementação em Java
• IronRuby – Microsoft
• Rubinius – implementação em Ruby
• REE – Ruby Enterprise Edition / Phusion
A Linguagem de Programação Ruby David Flanagan e Yukihiro Matsumoto
Desenvolvimento Fácil e Rápido de Aplicações Web: Ruby on Rails Rodrigo Urubatan
Google Slideshare
Referências