aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib/active_support/xml_mini.rb
diff options
context:
space:
mode:
Diffstat (limited to 'activesupport/lib/active_support/xml_mini.rb')
-rw-r--r--activesupport/lib/active_support/xml_mini.rb26
1 files changed, 12 insertions, 14 deletions
diff --git a/activesupport/lib/active_support/xml_mini.rb b/activesupport/lib/active_support/xml_mini.rb
index 8ae8e7cefe..d2a882b685 100644
--- a/activesupport/lib/active_support/xml_mini.rb
+++ b/activesupport/lib/active_support/xml_mini.rb
@@ -1,21 +1,19 @@
-# = XmlMini
module ActiveSupport
+ # = XmlMini
module XmlMini
extend self
+ delegate :parse, :to => :@backend
- CONTENT_KEY = '__content__'.freeze
-
- # Hook the correct parser into XmlMini
- def hook_parser
- begin
- require 'xml/libxml' unless defined? LibXML
- require "active_support/xml_mini/libxml.rb"
- rescue MissingSourceFile => e
- require "active_support/xml_mini/rexml.rb"
- end
+ def backend=(name)
+ require "active_support/xml_mini/#{name.to_s.downcase}.rb"
+ @backend = ActiveSupport.const_get("XmlMini_#{name}")
end
+ end
- hook_parser
-
+ begin
+ gem 'libxml-ruby', '=0.9.4', '=0.9.7'
+ XmlMini.backend = 'LibXML'
+ rescue Gem::LoadError
+ XmlMini.backend = 'REXML'
end
-end \ No newline at end of file
+end