class SADI::Server
Public Class Methods
run!()
click to toggle source
# File lib/sadi-rb/server.rb, line 91 def run! SADI.reload_services base_run! end
Also aliased as: base_run!
Public Instance Methods
format_list()
click to toggle source
# File lib/sadi-rb/server.rb, line 61 def format_list RDF::Format.each.to_a.uniq{|f| f.content_type} .reject{|f| f.content_type.size == 0} .map{|f| "#{f.content_type} (#{f.to_sym})"} .join('<br>') end
get_description(service)
click to toggle source
# File lib/sadi-rb/server.rb, line 51 def get_description(service) svc = SADI.service_for(service) raise "no service exists with name '#{service}'" unless svc svc.service_description end
handle_post(service)
click to toggle source
# File lib/sadi-rb/server.rb, line 40 def handle_post(service) svc = SADI.service_for(service) raise "no service exists with name '#{service}'" unless svc if svc.is_a? SynchronousService rdf_response svc.process_input(request.body.read, request.content_type) else status 202 rdf_response svc.process_input(request.body.read, request.content_type, "http://#{request.host_with_port}/poll/#{svc.service_name}") end end
poll_service(service, job)
click to toggle source
# File lib/sadi-rb/server.rb, line 68 def poll_service(service, job) svc = SADI.service_for(service) result = svc.poll(job) if result.is_a?(RDF::Graph) || result.is_a?(RDF::Repository) result else redirect_poll(svc, job) end end
rdf_response(repo)
click to toggle source
# File lib/sadi-rb/server.rb, line 35 def rdf_response(repo) raise "Must return an RDF::Graph or RDF::Repository" unless repo.is_a?(RDF::Graph) or repo.is_a?(RDF::Repository) repo end
redirect_poll(svc, job)
click to toggle source
# File lib/sadi-rb/server.rb, line 78 def redirect_poll(svc, job) status 302 retry_time = 10 headers \ "Pragma" => "sadi-please-wait = #{retry_time}", "Location" => request.url end
service_list()
click to toggle source
# File lib/sadi-rb/server.rb, line 57 def service_list SADI.services.keys.map{|k| "<a href=\"/services/#{k}\"> #{k} </a>"}.join("<br>") end