Ruby
Grupo
Alan Cardoso
Marcelo Alexandre
Marcelo Oliveira
Nathan Novelli
Wagner Siqueira
Criador
Yukihiro “Matz” Matsumoto
Características
• Interpretada
Características
Linguagem interpretada
Interactive Ruby (irb)
Características
• Interpretada
• Dinâmica
Características
class Professor
def ensina(aluno)
def aluno.escreve
“Sei escrever!"
end
end
end
juca = Aluno.new
juca.respond_to? :escreve
# => false
professor = Professor.new
professor.ensina juca
juca.escreve
# => “Sei escreve!”
Linguagem dinâmica
Metaprogramação
class Aluno
# Não sabe nada
end
Características
• Interpretada
• Dinâmica
• Tipagem dinâmica
Características
Tipagem dinâmica
a.type
# => <NameError: undefined local variable
or method ‘a’ for main:Object>
a.type
# => Fixnum
a = “Olá, mundo!”
# => Olá, mundo
a.type
# => String
a = 1
# => 1
Duck typing
Características
• Interpretada
• Dinâmica
• Tipagem dinâmica
• Tipagem forte
Características
Tipagem forte
x = “Olá, ”
# => Olá,
y = “Mundo!”
# => Mundo!
x + y
# => Olá, Mundo!
y = 1
# => 1
x + y
# => TypeError: no implicit conversion of
Fixnum into String
Características
• Interpretada
• Dinâmica
• Tipagem dinâmica
• Tipagem forte
• Orientada a objetos
Características
Orientação a objetos
class Pessoa
attr_acessor :nome, :idade
def initialize(nome, idade)
@nome = nome
@idade = idade
end
end
class Aluno < Pessoa
attr_acessor :cgu
def estudar
# estudar
end
end
p = Pessoa.new(“João”, 18)
a = Aluno.new
a.estudar
Características
Orientação a objetos
10.class
# => Fixnum
10.class.superclass
# => Integer
10.class.superclass.superclass
# => Numeric
10.class.superclass.superclass.superclass
# => Object
Em Ruby tudo é objeto!
Comunidade
Gems
Mais de 57 mil gems!
RubyGems
Documentação
RDoc
ruby-doc.org
Utilização
• Administração de sistemas
Utilização
Administração de sistemas
Utilização
• Administração de sistemas
• Desenvolvimento desktop
Utilização
• APIs gráficas (GTK+, Shoes, etc.)
• IronRuby + .NET
• IronRuby + Mono
• Jruby + Java VM
Desenvolvimento desktop
Utilização
• Administração de sistemas
• Desenvolvimento desktop
• Desenvolvimento mobile
Utilização
• mruby + MobiRuby (iOS)
• RubyMotion (iOS)
• Rhodes (iOS, Android, Windows
Phone, Symbian e Blackberry)
Desenvolvimento mobile
Utilização
• Administração de sistemas
• Desenvolvimento desktop
• Desenvolvimento mobile
• Desenvolvimento web
Utilização
Desenvolvimento web
Ruby on Rails
Criador
David Heinemeier Hansson
Ruby on Rails
Basecamp
Ruby on Rails
MVC (model-view-controller)
Controller Model
View
DB
Ruby on Rails
Conceitos básicos
rails new <nomedoprojeto>
rails generate model <nome>
rails generate view <nome>
rails generate controller <nome>
rails generate migration <nome>
Ruby on Rails
Cases
GitHub
Ruby on Rails
Cases
Hulu
Ruby on Rails
Cases
Scribd
Ruby on Rails
Cases
SlideShare
Ruby on Rails
Cases
Groupon
Ruby on Rails
Cases
Ruby on Rails
Cases
StartupDEV
Ruby on Rails
Show me the code!
Em apenas 10 passos !
Criando uma Aplicação
Exemplo
Ruby on Rails
Requisitos:
• Ruby
• Gem Rails
• Banco de dados (Qualquer tipo)
Ruby on Rails
Passo 1 Criando seu Aplicativo
rails new blog
Gera estrutura de arquivos e diretórios do Rails
Tempo aproximado: 15 segundos
Gemfile README.rdoc app config.ru doc
log script tmp
Gemfile.lock Rakefile config db lib
public test vendor
Ruby on Rails
Passo 2 Configurando as Gems
No arquivo Gemfile
Insira o seguinte código
Tempo aproximado: 30 segundos
gem "mysql2" #Gem do Banco de Dados
gem "twitter-bootstrap-rails" #Gem do Twitter Bootstrap
gem "less-rails" #Gem necessária para o Bootstrap
gem "therubyracer" #Gem necessária para o Bootstrap
Ruby on Rails
Passo 3 Configurando acesso ao Banco de Dados
Em config/database.yml
Tempo aproximado: 30 segundos
development:
adapter: mysql2 #Banco de dados, requer Gem instalado
encoding: utf8
reconnect: false
database: blog_development
pool: 5
username: root
password:
socket: /tmp/mysql.sock
Ruby on Rails
Passo 4 Instalação das Gems
Instalação e atualização de todas as Gems do Gemfile
Tempo aproximado: 20 segundos
bundle install
Ruby on Rails
Passo 5 Instalação do Bootstrap
Tempo aproximado: 20 segundos
Instalação do Twitter Bootstrap na sua aplicação
rails g bootstrap:install
Ruby on Rails
Passo 6 Criando um modelo com Scaffold Generator
Exemplo de Modelo para Blog - seria um Post
Tempo aproximado: 30 segundos
rails g scaffold Post title:string content:text
--skip-stylesheets
Exemplo de Modelo para Loja - seria um Produto
rails g scaffold Product name:string
price:decimal description:text
--skip-stylesheets
Ruby on Rails
Passo 7 Criando o Tabelas no Banco de Dados
Para criar o Banco de Dados definido em database.yml
Tempo aproximado: 30 segundos
rake db:create
Para criar as tabelas do Modelo Post que gerou
rake db:migrate
Ruby on Rails
Passo 8 Executando servidor em Localhost
O servidor padrão do Rails é o WEBrick
Tempo aproximado: 25 segundos
Ele é uma Gem padrão que já está instalada, o bundle install o instalou.
Para executar o servidor local basta o comando:
rails s
ou se preferir
rails server
Ruby on Rails
Passo 9 Aplicando Layout Bootstrap ao Modelo
Com um comando o Bootstrap e o Rails geram o estilo
Bootstrap para seu Modelo.
Tempo aproximado: 20 segundos
rails g bootstrap:themed posts -f
Caso tivessemos feito o modelo Products:
rails g bootstrap:themed products -f
Ruby on Rails
Passo 10 Aplicando um Layout Bootstrap ao Aplicativo
Assim como no Modelo o Bootstrap e o Rails geram o
Layout para você em um único comando:
Tempo aproximado: 20 segundos
rails g bootstrap:layout application fluid
Ou se preferir outro estilo:
rails g bootstrap:layout application fixed
Ruby on Rails
1 - Criamos a aplicação (rails new blog)
2 - Adicionamos as Gems ao Gemfile
3 - Configuramos o acesso ao banco de dados
4 - Instalamos e atualizamos as Gems da aplicação
5 - Instalamos o Bootstrap
6 - Geramos um Scaffold de um Post
7 - Criamos o banco de dados, e logo após as tabelas
8 - Ligamos o servidor do Rails para testar
9 - Aplicamos um layout ao modelo Post
10 - Aplicamos um layout do Bootstrap ao aplicativo
O que foi feito ?
Ruby on Rails
Tempo de desenvolvimento estimado:
240 segundos – Aprox. 5 minutos
Linhas escritas:
25 linhas
é um Framework escrito na linguagem Ruby de
Desenvolvimento Ágil para WEB
Perguntas
?
?
?
?
?
?
Ruby
http://www.ruby.org

Introdução á linguagem Ruby com aplicativo em Rails