Controller
class UsersController < Spree::BaseController
resource_controller
before_filter :initialize_extension_partials
actions :all, :except => [:index, :destroy]
show.before do
@orders = Order.checkout_completed(true)
.find_all_by_user_id(current_user.id)
end
create.after { self.current_user = @user }
create.response do |wants|
wants.html { redirect_back_or_default(products_path) }
end
end
Wednesday, April 8, 2009
Controller
class UsersController < Spree::BaseController
resource_controller
before_filter :initialize_extension_partials
actions :all, :except => [:index, :destroy]
show.before do
@orders = Order.checkout_completed(true)
/users/1
.find_all_by_user_id(current_user.id)
end
create.after { self.current_user = @user }
create.response do |wants|
wants.html { redirect_back_or_default(products_path) }
end
end
Wednesday, April 8, 2009
Rotas RESTFul
ActionController::Routing::Routes.draw do |map|
map.connect ':controller/service.wsdl', :action => 'wsdl'
map.resources :products,
:member => {:change_image => :post}
map.resources :addresses
map.resources :orders,
:has_many => [:line_items]
map.namespace :admin do |admin|
admin.resources :users
admin.resources :products
end
end
Wednesday, April 8, 2009
Rotas RESTFul
ActionController::Routing::Routes.draw do |map|
GET /products/new
map.connect ':controller/service.wsdl', :action => 'wsdl'
GET /products
map.resources :products,
POST /products
:member => {:change_image => :post}
GET /products/1
map.resources :addresses
map.resources :orders,
GET /products/1/edit
:has_many => [:line_items]
PUT /products/1
map.namespace :admin do |admin|
DESTROY /products/1
admin.resources :users
admin.resources :products
end
end
Wednesday, April 8, 2009
Migrations
class RenameAppConfiguration < ActiveRecord::Migration
def self.up
rename_table :app_configurations, :configurations
change_table :configurations do |t|
t.string :type
end
end
def self.down
change_table :configurations do |t|
t.remove :type
end
rename_table :configurations, :app_configurations
end
end
Wednesday, April 8, 2009
Migrations
class RenameAppConfiguration < ActiveRecord::Migration
def self.up
rename_table :app_configurations, :configurations
change_table :configurations do |t|
t.string :type
end
rake db:migrate
end
def self.down
change_table :configurations do |t|
t.remove :type
end
rename_table :configurations, :app_configurations
end
end
Wednesday, April 8, 2009
RSpec
describe Product do
include ProductSpecHelper
before(:each) do
@product = Product.new
end
it \"should not be valid when empty\" do
@product.should_not be_valid
end
it \"should be valid when having correct information\" do
@product.attributes = valid_product_attributes
@product.should be_valid
end
end
Wednesday, April 8, 2009
RSpec
describe Product do
include ProductSpecHelper
before(:each) do
@product = Product.new
end
it \"should not be valid when empty\" do
rake spec
@product.should_not be_valid
end
it \"should be valid when having correct information\" do
@product.attributes = valid_product_attributes
@product.should be_valid
end
end
Wednesday, April 8, 2009
Cucumber
Funcionalidade: Criar Post no Blog
Para conseguir divulgar minhas idéias
Como um blogger
Eu quero conseguir criar um post no meu blog
Cenário: Criando um novo Post
Dado que estou na página de Administração
E que eu preencho o formulário de novo post
Então quero conseguir visualizar o título do novo post na homepage
Wednesday, April 8, 2009
“Beautiful Code”
Wednesday, April 8, 2009
Wednesday, April 8, 2009
Wednesday, April 8, 2009
Wednesday, April 8, 2009
11 mil classes!
46 só de
Collections!
Wednesday, April 8, 2009
• Classes:
• •
Modules: Array
• •
Enumerable Hash
• •
Comparable Set
• Sorted Set
Wednesday, April 8, 2009
1.400 Classes:
•
classes Array
• •
Modules:
• • Hash
Enumerable
só 6 de Set
• •
Comparable
Collections! Set
• Sorted
Wednesday, April 8, 2009
• Convention over Configuration
• Don’t Repeat Yourself
• You Ain’t Gonna Need It
• Boas Práticas
• Escalabilidade
• Segurança
• Automação
Wednesday, April 8, 2009
2
Wednesday, April 8, 2009
3
Wednesday, April 8, 2009
Mitos
Wednesday, April 8, 2009
Rails não Escala
Wednesday, April 8, 2009
Wednesday, April 8, 2009
Para colocar as coisas em
perspectiva, o Friendster foi
escrito em Java no começo, mas
mudou para PHP. O MySpace foi
escrito em ColdFusion e
transicionou para ASP.NET.
Quando as pessoas caem em
problemas de escalabilidade,
costumam pensar sempre que o
problema é a linguagem, mas eu
acho que esse raramente é o
Blaine Cook
caso.
http://www.akitaonrails.com/2008/6/17/chatting-with-blaine-cook-twitter
Wednesday, April 8, 2009
“O New York Times usou Ruby on Rails para juntar,
analisar e mostrar resultados das eleições quase em
real time em um dos dias mais congestionados de
tráfego que já se viu. ”
http://www.computerworld.com.au/article/268003/ruby_rails_rolls_into_enterprise?fp=16&fpid=1
Wednesday, April 8, 2009
“Eles servem mais de 23 milhões de visitantes por mês. A
conversão resultou em 20 mil linhas de código Ruby em vez de
125 mil de Java, e mais importante, facilitou a dificuldade que
tinham em manter isso. Uma vez finalizado e otimizado o site
deles agora é mais rápido que antes. Eles também finalizaram a
re-escrita em 3 meses com 4 desenvolvedores.”
http://www.railsonwave.com/railsonwave/2008/6/4/yellowpages-com-migrates-to-rails
Wednesday, April 8, 2009
Wednesday, April 8, 2009
Wednesday, April 8, 2009
Mitos
Wednesday, April 8, 2009
Rails é mal
documentado
Wednesday, April 8, 2009
Geoffrey
Wednesday, April 8, 2009
Jason e Gregg
Wednesday, April 8, 2009
Pratik Naik
Wednesday, April 8, 2009
Satish Talim
Wednesday, April 8, 2009
Peter Cooper
Wednesday, April 8, 2009
Peter Cooper
Wednesday, April 8, 2009
_why
Wednesday, April 8, 2009
Ryan Bates
Wednesday, April 8, 2009
Wednesday, April 8, 2009
Wednesday, April 8, 2009
3
Wednesday, April 8, 2009
4
Wednesday, April 8, 2009
Open Source
Wednesday, April 8, 2009
Chris Wanstrath
Wednesday, April 8, 2009
Wednesday, April 8, 2009
Wednesday, April 8, 2009
Wednesday, April 8, 2009
Wednesday, April 8, 2009
Wednesday, April 8, 2009
Wednesday, April 8, 2009
Wednesday, April 8, 2009
4
Wednesday, April 8, 2009
“Especialista de
uma coisa só é um
amador em todo o
resto.”
Wednesday, April 8, 2009
Obrigado!
fabio.akita@locaweb.com.br
Wednesday, April 8, 2009
0 comments
Post a comment