30. 平行性
EM.run do
EM::PeriodicTimer.new(1) do
...
EM.spawn do
worker = Worker.new
worker.callback {jabber.deliver(message.from,
"Done")}
worker.process
end.notify
...
end
end
class Worker
include EM::Deferrable
def process
...
set_deferred_status :succeeded
end
end
33. プラグインその3
class NickPlugin < Plugin
def process(args = {})
begin
...
set_deferred_status :succeeded
rescue
set_deferred_status :failed
end
end
end
class NickFactory < PluginFactory
INFO=<<INFO
verb: NICK
author: Stoyan Zhekov
description: Get or set the nickname for some user
INFO
def create()
return NickPlugin.new()
end
end
35. Web (Ramaze)
class MainController < Ramaze::Controller
def u nick
begin
@user = User.find_by_user(nick)
subset = @user.micros.reverse
@micros, @pager = paginate(subset, :limit => PAGE)
rescue Exception => e
flash[:error] = "Error: #{e.to_s}"
redirect :/, :status => 302
end
end
end