Adding code and slides
3
blank.rb
Normal file
@@ -0,0 +1,3 @@
|
||||
%w(rubygems eventmachine thin thin_parser rack rack/lobster).each { |f| require f }
|
||||
|
||||
EM
|
||||
57
demo.rb
Normal file
@@ -0,0 +1,57 @@
|
||||
%w(rubygems eventmachine thin thin_parser rack rack/lobster).each { |f| require f }
|
||||
|
||||
class Connection < EventMachine::Connection
|
||||
attr_accessor :app
|
||||
|
||||
def initialize
|
||||
@parser = Thin::HttpParser.new
|
||||
@data = ''
|
||||
@nparsed = 0
|
||||
@env = {}
|
||||
end
|
||||
|
||||
def receive_data(data)
|
||||
@data << data
|
||||
@nparsed = @parser.execute(@env, @data, @nparsed)
|
||||
|
||||
process if @parser.finished?
|
||||
end
|
||||
|
||||
def process
|
||||
status, headers, body = @app.call(@env)
|
||||
|
||||
body_output = ''
|
||||
body.each { |l| body_output << l }
|
||||
|
||||
send_data "HTTP/1.1 #{status} OK\r\n" +
|
||||
headers.inject('') { |h, (k,v)| h += "#k: #v\r\n" } +
|
||||
"\r\n" +
|
||||
body_output
|
||||
|
||||
close_connection_after_writing
|
||||
end
|
||||
end
|
||||
|
||||
welcome_app = proc do |env|
|
||||
[
|
||||
200, # Status
|
||||
{'Content-Type' => 'text/html'}, # Headers
|
||||
[
|
||||
'<html><body>',
|
||||
'<h1>Welcome</h1>',
|
||||
'<p>Welcome to my server!</p>', # Body
|
||||
'<p><a href="/rails">My Rails app!</a></p>',
|
||||
'</body></html>'
|
||||
]
|
||||
]
|
||||
end
|
||||
|
||||
rails_app = Rack::Adapter::Rails.new(:root => '/Users/marc/projects/refactormycode', :prefix => '/rails')
|
||||
|
||||
app = Rack::URLMap.new('/' => welcome_app, '/rails' => rails_app)
|
||||
|
||||
EventMachine.run do
|
||||
EventMachine.start_server '0.0.0.0', 3000, Connection do |con|
|
||||
con.app = app
|
||||
end
|
||||
end
|
||||
0
slides.key/.typeAttributes.dict
Normal file
BIN
slides.key/CachedWeb-1.tiff
Normal file
1
slides.key/Contents/PkgInfo
Normal file
@@ -0,0 +1 @@
|
||||
????????
|
||||
BIN
slides.key/Picture 1-2.png
Normal file
|
After Width: | Height: | Size: 8.9 KiB |
BIN
slides.key/Picture 1.png
Normal file
|
After Width: | Height: | Size: 51 KiB |
BIN
slides.key/Picture 2-1.png
Normal file
|
After Width: | Height: | Size: 102 KiB |
BIN
slides.key/Picture 2.png
Normal file
|
After Width: | Height: | Size: 9.9 KiB |
BIN
slides.key/Picture 3.png
Normal file
|
After Width: | Height: | Size: 9.4 KiB |
BIN
slides.key/Picture 4.png
Normal file
|
After Width: | Height: | Size: 9.3 KiB |
BIN
slides.key/Picture 5.png
Normal file
|
After Width: | Height: | Size: 9.0 KiB |
BIN
slides.key/Shetland_pony.tiff
Normal file
BIN
slides.key/bench-1.png
Normal file
|
After Width: | Height: | Size: 36 KiB |
BIN
slides.key/bench.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
slides.key/car-the-new-audi-tt-4.tiff
Normal file
BIN
slides.key/david-heinemeier-hansson.tiff
Normal file
BIN
slides.key/funny-pictures-invisible-segway-cat1.tiff
Normal file
BIN
slides.key/gitorious.tiff
Normal file
BIN
slides.key/index.apxl.gz
Normal file
BIN
slides.key/keepalive.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
slides.key/rack.gif
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
slides.key/ramaze.png
Normal file
|
After Width: | Height: | Size: 9.7 KiB |