• Nenhum resultado encontrado

O Framework Rails. Diego Rubin

N/A
N/A
Protected

Academic year: 2021

Share "O Framework Rails. Diego Rubin"

Copied!
29
0
0

Texto

(1)

O Framework

(2)

Introdução

● David Heinemeier Hansson (DHH) ● 2004

● MVC ● Restful

● Meta-Framework

● Convention over configuration ● Rails 3.1

(3)

Ferramentas

● Rake

● Bundler

● Capistrano ● Rspec

(4)

Instalação

(5)

Criação do Projeto

[diego@bahamut ]~ $ rails new snippets #criacao projeto

[diego@bahamut ]~ $ gem install bundler

[diego@bahamut ]~ $ bundle install # instala dependencias

(6)

Estrutura da Aplicação

● app/ ● config/ ● config.ru ● db/ ● doc/ ● Gemfile ● lib/ ● log/ ● public/ ● Rakefile ● README ● script/ ● test/ ● tmp/ ● vendor/

(7)

Ambientes

● Padrões ● Development ● Test ● Production ● config/environments/ ● RAILS_ENV

(8)

Yet Another Markup Language

● Usado para arquivos de configuração

● Identação utilizado para delimitar estruturas ● Suporta lista e arrays associativos

(9)

config – database.yml

● Arquivo de configuração do banco de dados ● rake db:create ● Exemplo: development: adapter: mysql database: cm_development timeout: 5000 host: localhost username: root password: root

(10)

Gemfile

● Arquivo onde especificamos as gems que

serão utilizadas no projeto.

● Comando `bundle install` instala as gems e

suas dependências. ● Exemplo: source 'http://rubygems.org' gem 'rails', '3.0.6' gem 'sqlite3' gem 'capistrano-ext'

group :development, :test do gem 'ruby-debug'

gem 'rspec-rails' end

(11)

Model (ActiveRecord::Base)

● app/models

● rails generate model snippet title:string

code:text language:string

● Alguns métodos

● find

● save

(12)

Migrations

● Contém informações da criação da tabela

● Nome da tabela é o plural do nome do model ● Ficam em db/migrations

● Executadas com o comando `rake db:migrate` ● rake db:rollback

(13)

Exemplo de Migrate

class CreateSnippets < ActiveRecord::Migration def self.up create_table :snippets do |t| t.string :title t.text :code t.string :language t.timestamps end end def self.down

(14)

Rspec

● Framework para Behaviour Development

Driven

● Muito utilizado no mundo Rails

● Tenta trazer a linguagem natural para criação

dos testes

(15)

Model - validações

● validates_presence_of ● validates_format_of

● validates_uniqueness_of ● ...

(16)
(17)

Rest

● Protocolo cliente/servidor sem estado ● Conjunto de operações bem definidas ● Identificadores únicos para os recursos

● Uso de hipermídia para representação de

(18)

Routes (ActionController)

● Config/routes.rb

● Comando `rake routes` lista rotas ● resources :<nome_da_tabela>

(19)

Controllers - ActionController

● app/controllers

● ApplicationController

● Cada action é um método da classe ● Fat models, skinny controllers

● render

(20)
(21)

Views - ActionView

● app/views

● app/views/layout

● Por padrão cada template recebe o nome da

action

● Partials

● Nome do aquivo começa com “_”

(22)

ERB - ActionView

● <% codigo %> ● <%= codigo %>

(23)
(24)

Helpers

● app/helpers

● Manter código limpo nas views ● Exemplos

● link_to

● image_tag

(25)

DRY

● Don't Repeat Yourself

● Uso de partials para reuso de template ● before_filter e after_filter nos controllers

(26)

Apache - Passenger

● Ruby Enterprise Edition (REE)

● passenger-install-apache2-module ● http.conf

LoadModule passenger_module

/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/passenger-3.0.8/ext/apache2/mod_passenger.so

PassengerRoot /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/passenger-3.0.8

(27)

Apache - Aplicação

● RailsEnv

● DocumentRoot

● Seu valor deve apontar para o diretório public da

(28)

Deploy - Capistrano

● capify

● cap deploy

● config/deploy.rb ● capistrano-ext

(29)

Deploy - Heroku

● heroku create

● heroku keys:add path/to/key.pub ● Git push heroku master

Referências

Documentos relacionados

 Compreender a importância do domínio das técnicas da escrita para a produção de uma informação de qualidade e saber aplica-las às especificidades dos diferentes géneros

Na saída de produto de depósito fechado localizado em Unidade da Federação diversa daquela onde está localizado o estabelecimento depositante, com destino a outro estabeleci-

Todo ser humano é único e, por isso, toda sala de aula é um berço de diversidade. O que os sistemas educacionais fizeram ao longo dos tempos foi homogeneizar o sistema educacional

As principais indicações para a realização foram a suspeita de tuberculose (458 pacientes) e uso de imunobiológicos (380 pacientes).. A maior prevalência de resultado positivo

Ao iniciar esta apresentação, gostaria de dizer que meu objetivo com este trabalho é discutir as possibilidades do ensino da biologia à distância, refletindo a partir de

organizational citizenship behavior, customer voluntary participating behavior, customer extra-role behavior, customer voluntary performance, customer-to-customer interaction,

Este presente artigo é o resultado de um estudo de caso que buscou apresentar o surgimento da atividade turística dentro da favela de Paraisópolis, uma

O PROGRAMA INSTITUCIONAL DE INICIAÇÃO CIENTÍFICA PIBIC PARA O ENSINO MÉDIO tem como objetivo despertar vocação científica e incentivar talentos potenciais entre estudantes