View
70
Download
1
Category
Preview:
Citation preview
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 endend
juca = Aluno.newjuca.respond_to? :escreve# => false
professor = Professor.newprofessor.ensina jucajuca.escreve# => “Sei escreve!”
Linguagem dinâmica
Metaprogramação
class Aluno # Não sabe nadaend
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 endend
class Aluno < Pessoa attr_acessor :cgu
def estudar # estudar endend
p = Pessoa.new(“João”, 18)a = Aluno.newa.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
com
est
ilo
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.rudoc log script tmpGemfile.lock Rakefileconfig 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 Dadosgem "twitter-bootstrap-rails"#Gem do Twitter Bootstrapgem "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:stringprice: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 sou se preferir
rails server
Ruby on Rails
Passo 9 Aplicando Layout Bootstrap ao Modelo
Com um comando o Bootstrap e o Rails geram o estiloBootstrap 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 oLayout 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 dados4 - Instalamos e atualizamos as Gems da aplicação5 - Instalamos o Bootstrap6 - Geramos um Scaffold de um Post7 - Criamos o banco de dados, e logo após as tabelas8 - Ligamos o servidor do Rails para testar9 - Aplicamos um layout ao modelo Post10 - Aplicamos um layout do Bootstrap ao aplicativo
O que foi feito ?
Ruby on Rails
Tempo de desenvolvimento estimado:
240 segundos – Aprox. 5 minutosLinhas escritas:
25 linhas
é um Framework escrito na linguagem Ruby de
Desenvolvimento Ágil para WEB
Perguntas
???
?
?
??
Rubyhttp://www.ruby.org
Recommended