Class | Bio::PSORT::CGIDriver
In: | lib/bio/appl/psort.rb
Parent: | Object

# 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

### Methods

exec new

### Attributes

args | [RW] | CGI query argument in Hash ({key => value, …}).
report | [R] | CGI output raw text

### Public Class methods

new(host = '', path = '')

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"))

[Source]

         # File lib/bio/appl/psort.rb, line 94
     94:       def initialize(host = '', path = '')
     95:         case host.to_s
     96:         when /^http:/
     97:           uri = host.to_s
     98:         else
     99:           uri = 'http://' + host + '/' + path
    100:         end
    101:         @uri = URI.parse(uri)
    102:         @args = {}
    103:         @report = ''
    104:       end

### Public Instance methods

exec(query)

Executes a CGI ``query’’ and returns aReport

[Source]

         # File lib/bio/appl/psort.rb, line 108
    108:       def exec(query)
    109:         data = make_args(query)
    110:
    111:         begin
    112:           result = nil
    113:           Bio::Command.start_http(@uri.host) {|http|
    114:             result = http.post(@uri.path, data)
    115:           }
    116:           @report = result.body
    117:           output = parse_report(@report)
    118:         end
    119:
    120:         return output
    121:       end

[Validate]