atualizando rails do 2.x para 3.x

18
http://www.urubatan.com.br @urubatan Atualizando do Rails 2.x para 3.2 Rodrigo Urubatan

Upload: rodrigo-urubatan

Post on 12-Nov-2014

2.637 views

Category:

Technology


3 download

DESCRIPTION

Palestra RS On Rails 2012-09-15 - Atualizando aplicações Rails 2.x para 3.x

TRANSCRIPT

Page 1: Atualizando rails do 2.x para 3.x

http://www.urubatan.com.br @urubatan

Atualizando do Rails 2.x para 3.2

Rodrigo Urubatan

Page 2: Atualizando rails do 2.x para 3.x

http://www.urubatan.com.br @urubatan

Urubatan

 Rodrigo Urubatan (@urubatan) trabalha com desenvolvimento de software desde 1997. Já desenvolveu sistemas em uma gama de linguagens e ambientes, incluindo Delphi, C, C++, PHP, ASP, ColdFusion, Assembly, Leather, Ruby e Java. Atualmente trabalha na GetNet, utilizando principalmente Java, Oracle e Ruby, e já ministrou cursos e palestras em diversos eventos pelo Brasil. Autor do livro Ruby On Rails: Desenvolvimento Fácil e Rápido de Aplicações Web.

Page 3: Atualizando rails do 2.x para 3.x

http://www.urubatan.com.br @urubatan

• Vale a pena atualizar?o Por que não re-escrever?o Algumas vezes é melhro re-escrever tudo!

• Já pensou em todos os possíveis problemas?

• Usa muitos plugins?

• Muita coisa vendorizada que não existe mais online?

Tem certeza disto?

Page 4: Atualizando rails do 2.x para 3.x

http://www.urubatan.com.br @urubatan

Por onde começar?

• script/plugin install git://github.com/rails/rails_upgrade.git

• rake rails:upgrade:check

• rake rails:upgrade:backup

• rake rails:upgrade:routes

• rake rails:upgrade:gems

• rake rails:upgrade:configuration

Page 5: Atualizando rails do 2.x para 3.x

http://www.urubatan.com.br @urubatan

Check• rake rails:upgrade:check

• (in /Users/eifion/rails/apps_for_asciicasts/ep225/railscasts)

• Old router API

• The router API has totally changed.

• More information: http://yehudakatz.com/2009/12/26/the-rails-3-router-rack-it-up/

• The culprits:

• - config/routes.$ rake rails:upgrade:check

• (in /Users/eifion/rails/apps_for_asciicasts/ep225/railscasts)

• Old router API

• The router API has totally changed.

• More information: http://yehudakatz.com/2009/12/26/the-rails-3-router-rack-it-up/

• The culprits:

• rb

• - config/routes.rb

Page 6: Atualizando rails do 2.x para 3.x

http://www.urubatan.com.br @urubatan

Backup• rake rails:upgrade:backup

• (in /Users/eifion/rails/apps_for_asciicasts/ep225/railscasts)

• DEPRECATION WARNING: Rake tasks in vendor/plugins/hoptoad_notifier/tasks are deprecated. Use lib/tasks instead. (called from /Library/Ruby/Gems/1.8/gems/rails-2.3.8/l$ rake rails:upgrade:backup

• (in /Users/eifion/rails/apps_for_asciicasts/ep225/railscasts)

• ib/tasks/rails.rb:10)

• * backing up .gitignore to .gitignore.rails2

• * backing up app/controllers/application_controller.rb to app/controllers/application_controller.rb.rails2

• * backing up app/helpers/application_helper.rb to app/helpers/application_helper.DEPRECATION WARNING: Rake tasks in vendor/plugins/hoptoad_notifier/tasks are deprecated. Use lib/tasks instead. (called from /Library/Ruby/Gems/1.8/gems/rails-2.3.8/lib/tasks/rails.rb:10)

• * backing up .gitignore to .gitignore.rails2

• * backing up app/controllers/application_controller.rb to app/controllers/application_controller.rb.rails2

• rb.rails2

• * backing up config/routes.rb to config/routes.rb.rails2

• * backing up config/environment.rb to config/environment.rb.rails2

• * backing up config/environments/development.rb to config/environments/development.rb.rails2

• * backing up config/environme* backing up app/helpers/application_helper.rb to app/helpers/application_helper.rb.rails2

• * backing up config/routes.rb to config/routes.rb.rails2

• * backing up config/environment.rb to config/environment.rb.rails2

• * backing up config/environments/development.rb to config/environments/development.rb.rails2

• nts/production.rb to config/environments/production.rb.rails2

• * backing up config/database.yml to config/database.yml.rails2

Page 7: Atualizando rails do 2.x para 3.x

http://www.urubatan.com.br @urubatan

Welcome to hell!

Page 8: Atualizando rails do 2.x para 3.x

http://www.urubatan.com.br @urubatan

returning

o método returning não existe mais, mas ele é equivalente ao Object.tap do Ruby 1.9

class Object

def returning(obj)

yield obj

obj

end

end

Page 9: Atualizando rails do 2.x para 3.x

http://www.urubatan.com.br @urubatan

_on_ mudou e sumiu!

validate_on_create

validate_on_update

mudaram para: validate ..., :on => :create|:update

before_validation_on_create

before_validation_on_update

mesma lógica

Page 10: Atualizando rails do 2.x para 3.x

http://www.urubatan.com.br @urubatan

with(out)_callbacks

a implementação de callbacks mudou totalmente, não usa mais o mecanismo de

alias_method_chain

Page 11: Atualizando rails do 2.x para 3.x

http://www.urubatan.com.br @urubatan

Plugins atualizados? Gems?

uma aplicação cheia de coisas vendorizadas podia facilitar o deployment quando não existia bundler, mas hoje se torna um pesadelo ...

Page 12: Atualizando rails do 2.x para 3.x

http://www.urubatan.com.br @urubatan

no such method explain?

se atualizou a app e esta recebendo o erro dizendo que não existe explain no adapter do mysql, mude o gemfile e o databases.yml para usar o mysql2

Page 13: Atualizando rails do 2.x para 3.x

http://www.urubatan.com.br @urubatan

Too much magick?

Pivotal user plugin?

Plugins que fazem muitas coisas

Plugins e gems com muito monkey patch

Plugins com hooks no rails, podem ser difíceis de atualizar

Page 14: Atualizando rails do 2.x para 3.x

http://www.urubatan.com.br @urubatan

Helpers

Você tera que re-escrever todos os helpers e adicionar os métodos:

.html_safe ou raw

para que não seja impresso apenas código HTML

Page 15: Atualizando rails do 2.x para 3.x

http://www.urubatan.com.br @urubatan

Abominações

m = mock(Class)

def m.execute

...

end

m.should_receive(:execute)

Page 16: Atualizando rails do 2.x para 3.x

http://www.urubatan.com.br @urubatan

O que todos já sabem?!

• engines

• rails config

Page 17: Atualizando rails do 2.x para 3.x

http://www.urubatan.com.br @urubatan

Perguntas!

Page 18: Atualizando rails do 2.x para 3.x

http://www.urubatan.com.br @urubatan

Quer um livro?

• O segundo que fez uma pergunta sobre a palestra acaba de ganhar um :D

Pode vir aqui na frente buscar por favor?