Class: BEL::BELRDF::Writer::RDFWriter

Inherits:
Object
  • Object
show all
Defined in:
lib/bel/translator/plugins/rdf2/rdf_writer.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(io, format, options = {}) ⇒ RDFWriter

Returns a new instance of RDFWriter.



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/bel/translator/plugins/rdf2/rdf_writer.rb', line 14

def initialize(io, format, options = {})
  rdf_writer = RDF::Writer.for(format)
  @writer    = rdf_writer.new(io, { :stream => true })

  if options[:void_dataset_uri]
    void_dataset_uri = options.delete(:void_dataset_uri)
    void_dataset_uri = RDF::URI(void_dataset_uri)
    unless void_dataset_uri.valid?
      raise ArgumentError.new 'void_dataset_uri is not a valid URI'
    end
    @void_dataset_uri = void_dataset_uri
  else
    @void_dataset_uri = nil
  end

  @writer.write_prologue
  @wrote_dataset = false
  @nanopub_converter =
    NanopubConverter.new(
      StatementConverter.new(
        TermConverter.new(
          ParameterConverter.new(
            NamespaceConverter.new)),
        RelationshipConverter.new))
end

Instance Attribute Details

#writerObject (readonly)

Returns the value of attribute writer.



12
13
14
# File 'lib/bel/translator/plugins/rdf2/rdf_writer.rb', line 12

def writer
  @writer
end

Instance Method Details

#<<(nanopub) ⇒ Object



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/bel/translator/plugins/rdf2/rdf_writer.rb', line 40

def <<(nanopub)
  if !@wrote_dataset && @void_dataset_uri
    # TODO Write VoID dataset for document.
  end

  @writer << @nanopub_converter.convert(nanopub)

  # @nanopub_converter.nanopub(nanopub).each do |statement|
  #   @writer.write_statement(statement)
  # end

  if @void_dataset_uri
    # TODO Include this nanopub in the VoID dataset.
    # @writer.write_statement(RDF::Statement.new(@void_dataset_uri, RDF::DC.hasPart, nanopub_uri))
  end
end

#doneObject



57
58
59
# File 'lib/bel/translator/plugins/rdf2/rdf_writer.rb', line 57

def done
  @writer.write_epilogue
end