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

Version Path
bibtex-ruby-6.1.0 lib/bibtex/entry/bibtexml_converter.rb
bibtex-ruby-6.0.0 lib/bibtex/entry/bibtexml_converter.rb
bibtex-ruby-5.1.6 lib/bibtex/entry/bibtexml_converter.rb
bibtex-ruby-5.1.5 lib/bibtex/entry/bibtexml_converter.rb
metanorma-cli-1.3.4 gems/ruby/2.6.0/gems/bibtex-ruby-5.1.4/lib/bibtex/entry/bibtexml_converter.rb
metanorma-cli-1.3.3.1 gems/ruby/2.6.0/gems/bibtex-ruby-5.1.4/lib/bibtex/entry/bibtexml_converter.rb
bibtex-ruby-5.1.4 lib/bibtex/entry/bibtexml_converter.rb
bibtex-ruby-5.1.3 lib/bibtex/entry/bibtexml_converter.rb
bibtex-ruby-5.1.2 lib/bibtex/entry/bibtexml_converter.rb
bibtex-ruby-5.1.1 lib/bibtex/entry/bibtexml_converter.rb
bibtex-ruby-5.1.0 lib/bibtex/entry/bibtexml_converter.rb
bibtex-ruby-5.0.1 lib/bibtex/entry/bibtexml_converter.rb
bibtex-ruby-5.0.0 lib/bibtex/entry/bibtexml_converter.rb
bibtex-ruby-4.4.7 lib/bibtex/entry/bibtexml_converter.rb
bibtex-ruby-4.4.6 lib/bibtex/entry/bibtexml_converter.rb
bibtex-ruby-4.4.5 lib/bibtex/entry/bibtexml_converter.rb
bibtex_to_scrapbox-0.2.0 gems/gems/bibtex-ruby-4.4.4/lib/bibtex/entry/bibtexml_converter.rb
bibtex_to_scrapbox-0.1.0 gems/gems/bibtex-ruby-4.4.4/lib/bibtex/entry/bibtexml_converter.rb
bibtex-ruby-4.4.4 lib/bibtex/entry/bibtexml_converter.rb
bibtex-ruby-4.4.3 lib/bibtex/entry/bibtexml_converter.rb