Method: MS::Sequest::Sqt::Header#from_lines

Defined in:
lib/ms/sequest/sqt.rb

#from_lines(array_of_header_lines) ⇒ Object



196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
# File 'lib/ms/sequest/sqt.rb', line 196

def from_lines(array_of_header_lines)
  array_of_header_lines.each do |line|
    line.chomp!
    (ky, *rest) = line.split(MS::Sequest::Sqt::Delimiter)[1..-1]
    # just in case they have any tabs in their field
    value = rest.join(MS::Sequest::Sqt::Delimiter)
    if Arrayed.include?(ky)
      self[ky] << value
    elsif self.key? ky  # already exists
      if self[ky].is_a? Array
        self[ky] << value
      else
        self[ky] = [self[ky], value]
      end
    else  # normal
      self[ky] = value
    end
  end
  KeysToAtts.each do |ky,methd|
    self.send("#{methd}=".to_sym, self[ky])
  end
  self
end