Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Yet Another Ruby Framework - Como o Rails funciona por dentro

3,463 views

Published on

“Yet Another Ruby Framework – Como o Rails funciona por dentro”: Minha palestra tratará exatamente deste tema: o processo de construção de um framework utilizando Ruby. Se você realmente quer entender como o Rails funciona, então crie o seu próprio framework. Nesta palestra vou comentar sobre algumas das dificuldades que encontrei durante este projeto e quais as soluções encontradas. O processo de renderização, geradores de códigos, helpers e banco de dados estão entre os assuntos que serão tratados. Acredito que ao analisar este tópicos de um ponto de vista mais simplista fará com que você entenda melhor como algumas coisas funcionam internamente no Rails.

Published in: Technology

  • Eu fiz o download da apresentação mas vem com uma extensão .key como faço para abrir tal extensão.

    <b>[Comment posted from</b> http://www.nomedojogo.com/2009/10/13/os-slides-da-minha-apresentacao-no-rails-summit-latin-america-2009/]
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Yet Another Ruby Framework - Como o Rails funciona por dentro

  1. 1. Yet Another Ruby Framework Como o Rails funciona por dentro por Carlos Brando
  2. 2. http://www.nomedojogo.com/
  3. 3. http://www.rubyinside.com.br/
  4. 4. Yet Another Ruby Framework Como o Rails funciona por dentro por Carlos Brando
  5. 5. Ruby on Rails não é uma linguagem de programação
  6. 6. Paradigma MVC Framework Web Basecamp
  7. 7. Ruby on Rails é um framework
  8. 8. Rails não serve para tudo!
  9. 9. XML + JS
  10. 10. Sociably
  11. 11. Arquitetura
  12. 12. Push-based
  13. 13. MVC
  14. 14. Pull-based
  15. 15. require "rack" options = { :Port => 3000, :Host => "0.0.0.0", :environment => (ENV['SOCIABLY_ENV'] || "development").dup, :config => SOCIABLY_ROOT + "/config.ru", :detach => false, :debugger => false, :path => nil } # ... begin server = Rack::Handler::Mongrel rescue LoadError => e server = Rack::Handler::WEBrick end # .. server.run(ApplicationController, options.merge(:AccessLog => [])) ruby script/server
  16. 16. Banco de Dados
  17. 17. ORM Mapeamento objeto-relacional
  18. 18. config.database_library = :datamapper init.rb ou environment.rb def initialize_database case Sociably.configuration.database_library when :datamapper require 'datamapper' DataMapper.setup(:default, database_options[SOCIABLY_ENV]) when :activerecord # ... end end initializer.rb
  19. 19. Geradores de código
  20. 20. Templates
  21. 21. ERB vs. Haml
  22. 22. Haml #profile .left.column #date= print_date #address= current_user.address .right.column #email= current_user.email #bio= current_user.bio ERB <div id="profile"> <div class="left column"> <div id="date"><%= print_date %></div> <div id="address"><%= current_user.address %></div> </div> <div class="right column"> <div id="email"><%= current_user.email %></div> <div id="bio"><%= current_user.bio %></div> </div> </div>
  23. 23. <p> Olá, <%= evento %>! </p> require "erb" erb = <<END _erbout = '' <p> Olá, <%= evento %>! _erbout.concat " <p>n" </p> _erbout.concat " Ol303241, " END _erbout.concat(( evento ).to_s) def evento "Rails Summit" _erbout.concat "!n" end _erbout.concat " </p>n" instance = ::ERB.new(erb) _erbout puts instance.src
  24. 24. require "erb" erb = <<END _erbout = '' <p> Olá, <%= evento %>! _erbout.concat " <p>n" </p> _erbout.concat " Ol303241, " END _erbout.concat(( evento ).to_s) def evento "Rails Summit" _erbout.concat "!n" end _erbout.concat " </p>n" instance = ::ERB.new(erb) _erbout puts instance.src eval(instance.src, binding)
  25. 25. <p> Olá, Rails Summit! </p> eval(instance.src, binding)
  26. 26. Demo
  27. 27. @carlosbrando www.nomedojogo.com

×