Module: MARC::MagicReader

Defined in:
lib/marc/xml_parsers.rb

Overview

The MagicReader will try to use the best available XML Parser at the time of initialization.

The order is currently:

* Nokogiri
* jrexml (JRuby only)
* rexml

With the idea that other parsers could be added as their modules are added. Realistically, this list should be limited to stream-based parsers. The magic should be used selectively, however. After all, one project’s definition of ‘best’ might not apply universally. It is arguable which is “best” on JRuby: Nokogiri or jrexml.

Class Method Summary collapse

Class Method Details

.extended(receiver) ⇒ Object



19
20
21
22
23
24
25
26
27
28
# File 'lib/marc/xml_parsers.rb', line 19

def self.extended(receiver)
  magic = MARC::XMLReader.best_available
  case magic
  when 'nokogiri' then receiver.extend(NokogiriReader)
  when 'libxml' then receiver.extend(LibXMLReader)
  when 'jstax' then receiver.extend(JRubySTAXReader)
  when 'jrexml' then receiver.extend(JREXMLReader)
  else receiver.extend(REXMLReader)
  end
end