Linguagem de programaçãowww.ruby-lang.org/pt
Novembro de 2013
It is easy to program in Ruby,but Ruby is not a simple language
Quais linguagens de programação vc conhece?Java, C (#,++,Objective), PHP, Delphi, ...
Elas são parecidas?declaração de variáveis, sintaxe dos comandos, marcação de blocos, marcação de fim de linha
Ruby é um pouco diferente!;-)
#definindoclass MinhaClasse def fala puts "Ola mundo!" endend
#aplicandoobjeto = MinhaClasse.newobjeto.fala
Tradicional “Olá mundo” em Ruby!
#definindoclass MinhaClasse def fala puts "Ola mundo!" endend
#aplicandoobjeto = MinhaClasse.newobjeto.fala
Tradicional “Olá mundo” em Ruby!
ou apenas isso!
#definindoclass MinhaClasse def fala(frase, numero=1) puts numero.times {puts frase} endend
#aplicandoobjeto = MinhaClasse.newobjeto.fala("ola mundo")objeto.fala "ruby ", 3
Tradicional “Olá mundo” em Ruby!
Sou
➔ Desenvolvedor
➔ Professor (:active => false)
➔ Acredito na Linguagem Ruby
➔ @MarceloBohn
Ruby agora!
➔ Online: tryruby.org
➔ Nativo no OS X (Apple)
➔ Linux(free), Windows(Microsoft), …
➔ Ruboto no Android (Google)
➔ VM + Vagrant
Sobre a linguagem
➔ Yukihiro Matsumoto - “Matz”➔ livre➔ primeira versão 1995➔ linguagem natural➔ standard library mais completa➔ menos código➔ tudo é objeto➔ marcação de final de linha
Sobre a linguagem
➔ Yukihiro Matsumoto - “Matz”➔ livre➔ primeira versão 1995➔ linguagem natural➔ standard library mais completa➔ menos código➔ tudo é objeto \o/➔ marcação de final de linha :-)
Linguagem interpretadaruby arquivo.rb
Console de testesirb
OBS: RVM ( Ruby Version Manager )
Variáveis Objetos (duck typing)
v = 1v.classv.object_idv.methodsv = “um”v.classv = (1..5)
Ruby style
v = “bem vindo”
v.upcase
v[0..2]
1.to_s
“5”.to_i
[1,2,3,4].reverse
3.times { print “Ruby! ” }
Familiar X Novo
Condicionais
➔ if
➔ unless
➔ case
Laços
➔ for
➔ while
➔ each
➔ map
Familiar X Novo
Arraya = []a << 1a << “texto”a << (1..5)a += [3,4]
s = “bem vindo”s[1..5]
Hashh = {}h[:a] = 1h[:b] = “a”
Reescrever classe da linguagem(monkey patching)
class Fixnumdef dobra
self.*2 endend
1.dobra
Reescrever classe da linguagem(monkey patching)
class TrueClass def to_s ‘Sim’ if self endend
v = truev.to_s
Vários comandos em uma linha
(1..5).to_a.reverse.join('|').split('|').map {|e| e.to_i.*2}
Pega o intervalo de número de 1 até 5, converte em array, inverte a ordem, junta em uma string, separa novamente em array, multiplica todos elemente por dois
+ Ruby
➔ Meta-programação
➔ Testes
➔ Rhodes
➔ Ruby on Rails
Framework de desenvolvimento webwww.rubyonrails.com.br
Ruby on RailsHappy conding!
Apresentação
➔ Framework MVC
➔ Agilidade no desenvolvimento de aplicações
Web
➔ Gratuito
➔ Código aberto
➔ DRY (Don't Repeat Yourself)
Mundo sobre os trilhos
➔ Rails Console
➔ Migrations
➔ RubyGems
➔ ActiveRecord
➔ ActiveController
➔ ActiveView
Preparando a subida no vagão
➔ Development, Testing and Production
➔ Rails Generate ( Scaffold, ... )
➔ Rails sever
➔ Rails console
Iniciar a viagem
Quanto tempo vc demora para fazer um CRUD?
CRUD(Create, Read, Update e Delete)
rails new first_app
rails g scaffold product name:string active:boolean price:decimal group:integer
rake db:migrate
rails s
Perguntas?
Obrigado!
Obrigado!
@MarceloBohn