SlideShare a Scribd company logo
1 of 18
Atualizando do Rails 2.x
               para 3.2
                         Rodrigo Urubatan




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.
http://www.urubatan.com.br           @urubatan
Tem certeza disto?
 •   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?


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




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
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
http://www.urubatan.com.br                                                                                       @urubatan
Welcome to hell!




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
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



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




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 ...




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




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




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




http://www.urubatan.com.br           @urubatan
Abominações
m = mock(Class)
def m.execute
...
end


m.should_receive(:execute)



http://www.urubatan.com.br   @urubatan
O que todos já sabem?!
 •   engines
 •   rails config




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




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?




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

More Related Content

Viewers also liked

Wall Street Technology Jan Feb 2010 38791[1]
Wall Street Technology Jan Feb 2010 38791[1]Wall Street Technology Jan Feb 2010 38791[1]
Wall Street Technology Jan Feb 2010 38791[1]ypytlik
 
Yvonne I Pytlik Journal Of Securities Law, Regulation & Compliance April ...
Yvonne I Pytlik Journal Of Securities Law, Regulation & Compliance April ...Yvonne I Pytlik Journal Of Securities Law, Regulation & Compliance April ...
Yvonne I Pytlik Journal Of Securities Law, Regulation & Compliance April ...ypytlik
 
Desenvolvendo aplicacoes mobile_com_html_css_
Desenvolvendo aplicacoes mobile_com_html_css_Desenvolvendo aplicacoes mobile_com_html_css_
Desenvolvendo aplicacoes mobile_com_html_css_Rodrigo Urubatan
 
Transformando os pepinos do cliente no código de testes da sua aplicação
Transformando os pepinos do cliente no código de testes da sua aplicaçãoTransformando os pepinos do cliente no código de testes da sua aplicação
Transformando os pepinos do cliente no código de testes da sua aplicaçãoRodrigo Urubatan
 
Git presentation to some coworkers some time ago
Git presentation to some coworkers some time agoGit presentation to some coworkers some time ago
Git presentation to some coworkers some time agoRodrigo Urubatan
 

Viewers also liked (8)

Evented programming
Evented programmingEvented programming
Evented programming
 
Seventymm Ad
Seventymm AdSeventymm Ad
Seventymm Ad
 
Wall Street Technology Jan Feb 2010 38791[1]
Wall Street Technology Jan Feb 2010 38791[1]Wall Street Technology Jan Feb 2010 38791[1]
Wall Street Technology Jan Feb 2010 38791[1]
 
Yvonne I Pytlik Journal Of Securities Law, Regulation & Compliance April ...
Yvonne I Pytlik Journal Of Securities Law, Regulation & Compliance April ...Yvonne I Pytlik Journal Of Securities Law, Regulation & Compliance April ...
Yvonne I Pytlik Journal Of Securities Law, Regulation & Compliance April ...
 
Desenvolvendo aplicacoes mobile_com_html_css_
Desenvolvendo aplicacoes mobile_com_html_css_Desenvolvendo aplicacoes mobile_com_html_css_
Desenvolvendo aplicacoes mobile_com_html_css_
 
Transformando os pepinos do cliente no código de testes da sua aplicação
Transformando os pepinos do cliente no código de testes da sua aplicaçãoTransformando os pepinos do cliente no código de testes da sua aplicação
Transformando os pepinos do cliente no código de testes da sua aplicação
 
Slide Show 11 20 09 #2
Slide Show 11 20 09 #2Slide Show 11 20 09 #2
Slide Show 11 20 09 #2
 
Git presentation to some coworkers some time ago
Git presentation to some coworkers some time agoGit presentation to some coworkers some time ago
Git presentation to some coworkers some time ago
 

Similar to Atualizando do Rails 2.x para 3.2

Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAThiago Cifani
 
Workshop Performance Rails
Workshop Performance RailsWorkshop Performance Rails
Workshop Performance RailsVitor Pellegrino
 
Mini-curso RubyOnRails CESOL
Mini-curso RubyOnRails CESOLMini-curso RubyOnRails CESOL
Mini-curso RubyOnRails CESOLtarginosilveira
 
APIs do Jeito Certo
APIs do Jeito CertoAPIs do Jeito Certo
APIs do Jeito CertoRavan Scafi
 
TDC São Paulo 2015 - Interfaces Ricas com Rails e React.JS
TDC São Paulo 2015  - Interfaces Ricas com Rails e React.JSTDC São Paulo 2015  - Interfaces Ricas com Rails e React.JS
TDC São Paulo 2015 - Interfaces Ricas com Rails e React.JSRodrigo Urubatan
 
12 factor app. Melhor com Docker
12 factor app. Melhor com Docker12 factor app. Melhor com Docker
12 factor app. Melhor com DockerWellington Silva
 
Ruby on Rails: Produtividade e diversão na web
Ruby on Rails: Produtividade e diversão na webRuby on Rails: Produtividade e diversão na web
Ruby on Rails: Produtividade e diversão na webRodrigo Manhães
 
Introducao ao Ruby On Rails
Introducao ao Ruby On RailsIntroducao ao Ruby On Rails
Introducao ao Ruby On RailsAndre Ferraro
 
Ruby on Rails: um estudo de viabilidade em ambientes empresariais
Ruby on Rails: um estudo de viabilidade em ambientes empresariaisRuby on Rails: um estudo de viabilidade em ambientes empresariais
Ruby on Rails: um estudo de viabilidade em ambientes empresariaisRodrigo Recio
 
PHP RESTful Web Services - PHPConf'09
PHP RESTful Web Services - PHPConf'09PHP RESTful Web Services - PHPConf'09
PHP RESTful Web Services - PHPConf'09Felipe Ribeiro
 
PHP RESTful Web Services
PHP RESTful Web ServicesPHP RESTful Web Services
PHP RESTful Web ServicesFelipe Ribeiro
 
Cakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHPCakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHPArlindo Santos
 
Apresentação Ruby no Dojo da UFBA
Apresentação Ruby no Dojo da UFBAApresentação Ruby no Dojo da UFBA
Apresentação Ruby no Dojo da UFBALuciano Borges
 
Tendências do Mercado de Internet
Tendências do Mercado de InternetTendências do Mercado de Internet
Tendências do Mercado de InternetVanessa Oliveira
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...tdc-globalcode
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...tdc-globalcode
 

Similar to Atualizando do Rails 2.x para 3.2 (20)

Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
 
Workshop Performance Rails
Workshop Performance RailsWorkshop Performance Rails
Workshop Performance Rails
 
Mini-curso RubyOnRails CESOL
Mini-curso RubyOnRails CESOLMini-curso RubyOnRails CESOL
Mini-curso RubyOnRails CESOL
 
APIs do Jeito Certo
APIs do Jeito CertoAPIs do Jeito Certo
APIs do Jeito Certo
 
Ruby On Rails Regis
Ruby On Rails RegisRuby On Rails Regis
Ruby On Rails Regis
 
TDC São Paulo 2015 - Interfaces Ricas com Rails e React.JS
TDC São Paulo 2015  - Interfaces Ricas com Rails e React.JSTDC São Paulo 2015  - Interfaces Ricas com Rails e React.JS
TDC São Paulo 2015 - Interfaces Ricas com Rails e React.JS
 
12 factor app. Melhor com Docker
12 factor app. Melhor com Docker12 factor app. Melhor com Docker
12 factor app. Melhor com Docker
 
Ruby on Rails: Produtividade e diversão na web
Ruby on Rails: Produtividade e diversão na webRuby on Rails: Produtividade e diversão na web
Ruby on Rails: Produtividade e diversão na web
 
Introducao ao Ruby On Rails
Introducao ao Ruby On RailsIntroducao ao Ruby On Rails
Introducao ao Ruby On Rails
 
Ruby on Rails: um estudo de viabilidade em ambientes empresariais
Ruby on Rails: um estudo de viabilidade em ambientes empresariaisRuby on Rails: um estudo de viabilidade em ambientes empresariais
Ruby on Rails: um estudo de viabilidade em ambientes empresariais
 
PHP RESTful Web Services - PHPConf'09
PHP RESTful Web Services - PHPConf'09PHP RESTful Web Services - PHPConf'09
PHP RESTful Web Services - PHPConf'09
 
Rails na pratica
Rails na praticaRails na pratica
Rails na pratica
 
PHP RESTful Web Services
PHP RESTful Web ServicesPHP RESTful Web Services
PHP RESTful Web Services
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
 
Cakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHPCakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHP
 
Apresentação Ruby no Dojo da UFBA
Apresentação Ruby no Dojo da UFBAApresentação Ruby no Dojo da UFBA
Apresentação Ruby no Dojo da UFBA
 
Tendências do Mercado de Internet
Tendências do Mercado de InternetTendências do Mercado de Internet
Tendências do Mercado de Internet
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
Ruby & Rails
Ruby & RailsRuby & Rails
Ruby & Rails
 

More from Rodrigo Urubatan

Data science in ruby is it possible? is it fast? should we use it?
Data science in ruby is it possible? is it fast? should we use it?Data science in ruby is it possible? is it fast? should we use it?
Data science in ruby is it possible? is it fast? should we use it?Rodrigo Urubatan
 
Data science in ruby, is it possible? is it fast? should we use it?
Data science in ruby, is it possible? is it fast? should we use it?Data science in ruby, is it possible? is it fast? should we use it?
Data science in ruby, is it possible? is it fast? should we use it?Rodrigo Urubatan
 
2018 the conf put git to work - increase the quality of your rails project...
2018 the conf   put git to work -  increase the quality of your rails project...2018 the conf   put git to work -  increase the quality of your rails project...
2018 the conf put git to work - increase the quality of your rails project...Rodrigo Urubatan
 
2018 RubyHACK: put git to work - increase the quality of your rails project...
2018 RubyHACK:  put git to work -  increase the quality of your rails project...2018 RubyHACK:  put git to work -  increase the quality of your rails project...
2018 RubyHACK: put git to work - increase the quality of your rails project...Rodrigo Urubatan
 
TDC2017 - POA - Aprendendo a usar Xamarin para desenvolver aplicações moveis ...
TDC2017 - POA - Aprendendo a usar Xamarin para desenvolver aplicações moveis ...TDC2017 - POA - Aprendendo a usar Xamarin para desenvolver aplicações moveis ...
TDC2017 - POA - Aprendendo a usar Xamarin para desenvolver aplicações moveis ...Rodrigo Urubatan
 
Your first game with unity3d framework
Your first game with unity3d frameworkYour first game with unity3d framework
Your first game with unity3d frameworkRodrigo Urubatan
 
Tdc Floripa 2017 - 8 falácias da programação distribuída
Tdc Floripa 2017 -  8 falácias da programação distribuídaTdc Floripa 2017 -  8 falácias da programação distribuída
Tdc Floripa 2017 - 8 falácias da programação distribuídaRodrigo Urubatan
 
Rubyconf2016 - Solving communication problems in distributed teams with BDD
Rubyconf2016 - Solving communication problems in distributed teams with BDDRubyconf2016 - Solving communication problems in distributed teams with BDD
Rubyconf2016 - Solving communication problems in distributed teams with BDDRodrigo Urubatan
 
resolvendo problemas de comunicação em equipes distribuídas com bdd
resolvendo problemas de comunicação em equipes distribuídas com bddresolvendo problemas de comunicação em equipes distribuídas com bdd
resolvendo problemas de comunicação em equipes distribuídas com bddRodrigo Urubatan
 
vantagens e desvantagens de trabalhar remoto
vantagens e desvantagens de trabalhar remotovantagens e desvantagens de trabalhar remoto
vantagens e desvantagens de trabalhar remotoRodrigo Urubatan
 
Using BDD to Solve communication problems
Using BDD to Solve communication problemsUsing BDD to Solve communication problems
Using BDD to Solve communication problemsRodrigo Urubatan
 
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015  Porto Alegre - Interfaces ricas com Rails e React.JSTDC2015  Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JSRodrigo Urubatan
 
Interfaces ricas com Rails e React.JS @ Rubyconf 2015
Interfaces ricas com Rails e React.JS @ Rubyconf 2015Interfaces ricas com Rails e React.JS @ Rubyconf 2015
Interfaces ricas com Rails e React.JS @ Rubyconf 2015Rodrigo Urubatan
 
Full Text Search com Solr, MySQL Full text e PostgreSQL Full Text
Full Text Search com Solr, MySQL Full text e PostgreSQL Full TextFull Text Search com Solr, MySQL Full text e PostgreSQL Full Text
Full Text Search com Solr, MySQL Full text e PostgreSQL Full TextRodrigo Urubatan
 
Ruby para programadores java
Ruby para programadores javaRuby para programadores java
Ruby para programadores javaRodrigo Urubatan
 
Treinamento html5, css e java script apresentado na HP
Treinamento html5, css e java script apresentado na HPTreinamento html5, css e java script apresentado na HP
Treinamento html5, css e java script apresentado na HPRodrigo Urubatan
 
Ruby on rails impressione a você mesmo, seu chefe e seu cliente
Ruby on rails  impressione a você mesmo, seu chefe e seu clienteRuby on rails  impressione a você mesmo, seu chefe e seu cliente
Ruby on rails impressione a você mesmo, seu chefe e seu clienteRodrigo Urubatan
 
Aplicações Hibridas com Phonegap e HTML5
Aplicações Hibridas com Phonegap e HTML5Aplicações Hibridas com Phonegap e HTML5
Aplicações Hibridas com Phonegap e HTML5Rodrigo Urubatan
 

More from Rodrigo Urubatan (20)

Ruby code smells
Ruby code smellsRuby code smells
Ruby code smells
 
Data science in ruby is it possible? is it fast? should we use it?
Data science in ruby is it possible? is it fast? should we use it?Data science in ruby is it possible? is it fast? should we use it?
Data science in ruby is it possible? is it fast? should we use it?
 
Data science in ruby, is it possible? is it fast? should we use it?
Data science in ruby, is it possible? is it fast? should we use it?Data science in ruby, is it possible? is it fast? should we use it?
Data science in ruby, is it possible? is it fast? should we use it?
 
2018 the conf put git to work - increase the quality of your rails project...
2018 the conf   put git to work -  increase the quality of your rails project...2018 the conf   put git to work -  increase the quality of your rails project...
2018 the conf put git to work - increase the quality of your rails project...
 
2018 RubyHACK: put git to work - increase the quality of your rails project...
2018 RubyHACK:  put git to work -  increase the quality of your rails project...2018 RubyHACK:  put git to work -  increase the quality of your rails project...
2018 RubyHACK: put git to work - increase the quality of your rails project...
 
TDC2017 - POA - Aprendendo a usar Xamarin para desenvolver aplicações moveis ...
TDC2017 - POA - Aprendendo a usar Xamarin para desenvolver aplicações moveis ...TDC2017 - POA - Aprendendo a usar Xamarin para desenvolver aplicações moveis ...
TDC2017 - POA - Aprendendo a usar Xamarin para desenvolver aplicações moveis ...
 
Your first game with unity3d framework
Your first game with unity3d frameworkYour first game with unity3d framework
Your first game with unity3d framework
 
Tdc Floripa 2017 - 8 falácias da programação distribuída
Tdc Floripa 2017 -  8 falácias da programação distribuídaTdc Floripa 2017 -  8 falácias da programação distribuída
Tdc Floripa 2017 - 8 falácias da programação distribuída
 
Rubyconf2016 - Solving communication problems in distributed teams with BDD
Rubyconf2016 - Solving communication problems in distributed teams with BDDRubyconf2016 - Solving communication problems in distributed teams with BDD
Rubyconf2016 - Solving communication problems in distributed teams with BDD
 
resolvendo problemas de comunicação em equipes distribuídas com bdd
resolvendo problemas de comunicação em equipes distribuídas com bddresolvendo problemas de comunicação em equipes distribuídas com bdd
resolvendo problemas de comunicação em equipes distribuídas com bdd
 
vantagens e desvantagens de trabalhar remoto
vantagens e desvantagens de trabalhar remotovantagens e desvantagens de trabalhar remoto
vantagens e desvantagens de trabalhar remoto
 
Using BDD to Solve communication problems
Using BDD to Solve communication problemsUsing BDD to Solve communication problems
Using BDD to Solve communication problems
 
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015  Porto Alegre - Interfaces ricas com Rails e React.JSTDC2015  Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
 
Interfaces ricas com Rails e React.JS @ Rubyconf 2015
Interfaces ricas com Rails e React.JS @ Rubyconf 2015Interfaces ricas com Rails e React.JS @ Rubyconf 2015
Interfaces ricas com Rails e React.JS @ Rubyconf 2015
 
Full Text Search com Solr, MySQL Full text e PostgreSQL Full Text
Full Text Search com Solr, MySQL Full text e PostgreSQL Full TextFull Text Search com Solr, MySQL Full text e PostgreSQL Full Text
Full Text Search com Solr, MySQL Full text e PostgreSQL Full Text
 
Ruby para programadores java
Ruby para programadores javaRuby para programadores java
Ruby para programadores java
 
Treinamento html5, css e java script apresentado na HP
Treinamento html5, css e java script apresentado na HPTreinamento html5, css e java script apresentado na HP
Treinamento html5, css e java script apresentado na HP
 
Ruby on rails impressione a você mesmo, seu chefe e seu cliente
Ruby on rails  impressione a você mesmo, seu chefe e seu clienteRuby on rails  impressione a você mesmo, seu chefe e seu cliente
Ruby on rails impressione a você mesmo, seu chefe e seu cliente
 
Mini curso rails 3
Mini curso rails 3Mini curso rails 3
Mini curso rails 3
 
Aplicações Hibridas com Phonegap e HTML5
Aplicações Hibridas com Phonegap e HTML5Aplicações Hibridas com Phonegap e HTML5
Aplicações Hibridas com Phonegap e HTML5
 

Atualizando do Rails 2.x para 3.2

  • 1. Atualizando do Rails 2.x para 3.2 Rodrigo Urubatan http://www.urubatan.com.br @urubatan
  • 2. 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. http://www.urubatan.com.br @urubatan
  • 3. Tem certeza disto? • 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? http://www.urubatan.com.br @urubatan
  • 4. 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 http://www.urubatan.com.br @urubatan
  • 5. 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 http://www.urubatan.com.br @urubatan
  • 6. 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 http://www.urubatan.com.br @urubatan
  • 8. 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 http://www.urubatan.com.br @urubatan
  • 9. _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 http://www.urubatan.com.br @urubatan
  • 10. with(out)_callbacks a implementação de callbacks mudou totalmente, não usa mais o mecanismo de alias_method_chain http://www.urubatan.com.br @urubatan
  • 11. 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 ... http://www.urubatan.com.br @urubatan
  • 12. 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 http://www.urubatan.com.br @urubatan
  • 13. 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 http://www.urubatan.com.br @urubatan
  • 14. 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 http://www.urubatan.com.br @urubatan
  • 15. Abominações m = mock(Class) def m.execute ... end m.should_receive(:execute) http://www.urubatan.com.br @urubatan
  • 16. O que todos já sabem?! • engines • rails config http://www.urubatan.com.br @urubatan
  • 18. 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? http://www.urubatan.com.br @urubatan