introdução á linguagem ruby com aplicativo em rails
TRANSCRIPT
![Page 1: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/1.jpg)
Ruby
![Page 2: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/2.jpg)
Grupo
Alan Cardoso
Marcelo Alexandre
Marcelo Oliveira
Nathan Novelli
Wagner Siqueira
![Page 3: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/3.jpg)
Criador
Yukihiro “Matz” Matsumoto
![Page 4: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/4.jpg)
Características
• Interpretada
![Page 5: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/5.jpg)
Características
Linguagem interpretada
Interactive Ruby (irb)
![Page 6: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/6.jpg)
Características
• Interpretada• Dinâmica
![Page 7: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/7.jpg)
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
![Page 8: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/8.jpg)
Características
• Interpretada• Dinâmica• Tipagem dinâmica
![Page 9: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/9.jpg)
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
![Page 10: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/10.jpg)
Características
• Interpretada• Dinâmica• Tipagem dinâmica• Tipagem forte
![Page 11: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/11.jpg)
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
![Page 12: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/12.jpg)
Características
• Interpretada• Dinâmica• Tipagem dinâmica• Tipagem forte• Orientada a objetos
![Page 13: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/13.jpg)
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
![Page 14: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/14.jpg)
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!
![Page 15: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/15.jpg)
Comunidade
![Page 16: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/16.jpg)
Gems
Mais de 57 mil gems!
RubyGems
![Page 17: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/17.jpg)
Documentação
RDoc
ruby-doc.org
![Page 18: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/18.jpg)
Utilização
• Administração de sistemas
![Page 19: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/19.jpg)
Utilização
Administração de sistemas
![Page 20: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/20.jpg)
Utilização
• Administração de sistemas• Desenvolvimento desktop
![Page 21: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/21.jpg)
Utilização
• APIs gráficas (GTK+, Shoes, etc.)• IronRuby + .NET• IronRuby + Mono• Jruby + Java VM
Desenvolvimento desktop
![Page 22: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/22.jpg)
Utilização
• Administração de sistemas• Desenvolvimento desktop• Desenvolvimento mobile
![Page 23: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/23.jpg)
Utilização
• mruby + MobiRuby (iOS)• RubyMotion (iOS)• Rhodes (iOS, Android,
Windows Phone, Symbian e Blackberry)
Desenvolvimento mobile
![Page 24: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/24.jpg)
Utilização
• Administração de sistemas• Desenvolvimento desktop• Desenvolvimento mobile• Desenvolvimento web
![Page 25: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/25.jpg)
Utilização
Desenvolvimento web
![Page 26: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/26.jpg)
Ruby on Rails
Criador
David Heinemeier Hansson
![Page 27: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/27.jpg)
Ruby on Rails
Basecamp
![Page 28: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/28.jpg)
Ruby on Rails
MVC (model-view-controller)
Controller Model
View
DB
![Page 29: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/29.jpg)
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>
![Page 30: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/30.jpg)
Ruby on Rails
Cases
GitHub
![Page 31: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/31.jpg)
Ruby on Rails
Cases
Hulu
![Page 32: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/32.jpg)
Ruby on Rails
Cases
Scribd
![Page 33: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/33.jpg)
Ruby on Rails
Cases
SlideShare
![Page 34: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/34.jpg)
Ruby on Rails
Cases
Groupon
![Page 35: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/35.jpg)
Ruby on Rails
Cases
![Page 36: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/36.jpg)
Ruby on Rails
Cases
StartupDEV
![Page 37: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/37.jpg)
Ruby on Rails
Show me the code!
![Page 38: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/38.jpg)
Em apenas 10 passos !
Criando uma Aplicação
Exemplo
com
est
ilo
![Page 39: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/39.jpg)
Ruby on Rails
Requisitos:
•Ruby•Gem Rails•Banco de dados (Qualquer tipo)
![Page 40: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/40.jpg)
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
![Page 41: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/41.jpg)
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
![Page 42: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/42.jpg)
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
![Page 43: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/43.jpg)
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
![Page 44: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/44.jpg)
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
![Page 45: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/45.jpg)
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
![Page 46: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/46.jpg)
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
![Page 47: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/47.jpg)
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
![Page 48: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/48.jpg)
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
![Page 49: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/49.jpg)
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
![Page 50: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/50.jpg)
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 ?
![Page 51: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/51.jpg)
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
![Page 52: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/52.jpg)
Perguntas
???
?
?
??
![Page 53: Introdução á linguagem Ruby com aplicativo em Rails](https://reader037.vdocuments.mx/reader037/viewer/2022102807/55c67ca9bb61eb5a578b468a/html5/thumbnails/53.jpg)
Rubyhttp://www.ruby.org