class Oddb2xml::EphaExtractor

Public Class Methods

new(str) click to toggle source
# File lib/oddb2xml/extractor.rb, line 405
def initialize(str)
  Oddb2xml.log("EphaExtractor #{str.size} bytes")
  @io = StringIO.new(str)
end

Public Instance Methods

to_arry() click to toggle source
# File lib/oddb2xml/extractor.rb, line 410
def to_arry
  data = []
  ixno = 0
  inhalt = @io.read
  inhalt.split("\n").each do |line|
    ixno += 1
    next if /ATC1.*Name1.*ATC2.*Name2/.match?(line)
    # line = '"'+line unless /^"/.match(line)
    begin
      row = CSV.parse_line(line.gsub('""', '"'))
      action = {}
      next unless row.size > 8
      action[:data_origin] = "epha"
      action[:ixno] = ixno
      action[:title] = row[4]
      action[:atc1] = row[0]
      action[:atc2] = row[2]
      action[:mechanism] = row[5]
      action[:effect] = row[6]
      action[:measures] = row[7]
      action[:grad] = row[8]
      data << action
    rescue CSV::MalformedCSVError
      puts "CSV::MalformedCSVError in line #{ixno}: #{line}"
    end
  end
  data
end