http://rack.github.com Thursday, November 11, 2010 Rack provides a - - PowerPoint PPT Presentation

http rack github com
SMART_READER_LITE
LIVE PREVIEW

http://rack.github.com Thursday, November 11, 2010 Rack provides a - - PowerPoint PPT Presentation

http://rack.github.com Thursday, November 11, 2010 Rack provides a minimal, modular and adaptable interface for developing web applications in Ruby. By wrapping HTTP requests and responses in the simplest way possible, it unifies and distills


slide-1
SLIDE 1

http://rack.github.com

Thursday, November 11, 2010

slide-2
SLIDE 2

Rack provides a minimal, modular and adaptable interface for developing web applications in Ruby. By wrapping HTTP requests and responses in the simplest way possible, it unifies and distills the API for web servers, web frameworks, and software in between (the so-called middleware) into a single method call.

http://rack.rubyforge.org/doc/

Thursday, November 11, 2010

slide-3
SLIDE 3

Thursday, November 11, 2010

slide-4
SLIDE 4

Request => Response

Thursday, November 11, 2010

slide-5
SLIDE 5

Request

HTTP CGI

Thursday, November 11, 2010

slide-6
SLIDE 6

Response

Status Header Body

Thursday, November 11, 2010

slide-7
SLIDE 7

Rack Spec

http://chneukirchen.org/talks/euruko-2007/neukirchen07introducingrack.pdf

Thursday, November 11, 2010

slide-8
SLIDE 8

Demo

  • HTTP Client and HTTP Server

Thursday, November 11, 2010

slide-9
SLIDE 9

Rack Distribution

  • Specification
  • Handlers
  • Adapters
  • Middlewares
  • Utilities

Thursday, November 11, 2010

slide-10
SLIDE 10

Rack Specification

  • Rack::Lint

Thursday, November 11, 2010

slide-11
SLIDE 11

Rack Handlers

  • CGI
  • FastCGI
  • Mongrel
  • WEBrick
  • Thin
  • Passenger
  • Unicorn

Thursday, November 11, 2010

slide-12
SLIDE 12

Thursday, November 11, 2010

slide-13
SLIDE 13

Rack Adapters

  • Camping
  • Rails
  • Sinatra
  • ....

Thursday, November 11, 2010

slide-14
SLIDE 14

Camping Adapter

Thursday, November 11, 2010

slide-15
SLIDE 15

Rack Middleware

  • Rack::Reloader
  • Rack::ShowExceptions
  • Rack::CommonLogger
  • Rack::Static

Thursday, November 11, 2010

slide-16
SLIDE 16

Rack Utilities

  • Rack::Request + Rack::Response
  • Rack::MockRequest + Rack::MockResponse
  • Rack::Builder + rackup

Thursday, November 11, 2010

slide-17
SLIDE 17

Debugging Libraries

  • Rack::Lint and Rack::ShowExceptions
  • Rack::Bug
  • Rack::Debug

Thursday, November 11, 2010

slide-18
SLIDE 18

Advantages

  • Less Work
  • No external configuration
  • Easy to test

Thursday, November 11, 2010

slide-19
SLIDE 19

Demo

  • Hello World Rack App

Thursday, November 11, 2010

slide-20
SLIDE 20

Thursday, November 11, 2010

slide-21
SLIDE 21

Thursday, November 11, 2010

slide-22
SLIDE 22

Thursday, November 11, 2010

slide-23
SLIDE 23

Rack::Builder

Rack::Builder implements a small DSL to iteratively construct Rack applications.

http://rack.rubyforge.org/doc/classes/Rack/Builder.html

Thursday, November 11, 2010

slide-24
SLIDE 24

Thursday, November 11, 2010

slide-25
SLIDE 25

Thursday, November 11, 2010

slide-26
SLIDE 26

Thursday, November 11, 2010

slide-27
SLIDE 27

The rackup file

  • Configuration DSL for a Rack app
  • Server independent
  • Allows stacking of middleware
  • Provides simple route mapping

Thursday, November 11, 2010

slide-28
SLIDE 28

Thursday, November 11, 2010

slide-29
SLIDE 29

Routing

  • Rack::Builder
  • Rack::Mount
  • Rack::URLMap

Thursday, November 11, 2010

slide-30
SLIDE 30

Thursday, November 11, 2010

slide-31
SLIDE 31

Thursday, November 11, 2010

slide-32
SLIDE 32

Thursday, November 11, 2010

slide-33
SLIDE 33

Thursday, November 11, 2010

slide-34
SLIDE 34

Thursday, November 11, 2010

slide-35
SLIDE 35

Middleware

Thursday, November 11, 2010

slide-36
SLIDE 36

Thursday, November 11, 2010

slide-37
SLIDE 37

Thursday, November 11, 2010

slide-38
SLIDE 38

Thursday, November 11, 2010

slide-39
SLIDE 39

Middleware

  • Utilities that combine, compose, aggregate or modify

Rack application

  • Ruby Object
  • Stackable
  • Pipe for HTTP Processing

Thursday, November 11, 2010

slide-40
SLIDE 40

Middleware

  • Just a Rack application
  • Constructor takes next app down
  • Can modify request or response
  • Can call layer below or just return
  • Configured with ‘use’ in rackup file

Thursday, November 11, 2010

slide-41
SLIDE 41

HTTP APP \m/ \m/ \m/

Thursday, November 11, 2010

slide-42
SLIDE 42

http://github.com/rack/rack-contrib

Thursday, November 11, 2010

slide-43
SLIDE 43

Rails 2.3

http://guides.rubyonrails.org/rails_on_rack.html#internal-middleware-stack

Thursday, November 11, 2010

slide-44
SLIDE 44

Rails 2.3

Thursday, November 11, 2010

slide-45
SLIDE 45

SSO

Thursday, November 11, 2010

slide-46
SLIDE 46

SSO

Thursday, November 11, 2010

slide-47
SLIDE 47

SSO

Thursday, November 11, 2010

slide-48
SLIDE 48

Thursday, November 11, 2010