Sha256: 6337a5189d8bcb42c1782d719257746f0b312bf330b5d9f6d33a75819080ccd9
Contents?: true
Size: 1.44 KB
Versions: 3
Compression:
Stored size: 1.44 KB
Contents
require "xmlrpc/contrib/rpcservlet" module FreeBASE module RAA ## # THe XMLRPC_Plugin class provides an XML-RPC handling capability # for FreeBASE-based applications. Uses the xmlrpc4r library. # class XMLRPC_Plugin extend FreeBASE::StandardPlugin ## # Start the XML RPC service. Called from FreeBASE::Plugin. # # plugin:: [FreeBASE::Plugin] The plugin instance # def self.start(plugin) XMLRPC_Plugin.new(plugin) plugin.transition(FreeBASE::RUNNING) end def initialize(plugin) @plugin = plugin @rpcservlet = XMLRPC::Servlet.new @plugin["service"].manager = @rpcservlet plugin["/protocols/xmlrpc"].manager = self plugin["/protocols/xmlrpc"].subscribe self @plugin["/protocols/http/RPC2"].data = @rpcservlet end def bind_RPC(prefix, obj_or_signature=nil, &block) if block_given? @plugin["/protocols/xmlrpc/#{prefix}"].set_proc &block else @plugin["/protocols/xmlrpc/#{prefix}"].data = obj_or_signature end end def databus_notify(event, slot) if event == :notify_data_set @plugin.log_info << "mount rpc path #{slot.name} - #{slot.data}" @rpcservlet.add_handler(slot.name, slot.data) elsif event == :notify_proc_set @plugin.log_info << "mount rpc block #{slot.name}" @rpcservlet.add_handler(slot.name, &(slot.proc.get_proc)) end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
redcar-0.3.1dev | lib/freebase2/plugins/raa_xmlrpc4r/rpcd.rb |
redcar-0.3.0dev | lib/freebase2/plugins/raa_xmlrpc4r/rpcd.rb |
redcar-0.2.9dev | lib/freebase2/plugins/raa_xmlrpc4r/rpcd.rb |