class BioTable::RDF::Writer

Convenience class for writing RDF - tracks header values

Public Class Methods

new(use_blank_nodes) click to toggle source
# File lib/bio-table/rdf.rb, line 60
def initialize use_blank_nodes
  @use_blank_nodes = use_blank_nodes
  @rownames = {}
end

Public Instance Methods

write(row, type) click to toggle source
# File lib/bio-table/rdf.rb, line 65
def write row, type
  if type == :header
    print RDF.namespaces
    @header = row.all_fields
    rdf = RDF.header(@header)
    print "# Table\n"
    print rdf.join("\n"),"\n\n"
  else
    if @rownames[row.rowname]
      if @use_blank_nodes
        logger = Bio::Log::LoggerPlus['bio-table']
        logger.warn "Duplicate row name <#{row.rowname}>"
      else
        raise "RDF expects unique row names! Duplicate <#{row.rowname}> found"
      end
    else
      @rownames[row.rowname] = true
    end
    rdf = RDF.row(row.all_fields,@header,@use_blank_nodes)
    print rdf,"\n"
  end
end