Sha256: 8187f10fe966851f5d5ca94a37e0156688e7193742cda74b1579ed3c1f3d2de2
Contents?: true
Size: 827 Bytes
Versions: 27
Compression:
Stored size: 827 Bytes
Contents
require 'rexml/document' class BibTeX::Entry::BibTeXMLConverter def self.convert(bibtex, options = {}) new(bibtex, options).convert! end def initialize(bibtex, options = {}) @bibtex = bibtex @options = options end def convert! xml = REXML::Element.new('bibtex:entry') xml.attributes['id'] = bibtex.key fields xml.add_element(entry) xml end def fields bibtex.fields.each do |key, value| field = REXML::Element.new("bibtex:#{key}") if options[:extended] && value.name? value.each { |n| field.add_element(n.to_xml) } else field.text = value.to_s(options) end entry.add_element(field) end end protected attr_reader :bibtex, :options def entry @entry ||= REXML::Element.new("bibtex:#{bibtex.type}") end end
Version data entries
27 entries across 27 versions & 3 rubygems