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
 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) click to toggle source

Executes a CGI “query'' and returns aReport

    # File lib/bio/appl/psort.rb
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

Private Instance Methods

args_join(hash, delim = '&') click to toggle source

Returns CGI argument text in String (key=value&) from a Hash ({key=>value}).

    # File lib/bio/appl/psort.rb
141 def args_join(hash, delim = '&')
142   tmp = []
143   hash.each do |key, val|
144     tmp << CGI.escape(key.to_s) + '=' + CGI.escape(val.to_s)
145   end
146   return tmp.join(delim)  # not ';' but '&' in the psort cgi script.
147 end
erase_html_tags(str) click to toggle source

Erases HTML tags

    # File lib/bio/appl/psort.rb
136 def erase_html_tags(str)
137   return str.gsub(/<\S.*?>/, '')
138 end
make_args(args_hash) click to toggle source

Bio::CGIDriver#make_args. An API skelton.

    # File lib/bio/appl/psort.rb
126 def make_args(args_hash)
127   # The routin should be provided in the inherited class
128 end
parse_report(result_body) click to toggle source

Bio::CGIDriver#parse_report. An API skelton.

    # File lib/bio/appl/psort.rb
131 def parse_report(result_body)
132   # The routin should be provided in the inherited class
133 end