A class to parse and store NCBI-tools style command-line options. It is internally used in Bio::Blast and some other classes.
If self == other, returns true. Otherwise, returns false.
# File lib/bio/appl/blast/ncbioptions.rb, line 198 def ==(other) return true if super(other) begin oopts = other.options rescue return false end return self.options == oopts end
Adds options from given array. Note that existing options will also be normalized.
Arguments:
options: options as an Array of String objects.
Returns |
self |
# File lib/bio/appl/blast/ncbioptions.rb, line 191 def add_options(options) @option_pairs.concat _parse_options(options) self.normalize! self end
Delete the given option.
Arguments:
key: option name as a string, e.g. 'm', 'p', or '-m', '-p'.
Returns |
String or nil |
# File lib/bio/appl/blast/ncbioptions.rb, line 135 def delete(key) re = _key_to_regexp(key) # Note: the last option is used for return value # when two or more same option exist. oldvalue = nil @option_pairs = @option_pairs.delete_if do |pair| if re =~ pair[0] then oldvalue = pair[1] true else false end end return oldvalue end
Return the option.
Arguments:
key: option name as a string, e.g. 'm', 'p', or '-m', '-p'.
Returns |
String or nil |
# File lib/bio/appl/blast/ncbioptions.rb, line 116 def get(key) re = _key_to_regexp(key) # Note: the last option is used when two or more same option exist. value = nil @option_pairs.reverse_each do |pair| if re =~ pair[0] then value = pair[1] break end end return value end
Returns an array for command-line options. prior_options are preferred to be used.
# File lib/bio/appl/blast/ncbioptions.rb, line 210 def make_command_line_options(prior_options = []) newopts = self.class.new(self.options) #newopts.normalize! prior_pairs = _parse_options(prior_options) prior_pairs.each do |pair| newopts.delete(pair[0]) end newopts.option_pairs[0, 0] = prior_pairs newopts.options end
Normalize options. For two or more same options (e.g. ‘-p blastn -p blastp’), only the last option is used. (e.g. ‘-p blastp’ for above example).
Note that completely illegal options are left untouched.
Returns |
self |
# File lib/bio/appl/blast/ncbioptions.rb, line 74 def normalize! hash = {} newpairs = [] @option_pairs.reverse_each do |pair| if pair.size == 2 then key = pair[0] unless hash[key] then newpairs.push pair hash[key] = pair end else newpairs.push pair end end newpairs.reverse! @option_pairs = newpairs self end
current options as an array of strings
# File lib/bio/appl/blast/ncbioptions.rb, line 94 def options @option_pairs.flatten end
Sets the option to given value.
For example, if you want to set ‘-p blastall’ option,
obj.set('p', 'blastall')
or
obj.set('-p', 'blastall')
(above two are equivalent).
Arguments:
key: option name as a string, e.g. 'm', 'p'.
value: value as a string, e.g. '7', 'blastp'.
Returns |
previous value; String or nil |
# File lib/bio/appl/blast/ncbioptions.rb, line 165 def set(key, value) re = _key_to_regexp(key) oldvalue = nil flag = false # Note: only the last options is modified for multiple same options. @option_pairs.reverse_each do |pair| if re =~ pair[0] then oldvalue = pair[1] pair[1] = value flag = true break end end unless flag then key = "-#{key}" unless key[0, 1] == '-' @option_pairs.push([ key, value ]) end oldvalue end
Generated with the Darkfish Rdoc Generator 2.