Rack <ul><li>Como utilizar o poder dos Middlewares em suas aplicações Rails </li></ul>
Rack  é uma interface básica entre  servidores web  e  frameworks  ruby
Frameworks e Servidores
Crie: <ul><li>Aplicações que não dependem de framework </li></ul><ul><li>Seu próprio framework </li></ul><ul><li>Middlewar...
Aplicações Rack
<ul><li>Um simples objeto ruby </li></ul><ul><ul><li>não precisa ser uma classe </li></ul></ul><ul><li>Método  call </li><...
<ul><li>env = {  “REQUEST_METHOD”  =>  “GET” ,  </li></ul><ul><li>“ QUERY_STRING”  =>  “par=value” , ...  },  </li></ul><u...
 
 
Middlewares
são filtros que podem ser usados para interceptar um  request  e alterar o  response
HTTP Middleware Middleware Aplicação
<ul><li>Sinatra </li></ul>
<ul><li>Sinatra </li></ul>Rails
<ul><li>$ rake middleware </li></ul><ul><li>use Rack::Lock </li></ul><ul><li>use ActionController::Failsafe </li></ul><ul>...
<ul><li>Rack Contrib </li></ul><ul><li>http://github.com/rack/rack-contrib/ </li></ul><ul><li>Rack::ETag </li></ul><ul><li...
<ul><li>Rack::Cache </li></ul><ul><li>http://tomayko.com/src/rack-cache/ </li></ul>
<ul><li>Rack::Cache </li></ul><ul><li>http://tomayko.com/src/rack-cache/ </li></ul><ul><li>Rack Javascript Minify </li></u...
<ul><li>Rack::Cache </li></ul><ul><li>http://tomayko.com/src/rack-cache/ </li></ul><ul><li>Rack Javascript Minify </li></u...
você  pode criar seu próprio  middleware
Obrigado! @cleitonfco [email_address] http://cleitonfco.com.br
Upcoming SlideShare
Loading in …5
×

Rack: como utilizar o poder dos Middlewares em suas aplicações Rails

1,364 views

Published on

Slides da palestra exibida no Rails for Kids 2009 - http://railsforkids.com

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Rack: como utilizar o poder dos Middlewares em suas aplicações Rails

  1. 1. Rack <ul><li>Como utilizar o poder dos Middlewares em suas aplicações Rails </li></ul>
  2. 2. Rack é uma interface básica entre servidores web e frameworks ruby
  3. 3. Frameworks e Servidores
  4. 4. Crie: <ul><li>Aplicações que não dependem de framework </li></ul><ul><li>Seu próprio framework </li></ul><ul><li>Middlewares </li></ul>
  5. 5. Aplicações Rack
  6. 6. <ul><li>Um simples objeto ruby </li></ul><ul><ul><li>não precisa ser uma classe </li></ul></ul><ul><li>Método call </li></ul><ul><ul><li>recebe um parametro, o enviroment </li></ul></ul><ul><ul><li>retorna um array com três valores </li></ul></ul>
  7. 7. <ul><li>env = { “REQUEST_METHOD” => “GET” , </li></ul><ul><li>“ QUERY_STRING” => “par=value” , ... }, </li></ul><ul><li>return [ 200 , </li></ul><ul><li>{ “Content-Type” => “text/plain” }, </li></ul><ul><li>“ Hello World!” ] </li></ul>
  8. 10. Middlewares
  9. 11. são filtros que podem ser usados para interceptar um request e alterar o response
  10. 12. HTTP Middleware Middleware Aplicação
  11. 13. <ul><li>Sinatra </li></ul>
  12. 14. <ul><li>Sinatra </li></ul>Rails
  13. 15. <ul><li>$ rake middleware </li></ul><ul><li>use Rack::Lock </li></ul><ul><li>use ActionController::Failsafe </li></ul><ul><li>use ActionController::Reloader </li></ul><ul><li>use ActionController::Session::CookieStore, ... </li></ul><ul><li>use ActionController::ParamsParser </li></ul><ul><li>use Rack::MethodOverride </li></ul><ul><li>use Rack::Head </li></ul><ul><li>use ActiveRecord::ConnectionAdapters::Connection... </li></ul><ul><li>use ActiveRecord::QueryCache </li></ul><ul><li>run ActionController::Dispatcher.new </li></ul>
  14. 16. <ul><li>Rack Contrib </li></ul><ul><li>http://github.com/rack/rack-contrib/ </li></ul><ul><li>Rack::ETag </li></ul><ul><li>Rack::JSONP </li></ul><ul><li>Rack::Locale </li></ul><ul><li>Rack::MailExceptions </li></ul><ul><li>Rack::StaticCache </li></ul><ul><li>Rack::TimeZone </li></ul><ul><li>Rack::Callbacks </li></ul><ul><li>Rack::NotFound </li></ul><ul><li>Rack::Deflect </li></ul><ul><li>Rack::ResponseCache </li></ul><ul><li>Rack::RelativeRedirect </li></ul><ul><li>Rack::AcceptFormat </li></ul><ul><li>Rack::Cookies </li></ul><ul><li>Outros... </li></ul>
  15. 17. <ul><li>Rack::Cache </li></ul><ul><li>http://tomayko.com/src/rack-cache/ </li></ul>
  16. 18. <ul><li>Rack::Cache </li></ul><ul><li>http://tomayko.com/src/rack-cache/ </li></ul><ul><li>Rack Javascript Minify </li></ul><ul><li>http://github.com/lucianopanaro/rack-javascript-minifier/ </li></ul>
  17. 19. <ul><li>Rack::Cache </li></ul><ul><li>http://tomayko.com/src/rack-cache/ </li></ul><ul><li>Rack Javascript Minify </li></ul><ul><li>http://github.com/lucianopanaro/rack-javascript-minifier/ </li></ul><ul><li>Rack Roll  </li></ul><ul><li>http://github.com/semanticart/rack-roll/ </li></ul>
  18. 20. você pode criar seu próprio middleware
  19. 21. Obrigado! @cleitonfco [email_address] http://cleitonfco.com.br

×