I decided to try my hand at creating a screencast the other day. I took a look at the EventMachine EM-HTTP-Request library and created a simple shell program to do single and multi requests. Take a look and let me know what you think.
require ‘eventmachine’
require ‘em-http’
require ‘pp’
$stdout.sync = true
class KeyboardHandler < EM::Connection
include EM::Protocols::LineText2
def post_init
print "> "
end
def receive_line(line)
line.chomp!
line.gsub!(/^\s+/, ”)
case(line)
when /^get (.*)$/ then
site = $1.chomp
sites = site.split(‘,’)
multi = EM::MultiRequest.new
sites.each do |s|
multi.add(EM::HttpRequest.new(s).get)
end
multi.callback {
puts ""
multi.responses[:succeeded].each do |h|
pp h.response_header.status
pp h.response_header
end
multi.responses[:failed].each do |h|
puts "#{h.inspect} failed"
end
print "> "
}
print "> "
when /^exit$/ then
EM.stop
when /^help$/ then
puts "get URL[,URL]* – gets a URL"
puts "exit - exits the app"
puts "help - this help"
print "> "
end
end
end
EM::run {
EM.open_keyboard(KeyboardHandler)
}
puts "Finished"
Great screencast (and thanks for showing the source in the post.
Please, output sourcecode with fixed font!
nice post, thanks for putting it together
Very nice, very helpful. There’s nothing like watching someone work to provide subtle insights into others’ thought processes and editing style.
Great intro to event machine!