32 lines
657 B
Ruby
32 lines
657 B
Ruby
module ActiveSupport
|
|
# = XmlMini
|
|
#
|
|
# To use the much faster libxml parser:
|
|
# gem 'libxml-ruby', '=0.9.7'
|
|
# XmlMini.backend = 'LibXML'
|
|
module XmlMini
|
|
extend self
|
|
|
|
attr_reader :backend
|
|
delegate :parse, :to => :backend
|
|
|
|
def backend=(name)
|
|
if name.is_a?(Module)
|
|
@backend = name
|
|
else
|
|
require "active_support/xml_mini/#{name.to_s.downcase}.rb"
|
|
@backend = ActiveSupport.const_get("XmlMini_#{name}")
|
|
end
|
|
end
|
|
|
|
def with_backend(name)
|
|
old_backend, self.backend = backend, name
|
|
yield
|
|
ensure
|
|
self.backend = old_backend
|
|
end
|
|
end
|
|
|
|
XmlMini.backend = 'REXML'
|
|
end
|