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