class SADI::Server

Public Class Methods

base_run!()
Alias for: run!
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