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 |