Sha256: d35d70c5c976b046430ef9e7c88e3bfdfebf105d601d159e1db172d7a57fc8d8

Contents?: true

Size: 827 Bytes

Versions: 22

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| entry.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

22 entries across 22 versions & 1 rubygems

Version Path
bibtex-ruby-4.1.0 lib/bibtex/entry/bibtexml_converter.rb
bibtex-ruby-4.0.16 lib/bibtex/entry/bibtexml_converter.rb
bibtex-ruby-4.0.15 lib/bibtex/entry/bibtexml_converter.rb
bibtex-ruby-4.0.14 lib/bibtex/entry/bibtexml_converter.rb
bibtex-ruby-4.0.13 lib/bibtex/entry/bibtexml_converter.rb
bibtex-ruby-4.0.12 lib/bibtex/entry/bibtexml_converter.rb
bibtex-ruby-4.0.11 lib/bibtex/entry/bibtexml_converter.rb
bibtex-ruby-4.0.10 lib/bibtex/entry/bibtexml_converter.rb
bibtex-ruby-4.0.9 lib/bibtex/entry/bibtexml_converter.rb
bibtex-ruby-4.0.8 lib/bibtex/entry/bibtexml_converter.rb
bibtex-ruby-4.0.7 lib/bibtex/entry/bibtexml_converter.rb
bibtex-ruby-4.0.6 lib/bibtex/entry/bibtexml_converter.rb
bibtex-ruby-4.0.5 lib/bibtex/entry/bibtexml_converter.rb
bibtex-ruby-4.0.4 lib/bibtex/entry/bibtexml_converter.rb
bibtex-ruby-4.0.3 lib/bibtex/entry/bibtexml_converter.rb
bibtex-ruby-4.0.2 lib/bibtex/entry/bibtexml_converter.rb
bibtex-ruby-4.0.1 lib/bibtex/entry/bibtexml_converter.rb
bibtex-ruby-4.0.0 lib/bibtex/entry/bibtexml_converter.rb
bibtex-ruby-3.1.6 lib/bibtex/entry/bibtexml_converter.rb
bibtex-ruby-3.1.5 lib/bibtex/entry/bibtexml_converter.rb