/usr/share/doc/ruby-em-http-request/examples/fibered-http.rb is in ruby-em-http-request 0.3.0-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | require 'eventmachine'
require 'em-http'
require 'fiber'
# Using Fibers in Ruby 1.9 to simulate blocking IO / IO scheduling
# while using the async EventMachine API's
def async_fetch(url)
f = Fiber.current
http = EventMachine::HttpRequest.new(url).get :timeout => 10
http.callback { f.resume(http) }
http.errback { f.resume(http) }
return Fiber.yield
end
EventMachine.run do
Fiber.new{
puts "Setting up HTTP request #1"
data = async_fetch('http://www.google.com/')
puts "Fetched page #1: #{data.response_header.status}"
puts "Setting up HTTP request #2"
data = async_fetch('http://www.yahoo.com/')
puts "Fetched page #2: #{data.response_header.status}"
EventMachine.stop
}.resume
end
puts "Done"
# Setting up HTTP request #1
# Fetched page #1: 302
# Setting up HTTP request #2
# Fetched page #2: 200
# Done
|