class Bio::PSORT::CGIDriver

Generic CGI client class

A generic CGI client class for Bio::PSORT::* classes. The class provides an interface for CGI argument processing and output report parsing.

Example

class NewClient < CGIDriver
  def initialize(host, path)
    super(host, path)
  end
end
private
def make_args(query)
  # ...
end
def parse_report(output)
  # ...
end

Attributes

args[RW]

CGI query argument in Hash ({key => value, …}).

report[R]

CGI output raw text

Public Class Methods

new(host = '', path = '') click to toggle source

Sets remote host name and cgi path or uri.

Examples

CGIDriver.new("localhost", "/cgi-bin/psort_www.pl")

CGIDriver.new("http://localhost/cgi-bin/psort_www.pl")

CGIDriver.new(URI.parse("http://localhost/cgi-bin/psort_www.pl"))
# File lib/bio/appl/psort.rb, line 94
def initialize(host = '', path = '')
  case host.to_s
  when /^http:/
    uri = host.to_s
  else
    uri = 'http://' + host + '/' + path
  end
  @uri = URI.parse(uri)
  @args = {}
  @report = ''
end

Public Instance Methods

exec(query) click to toggle source

Executes a CGI “query'' and returns aReport

# File lib/bio/appl/psort.rb, line 108
def exec(query)
  data = make_args(query)  

  begin
    result = nil
    Bio::Command.start_http(@uri.host) {|http|
      result = http.post(@uri.path, data)
    }
    @report = result.body
    output = parse_report(@report)
  end

  return output
end